NodeTree Ensemble Learner (deprecated)


Learns an ensemble of decision trees (such as random forest variants). Each of the decision tree models is learned on a different set of rows (records) and/or a different set of columns (describing attributes), whereby the latter can also be a bit/byte/double-vector descriptor (e.g. molecular fingerprint). The output model describes an ensemble of decision tree models and is applied in the corresponding predictor node using the selected aggregation mode to aggregate the votes of the individual decision trees.

The following configuration settings learn a model that is similar to the Random Forest™ classifier described by Leo Breiman and Adele Cutler:

  • Tree Options - Split Criterion: Gini Index
  • Tree Options - Limit number of levels (tree depth): unlimited
  • Tree Options - Minimum node size: unlimited
  • Ensemble Configuration - Number of models: Arbitrary (Random Forest arguably does not overfit)
  • Ensemble Configuration - Data Sampling: Use all rows (fraction = 1) but choose sampling with replacement (bootstrapping)
  • Ensemble Configuration - Attribute Sampling: Sample using a different set of attributes for each tree node split; usually square root of number of attributes but can vary
Experiments have shown the results on different data sets are very similar to the Random Forest implementation available in R.

The decision tree construction takes place in main memory (all data and all models are kept in memory).

The missing value handling corresponds to the method described here. The basic idea is to try for each split to send the missing values in every direction and the one yielding the best results (i.e. largest gain) is then used. If no missing values are present during training, the direction of a split that the most records are following is chosen as direction for missing values during testing.

The tree ensemble nodes now also support binary splits for nominal columns. Depending on the kind of problem (two- or multi-class) different algorithms are implemented to enable the efficient calculation of splits.

  • For two-class classification problems the method described in section 9.4 of "Classification and Regression Trees" by Breiman et al. (1984) is used.
  • For multi-class classification problems the method described in "Partitioning Nominal Attributes in Decision Trees" by Coppersmith et al. (1999) is used.

Input Ports

  1. Port Type: Data
    The data to learn from. It must contain at least one nominal target column and either a fingerprint (bit/byte/double vector) column or another numeric or nominal column.

Output Ports

  1. Port Type: Data
    The input data with the out-of-bag error estimates, i.e. for each input row the majority vote of all models that did not use the row in the training. If the entire data was used to train the individual models then this output will contain the input data with missing prediction and confidence values. The appended columns are equivalent to the columns appended by the corresponding predictor node. There is one additional column model count, which contains the number of models used for the voting (number of models not using the row throughout the learning.)
  2. Port Type: Data
    A statistics table on the attributes used in the different tree learners. Each row represents one training attribute with these statistics: #splits (level x) as the number of models, which use the attribute as split on level x (with level 0 as root split); #candidates (level x) is the number of times an attribute was in the attribute sample for level x (in a random forest setup these samples differ from node to node). If no attribute sampling is used #candidates is the number of models. Note, these numbers are uncorrected, i.e. if an attribute is selected on level 0 but is also in the candidate set of level 1 (but will not be split on level 1 because it has been split one level up), the #candidate number will still count the attribute as candidate.
  3. Port Type: Tree Ensembles
    The trained model.