forked from gitpan/AI-DecisionTree
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
156 lines (103 loc) · 5.28 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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 "<undef>" 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