AI-XGBoost
view release on metacpan or search on metacpan
lib/AI/XGBoost.pm view on Meta::CPAN
$train_dataset = transpose($train_dataset);
$test_dataset = transpose($test_dataset);
my $train_label = [map {$class{$_}} @{$iris->{'species'}}];
my $test_label = [map {$class{$_}} @{$iris->{'species'}}];
my $train_data = DMatrix->From(matrix => $train_dataset, label => $train_label);
my $test_data = DMatrix->From(matrix => $test_dataset, label => $test_label);
# Multiclass problems need a diferent objective function and the number
# of classes, in this case we are using 'multi:softprob' and
# num_class => 3
my $booster = train(data => $train_data, number_of_rounds => 20, params => {
max_depth => 3,
eta => 0.3,
silent => 1,
objective => 'multi:softprob',
num_class => 3
});
my $predictions = $booster->predict(data => $test_data);
=head1 DESCRIPTION
Perl wrapper for XGBoost library.
The easiest way to use the wrapper is using C<train>, but beforehand
you need the data to be used contained in a C<DMatrix> object
This is a work in progress, feedback, comments, issues, suggestion and
pull requests are welcome!!
XGBoost library is used via L<Alien::XGBoost>. That means downloading,
compiling and installing if it's not available in your system.
=head1 FUNCTIONS
=head2 train
Performs gradient boosting using the data and parameters passed
Returns a trained AI::XGBoost::Booster used
=head3 Parameters
=over 4
=item params
Parameters for the booster object.
Full list available: https://github.com/dmlc/xgboost/blob/master/doc/parameter.md
=item data
AI::XGBoost::DMatrix object used for training
=item number_of_rounds
Number of boosting iterations
=back
=head1 ROADMAP
The goal is to make a full wrapper for XGBoost.
=head2 VERSIONS
=over 4
=item 0.2
Full C API "easy" to use, with PDL support as L<AI::XGBoost::CAPI>
Easy means clients don't have to use L<FFI::Platypus> or modules dealing
with C structures
=item 0.25
Alien package for libxgboost.so/xgboost.dll
=item 0.3
Object oriented API Moose based with DMatrix and Booster classes
=item 0.4
Complete object oriented API
=item 0.5
Use perl signatures (L<https://metacpan.org/pod/distribution/perl/pod/perlexperiment.pod#Subroutine-signatures>)
=back
=head1 SEE ALSO
=over 4
=item L<AI::MXNet>
=item L<FFI::Platypus>
=item L<NativeCall>
=back
=head1 AUTHOR
Pablo RodrÃguez González <pablo.rodriguez.gonzalez@gmail.com>
=head1 COPYRIGHT AND LICENSE
Copyright (c) 2017 by Pablo RodrÃguez González.
=head1 CONTRIBUTOR
=for stopwords Ruben
( run in 0.740 second using v1.01-cache-2.11-cpan-364913b4093 )