mvpa2.clfs.meta.TreeClassifier

Inheritance diagram of TreeClassifier

class mvpa2.clfs.meta.TreeClassifier(clf, groups, **kwargs)

TreeClassifier which allows to create hierarchy of classifiers

Functions by grouping some labels into a single “meta-label” and training classifier first to separate between meta-labels. Then each group further proceeds with classification within each group.

Possible scenarios:

TreeClassifier(SVM(),
 {'animate':  ((1,2,3,4),
               TreeClassifier(SVM(),
                   {'human': (('male', 'female'), SVM()),
                    'animals': (('monkey', 'dog'), SMLR())})),
  'inanimate': ((5,6,7,8), SMLR())})

would create classifier which would first do binary classification to separate animate from inanimate, then for animate result it would separate to classify human vs animal and so on:

                 SVM
               /                                 animate  inanimate
           /                                       SVM            SMLR
       /     \         / | \                     human    animal     5  6 7  8
   |          |
  SVM        SVM
 /   \       /                   male female monkey dog
1      2    3      4

If it is desired to have a trailing node with a single label and thus without any classification, such as in

SVM

/ g1 g2

/ 1 SVM
/ 2 3

then just specify None as the classifier to use:

TreeClassifier(SVM(),
   {'g1':  ((1,), None),
    'g2':  ((1,2,3,4), SVM())})

Notes

Available conditional attributes:

  • calling_time+: Time (in seconds) it took to call the node
  • estimates+: Internal classifier estimates the most recent predictions are based on
  • predicting_time+: Time (in seconds) which took classifier to predict
  • predictions+: Most recent set of predictions
  • raw_results: Computed results before invoking postproc. Stored only if postproc is not None.
  • trained_dataset: The dataset it has been trained on
  • trained_nsamples+: Number of samples it has been trained on
  • trained_targets+: Set of unique targets it has been trained on
  • training_stats: Confusion matrix of learning performance
  • training_time+: Time (in seconds) it took to train the learner

(Conditional attributes enabled by default suffixed with +)

Initialize TreeClassifier

Parameters :

clf : Classifier

Classifier to separate between the groups

groups : dict of meta-label: tuple of (tuple of labels, classifier)

Defines the groups of labels and their classifiers. See TreeClassifier for example

enable_ca : None or list of str

Names of the conditional attributes which should be enabled in addition to the default ones

disable_ca : None or list of str

Names of the conditional attributes which should be disabled

auto_train : bool

Flag whether the learner will automatically train itself on the input dataset when called untrained.

force_train : bool

Flag whether the learner will enforce training on the input dataset upon every call.

space: str, optional :

Name of the ‘processing space’. The actual meaning of this argument heavily depends on the sub-class implementation. In general, this is a trigger that tells the node to compute and store information about the input data that is “interesting” in the context of the corresponding processing in the output dataset.

postproc : Node instance, optional

Node to perform post-processing of results. This node is applied in __call__() to perform a final processing step on the to be result dataset. If None, nothing is done.

descr : str

Description of the instance

clfs

Dictionary of classifiers used by the groups

summary()

Provide summary for the TreeClassifier.

NeuroDebian

NITRC-listed