AI-XGBoost
view release on metacpan or search on metacpan
lib/AI/XGBoost/DMatrix.pm view on Meta::CPAN
package AI::XGBoost::DMatrix;
use strict;
use warnings;
use utf8;
our $VERSION = '0.11'; # VERSION
# ABSTRACT: XGBoost class for data
use Moose;
use AI::XGBoost::CAPI qw(:all);
use Carp;
use namespace::autoclean;
has handle => ( is => 'ro', );
sub From {
my ( $package, %args ) = @_;
return __PACKAGE__->FromFile( filename => $args{file}, silent => $args{silent} ) if ( defined $args{file} );
return __PACKAGE__->FromMat( map { $_ => $args{$_} if defined $_ } qw(matrix missing label) )
if ( defined $args{matrix} );
Carp::cluck( "I don't know how to build a " . __PACKAGE__ . " with this data: " . join( ", ", %args ) );
}
sub FromFile {
my ( $package, %args ) = @_;
my $handle = XGDMatrixCreateFromFile( @args{qw(filename silent)} );
return __PACKAGE__->new( handle => $handle );
}
sub FromMat {
my ( $package, %args ) = @_;
my $handle = XGDMatrixCreateFromMat( @args{qw(matrix missing)} );
my $matrix = __PACKAGE__->new( handle => $handle );
if ( defined $args{label} ) {
$matrix->set_label( $args{label} );
}
return $matrix;
}
sub set_float_info {
my $self = shift();
my ( $field, $info ) = @_;
XGDMatrixSetFloatInfo( $self->handle, $field, $info );
return $self;
}
sub set_float_info_pdl {
my $self = shift();
my ( $field, $info ) = @_;
XGDMatrixSetFloatInfo( $self->handle, $field, $info->flat()->unpdl() );
return $self;
}
sub get_float_info {
my $self = shift();
my $field = shift();
XGDMatrixGetFloatInfo( $self->handle, $field );
}
sub set_uint_info {
my $self = shift();
my ( $field, $info ) = @_;
XGDMatrixSetUintInfo( $self->handle, $field, $info );
return $self;
}
sub get_uint_info {
my $self = shift();
my $field = shift();
XGDMatrixGetUintInfo( $self->handle, $field );
}
sub save_binary {
my $self = shift();
my ( $filename, $silent ) = @_;
$silent //= 1;
XGDMatrixSaveBinary( $self->handle, $filename, $silent );
return $self;
}
( run in 0.665 second using v1.01-cache-2.11-cpan-5b529ec07f3 )