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  ...
...