BINTREE_LNK(1)

NAME
bintree_lnk - Binary Decision Tree Classifier

SYNOPSIS
A program for training and testing a binary tree classifier which performs a series of binary tests on an input pattern to determine its output class.

bintree_lnk [ -linear ]
[ -stop_train_early -leaf_min_npatterns n ]
[ -prune_tree -max_nodes n ] [ -classifier_options ]

EXAMPLE
bintree_lnk -train -create -pathdata $LNKHOME/data/class \
-finput vowel.train -fdescribe vowel.defaults \
-fparam bintree.param

bintree_lnk -pathdata $LNKHOME/data/class -finput vowel.eval \
-fdescribe vowel.defaults -fparam bintree.param \
-prune_tree -max_nodes 40

DESCRIPTION
Bintree classifies patterns using a binary tree where each non-terminal node determines which side of a hyperplane an input pattern is on. The hyperplane can depend on only one input feature, or it can be defined by a linear combination of all the input features. In classification the root node tests the input pattern and passes the pattern to the node's "yes" or "no" child. The pattern is tested and passed down the tree until it reaches a terminal node (or leaf) where it is assigned a class.

In training the program searches for the test which best divides the patterns assigned to each node. Training continues until the size of each terminal node is no smaller than a limit set by the user.

Because the total size of a tree cannot be determined before training is complete, bintree_lnk can prune a tree to an arbitrary size during testing. This pruning occurs during testing before patterns are classified. The subtree which least affects the classification error rate on the training data is cut and the root of that subtree is changed to a terminal node. Pruning continues until the number of nodes in the tree is less than or equal to the requested number.

OPTIONS
-- Prints a list of all flags and arguments.

-linear
    Binary tests at non-terminal nodes use linear combinations of the input features. The default is that tests depend on only one feature.

-stop_train_early
    Limit the size of a tree by not dividing nodes when their size is less than leaf_min_npatterns. The default is to grow the tree until there are no classification errors on the training data.

-leaf_min_npatterns n
    If stop_train_early is set, terminal nodes in the tree will have at least n training patterns assigned to them.

-prune_tree
    Before testing, prune the tree to at most max_nodes non-terminal nodes. The default is to test using the full tree.

-max_nodes n
    If prune_tree is set, cut non-terminal nodes from the tree until there are at most n remaining.

-classifier_options
    bintree_lnk accepts the general classifier arguments described on the classifier(1) manual page.

REFERENCES
Leo Breiman et al., Classification and Regression Trees, Wadsworth Inc., Belmont California, 1984.

Yuchun Lee, Classifiers: Adaptive Modules in Pattern Recognition Systems, Bachelor's and Master's Thesis, Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, Cambridge, MA, May 1989. Pages 84-93.

SEE ALSO
classifier(1), bintree2c(1), bintree2mlp(1), bintree_feat_sel(1), plot_bintree(1), bintree_plot_bound(1)

HISTORY
First written 11 November 1993 by Linda Kukolich
Modified 22 June 1994, changed leaf_stop_error_percentage to leaf_min_npatterns

BUGS
Send bug reports to Linda Kukolich (kukolich@sst.ll.mit.edu)