NAME

AI::XGBoost::Booster - XGBoost main class for training, prediction and evaluation

VERSION

version 0.007

SYNOPSIS

use 5.010;
use aliased 'AI::XGBoost::DMatrix';
use AI::XGBoost qw(train);

# We are going to solve a binary classification problem:
#  Mushroom poisonous or not

my $train_data = DMatrix->From(file => 'agaricus.txt.train');
my $test_data = DMatrix->From(file => 'agaricus.txt.test');

# With XGBoost we can solve this problem using 'gbtree' booster
#  and as loss function a logistic regression 'binary:logistic'
#  (Gradient Boosting Regression Tree)
# XGBoost Tree Booster has a lot of parameters that we can tune
# (https://github.com/dmlc/xgboost/blob/master/doc/parameter.md)

my $booster = train(data => $train_data, number_of_rounds => 10, params => {
        objective => 'binary:logistic',
        eta => 1.0,
        max_depth => 2,
        silent => 1
    });

# For binay classification predictions are probability confidence scores in [0, 1]
#  indicating that the label is positive (1 in the first column of agaricus.txt.test)
my $predictions = $booster->predict(data => $test_data);

say join "\n", @$predictions[0 .. 10];

DESCRIPTION

Booster objects control training, prediction and evaluation

Work In Progress, the API may change. Comments and suggestions are welcome!

METHODS

update

Update one iteration

Parameters

iteration

Current iteration number

dtrain

Training data (AI::XGBoost::DMatrix)

boost

Boost one iteration using your own gradient

Parameters

dtrain

Training data (AI::XGBoost::DMatrix)

grad

Gradient of your objective function (Reference to an array)

hess

Hessian of your objective function, that is, second order gradient (Reference to an array)

predict

Predict data using the trained model

Parameters

data

Data to predict

set_param

Set booster parameter

Example

$booster->set_param('objective', 'binary:logistic');

set_attr

Set a string attribute

get_attr

Get a string attribute

attributes

Returns all attributes of the booster as a HASHREF

TO_JSON

Serialize the booster to JSON.

This method is to be used with the option convert_blessed from JSON. (See https://metacpan.org/pod/JSON#OBJECT-SERIALISATION)

Warning: this API is subject to changes

BUILD

Use new, this method is just an internal helper

DEMOLISH

Internal destructor. This method is called automatically

AUTHOR

Pablo Rodríguez González <pablo.rodriguez.gonzalez@gmail.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by Pablo Rodríguez González.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004