create_decision_tree(): target is not in list #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ever since this project's initial release, the "attributes" parameter to create_decision_tree() has been initialized (at the only non-recursive callsite) from Data.attribute_names, and Data.attribute_names has filtered out the class attribute name. As such, the comment which this commit changes, is inaccurate: the target attribute is specifically not in the "attributes" parameter. The effect of this mismatch—in my experience using this package—was that the algorithm would stop splitting one attribute too soon, and thus every leaf node would always contain a non-trivial probability distribution of classifications (conditional, in some unknown way, on the unsplit attribute), but never a single classification with P=1 even when such classifications were possible.
This change amends the incorrect comment, removes the subtraction-by-1 and adds an assertion to verify that subtraction-by-1 is not necessary.