Multi-target prediction (multitarget)

Multi-target prediction tries to achieve better prediction accuracy or speed through prediction of multiple dependent variables at once. It works on multi-target data, which is also supported by Orange’s tab file format using multiclass directive.

For evaluation of multi-target methods, see the corresponding section in Orange.evaluation.scoring.

Wrapper for constructing multi-target learners

This module also contains a wrapper, an auxilary learner, that can be used to construct simple multi-target learners from standard learners designed for data with a single class. The wrapper uses the specified base learner to construct independent models for each class.

class Orange.multitarget.MultitargetLearner(learner, **kwargs)

Bases: Orange.classification.Learner

Wrapper for multitarget problems that constructs independent models of a base learner for each class variable.

learner

The base learner used to learn models for each class.

__call__(data, weight=0)

Learn independent models of the base learner for each class.

Parameters:
  • data (Orange.data.Table) – Multitarget data instances (with more than 1 class).
  • weight (int) – Id of meta attribute with weights of instances
Return type:

Orange.multitarget.MultitargetClassifier

__init__(learner, **kwargs)
Parameters:learner – Base learner used to construct independent models for each class.
class Orange.multitarget.MultitargetClassifier(classifiers, domains)

Bases: Orange.classification.Classifier

Multitarget classifier that returns a list of predictions from each of the independent base classifiers.

__call__(instance, return_type=0)
Parameters:
  • instance (Orange.data.Instance) – Instance to be classified.
  • return_type – One of Orange.classification.Classifier.GetValue, Orange.classification.Classifier.GetProbabilities or Orange.classification.Classifier.GetBoth

Examples

The following example uses a simple multi-target data set (generated with generate_multitarget.py) to show some basic functionalities (part of multitarget.py).

import Orange
data = Orange.data.Table('multitarget-synthetic')
print 'Features:', data.domain.features
print 'Classes:', data.domain.class_vars
print 'First instance:', data[0]
print 'Actual classes:', data[0].get_classes()

Multi-target learners can build prediction models (classifiers) which then predict (multiple) class values for a new instance (continuation of multitarget.py):

majority = Orange.classification.majority.MajorityLearner()
mt_majority = Orange.multitarget.MultitargetLearner(majority)
c_majority = mt_majority(data)
print 'Majority predictions:\n', c_majority(data[0])

pls = Orange.multitarget.pls.PLSRegressionLearner()
c_pls = pls(data)
print 'PLS predictions:\n', c_pls(data[0])

mt_tree = Orange.multitarget.tree.MultiTreeLearner(max_depth=3)
c_tree = mt_tree(data)
print 'Multi-target Tree predictions:\n', c_tree(data[0])