AI-DecisionTree
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
"strict" => 0,
"vars" => 0
},
"VERSION" => "0.11",
"test" => {
"TESTS" => "t/*.t"
}
);
unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
my $pp = $WriteMakefileArgs{PREREQ_PM};
for my $mod ( keys %$br ) {
if ( exists $pp->{$mod} ) {
$pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
}
else {
$pp->{$mod} = $br->{$mod};
}
}
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
WriteMakefile(%WriteMakefileArgs);
eg/example.pl view on Meta::CPAN
# Show the created tree structure as rules
print map "$_\n", $dtree->rule_statements;
# Will barf on inconsistent data
my $t2 = new AI::DecisionTree;
$t2->add_instance( attributes => { foo => 'bar' },
result => 1 );
$t2->add_instance( attributes => { foo => 'bar' },
result => 0 );
eval {$t2->train};
print "$@\n";
t/01-simple.t view on Meta::CPAN
);
my $result = $dtree->get_result( callback => sub { $attributes{$_[0]} } );
ok $result, 'no';
}
#print map "$_\n", $dtree->rule_statements;
#use YAML; print Dump $dtree;
if (eval "use GraphViz; 1") {
my $graphviz = $dtree->as_graphviz;
ok $graphviz;
if (0) {
# Only works on Mac OS X
my $file = '/tmp/tree.png';
open my($fh), "> $file" or die "$file: $!";
print $fh $graphviz->as_png;
close $fh;
system('open', $file);
t/01-simple.t view on Meta::CPAN
ok $dtree->depth, 1;
}
{
# Should barf on inconsistent data
my $t2 = new AI::DecisionTree;
$t2->add_instance( attributes => { foo => 'bar' },
result => 1 );
$t2->add_instance( attributes => { foo => 'bar' },
result => 0 );
eval {$t2->train};
ok( "$@", '/Inconsistent data/' );
}
{
# Make sure two trees can be trained concurrently
my $t1 = new AI::DecisionTree;
my $t2 = new AI::DecisionTree;
my @train = (
[farming => 'sheep very valuable farming'],
t/01-simple.t view on Meta::CPAN
}
{
my $t1 = new AI::DecisionTree(purge => 0);
my $t2 = new AI::DecisionTree;
$t1->add_instance( attributes => { foo => 'bar' },
result => 1, name => 1 );
$t1->add_instance( attributes => { foo => 'baz' },
result => 0, name => 2 );
eval {$t1->train};
ok !$@;
ok $t1->instances->[0]->name, 1;
ok $t1->instances->[1]->name, 2;
ok $t1->_result($t1->instances->[0]), 1; # Not a public interface
ok $t1->_result($t1->instances->[1]), 0; # Not a public interface
$t2->copy_instances(from => $t1);
ok $t2->instances->[0]->name, 1;
ok $t2->instances->[1]->name, 2;
t/02-noisy.t view on Meta::CPAN
#print "$guess : $result : $confidence\n";
}
my $accuracy = $good/($good + $bad);
ok $accuracy > .8;
print "Accuracy=$accuracy\n";
#use YAML; print Dump($dtree->rule_tree);
#print map "$_\n", $dtree->rule_statements;
if (eval "use GraphViz; 1") {
my $graphviz = $dtree->as_graphviz;
ok $graphviz;
if (0) {
# Only works on Mac OS X
my $file = '/tmp/tree2.png';
open my($fh), "> $file" or die "$file: $!";
print $fh $graphviz->as_png;
close $fh;
system('open', $file);
t/author-critic.t view on Meta::CPAN
}
}
use strict;
use warnings;
use Test::More;
use English qw(-no_match_vars);
eval "use Test::Perl::Critic";
plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
all_critic_ok();
( run in 0.615 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )