Revision history for Perl extension AI::DecisionTree. 0.11 - Fri Mar 2 21:26:51 CST 2012 - Fixed typo in docs - 'leaf_color' should be 'leaf_colors'. [spotted by Julio Fraire] - Silence a couple of Perl::Critic warnings - Convert to Dist::Zilla 0.09 - Sat Jul 26 23:09:44 2008 - Make a new release so that a META.yml file is generated. [Suggested by Alexandr Ciornii] - as_graphviz(%args) wasn't passing %args through properly to the GraphViz->new() method. Fixed. [Ian Knopke] - get_result() can now take a callback subroutine, rather than just a hash reference, to check the attributes of the given instance. This allows lazy instance checking. 0.08 Mon Jul 7 18:01:16 CDT 2003 - Added a 'leaf_color' parameter for making GraphViz objects more colorful. 0.07 Fri Jun 6 10:37:51 CDT 2003 - Created tests for the set_results() and copy_instances() methods. - Added documentation for as_graphviz() and increased the information contained in the GraphViz object. - Added the ability to limit the absolute depth of the tree when training. 0.06 Wed Sep 18 13:59:24 EST 2002 - Fixed an XS memory leak that was afflicting all training instances. Added tests to make sure leak stays plugged. - Added the 'purge' and 'verbose' parameters to new(). - add_instance() now accepts a 'name' parameter. - Users can now control whether training instances are purged after training, using the 'purge' parameter to new() and/or the do_purge() method. - Added the set_results() and copy_instances() methods, which let you re-use training instances from one tree to another. - Added the instances() and purge() accessor methods. 0.05 Thu Sep 12 01:22:34 AEST 2002 - Fixed a concurrency problem that occurred when making more than one decision tree. All tree data is now stored as member data, not class data. - DecisionTree.pm is now pure-perl again (though Instance.pm still has an XS component). - Fixed a one-off bug in the Instance.xs code that could create garbage data. - Handles "sparse" data better. Sparse data means that every attribute doesn't have to be defined for every training/test instance. This can now be a meaningful property - the absence of a value is currently equivalent to a special "" value. - Don't trigger warnings when undefined attribute values are encountered (as happens with sparse data). - Added documentation for the 'prune' parameter to new() - More consistent with memory allocation in Instance.xs - uses the perl memory macros/functions from `perldoc perlclib` instead of raw malloc/realloc/free. - Catches possible infinite loop situations when growing the tree (which shouldn't usually happen, but other mistakes can cause it) - The Instance class now has a numeric-only interface, without string translation. String translation is done in the main DecisionTree class. This isn't really a user-visible change. 0.04 Wed Sep 4 19:52:23 AEST 2002 - Now uses regular XS instead of Inline for the C code parts. [patch by Matt Sergeant] - Converted the inner loop of the best_attr() method to C code, because it was spending a lot of time in accessor methods for the C structures it was using. Don't worry, I'm not going C-crazy. I won't be making many (any?) more of these kinds of changes, but these ones were probably necessary. - Removed a bit of debugging code that I left in for 0.03. 0.03 Mon Sep 2 11:41:18 AEST 2002 - Added a 'prune' parameter to new(), which controls whether the tree will be pruned after training. This is usually a good idea, so the default is to prune. Currently we prune using a simple minimum-description-length criterion. - Training instances are now represented using a C struct rather than a Perl hash. This can dramatically reduce memory usage, though it doesn't have much effect on speed. Note that Inline.pm is now required. - The list of instances is now deleted after training, since it's no longer needed. - Small speedup to the train() method, achieved by less copying of data. - If get_result() is called in a list context, it now returns a list containing the assigned result, a "confidence" score (tentative, subject to change), and the tree depth of the leaf this instance ended up at. - Internally, each node in the tree now contains information about how many training examples contributed to training this node, and what the distribution of their classes was. - Added an as_graphviz() method, which will help visualize trees. They're not terribly pretty graphviz objects yet, but they're visual. 0.02 Sat Aug 10, 2002 21:02 AEST - Added support for noisy data, currently by picking the best (most common) result when noise is encountered. See the 'noise_mode' parameter to new(). - Added the rule_tree() method, which returns a data structure representing the tree. [James Smith] - Significantly sped up the train() method, especially for large data sets. - The get_result() method is no longer implemented recursively, which simplifies it and speeds it up. - Reformatted the documentation and added a TO DO section. - Documented the nodes() method. 0.01 Sat Jun 8 12:45:03 2002 - original version; created by h2xs 1.21 with options -XA -n AI::DecisionTree