AI-MaxEntropy

 view release on metacpan or  search on metacpan

t/04-model.t  view on Meta::CPAN

use strict;
use warnings;

use Test::More tests => 5;
use Test::Number::Delta within => 1e-5;

my $__;
sub NAME { $__ = shift };

###
NAME 'Load AI::MaxEntropy';
BEGIN { use_ok 'AI::MaxEntropy' }

###
NAME 'Load AI::MaxEntropy::Model';
BEGIN { use_ok 'AI::MaxEntropy::Model' }

my $me = AI::MaxEntropy->new; 
$me->see(['round', 'smooth', 'red'] => 'apple' => 2);
$me->see(['long', 'smooth', 'yellow'] => 'banana' => 3);

###
NAME 'Predict with model - LBFGS';
my $model = $me->learn;
is_deeply
[
    $model->predict(['round']),
    $model->predict(['red']),
    $model->predict(['long']),
    $model->predict(['yellow']),
    $model->predict(['smooth']),
    $model->predict(['round', 'smooth']),
    $model->predict(['red', 'long']),
    $model->predict(['red', 'yellow']),
],
[
    'apple',
    'apple',
    'banana',
    'banana',
    'banana',
    'apple',
    'banana',
    'banana'
],
$__;

###
NAME 'Predict with model - GIS';
$me->{algorithm}->{type} = 'gis';
$model = $me->learn;
is_deeply
[
    $model->predict(['round']),
    $model->predict(['red']),
    $model->predict(['long']),
    $model->predict(['yellow']),
    $model->predict(['smooth']),
    $model->predict(['round', 'smooth']),
    $model->predict(['red', 'long']),
    $model->predict(['red', 'yellow']),
],
[
    'apple',
    'apple',
    'banana',
    'banana',
    'banana',
    'apple',
    'banana',
    'banana'
],
$__;

###
NAME 'Model writing and loading';
$model->save('test_model');
my $model1 = AI::MaxEntropy::Model->new('test_model');
unlink 'test_model';
is_deeply $model, $model1,
$__;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.482 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )