Package mvpa :: Package clfs :: Module meta :: Class TreeClassifier

[hide private]
[frames] | no frames]

# Class TreeClassifier

source code

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())})

Nested Classes | [hide private]

Inherited from `misc.state.ClassWithCollections`: `__metaclass__`

Instance Methods | [hide private]

__init__(self, clf, groups, **kwargs) Initialize TreeClassifier | source code

__repr__(self, prefixes=[]) String representation of TreeClassifier | source code

summary(self) Provide summary for the TreeClassifier. | source code

_train(self, dataset) Train TreeClassifier | source code

untrain(self) Untrain TreeClassifier | source code

_predict(self, data) Predict using ProxyClassifier | source code

Inherited from `ProxyClassifier`: `getSensitivityAnalyzer`

Inherited from `base.Classifier`: `__str__`, `clone`, `isTrained`, `predict`, `repredict`, `retrain`, `train`, `trained`

Inherited from `base.Classifier` (private): `_getFeatureIds`, `_postpredict`, `_posttrain`, `_prepredict`, `_pretrain`, `_regressionIsBogus`, `_setRetrainable`

Inherited from `misc.state.ClassWithCollections`: `__getattribute__`, `__new__`, `__setattr__`, `reset`

Inherited from `object`: `__delattr__`, `__format__`, `__hash__`, `__reduce__`, `__reduce_ex__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]

| _DEV__doc = ``...``
Inherited from `ProxyClassifier`: `clf` Inherited from `base.Classifier`: `_DEV__doc__`, `feature_ids`, `predicting_time`, `predictions`, `regression`, `retrainable`, `trained_dataset`, `trained_labels`, `trained_nsamples`, `training_confusion`, `training_time`, `values` Inherited from `base.Classifier` (private): `_clf_internals` Inherited from `misc.state.ClassWithCollections`: `descr`

Instance Variables | [hide private]

| clfs Dictionary of classifiers used by the groups

Properties | [hide private]

Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, clf, groups, **kwargs)
(Constructor)

source code

    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 :class:`~mvpa.clfs.meta.TreeClassifier` for example

Parameters:
  - `clf` - classifier based on which mask classifiers is created
Overrides: object.__init__

### __repr__(self, prefixes=[])
(Representation operator)

source code

String representation of TreeClassifier

Parameters:
  - `fullname` - Either to include full name of the module
  - `prefixes` - What other prefixes to prepend to list of arguments
Overrides: object.__repr__

### summary(self)

source code

Provide summary for the TreeClassifier.

Overrides: base.Classifier.summary

### _train(self, dataset)

source code

Train TreeClassifier

First train .clf on groupped samples, then train each of .clfs on a corresponding subset of samples.

Overrides: base.Classifier._train

### untrain(self)

source code

Untrain TreeClassifier

Overrides: base.Classifier.untrain

### _predict(self, data)

source code

Predict using ProxyClassifier

Overrides: base.Classifier._predict

Class Variable Details | [hide private]

### _DEV__doc

Value:

      """
          Questions:
           * how to collect confusion matrices at a particular layer if such
             classifier is given to SplitClassifier or CVTE

           * What additional states to add, something like
              clf_labels  -- store remapped labels for the dataset
              clf_values  ...
      ...