mulan.classifier.meta.thresholding
Class MLPTO

java.lang.Object
  extended by mulan.classifier.MultiLabelLearnerBase
      extended by mulan.classifier.meta.MultiLabelMetaLearner
          extended by mulan.classifier.meta.thresholding.MLPTO
All Implemented Interfaces:
Serializable, MultiLabelLearner, TechnicalInformationHandler

public class MLPTO
extends MultiLabelMetaLearner

Class that implements the Multi Label Probabilistic Threshold Optimizer (MLTPTO). For more information, see

J.R. Quevedo, O. Luaces, A. Bahamonde (2012). Multilabel classifiers with a probabilistic thresholding strategy. Pattern Recognition. 45(2):876-883.

BibTeX:

 @article{Quevedo2012,
    author = {J.R. Quevedo and O. Luaces and A. Bahamonde},
    journal = {Pattern Recognition},
    number = {2},
    pages = {876-883},
    publisher = {Elsevier},
    title = {Multilabel classifiers with a probabilistic thresholding strategy},
    volume = {45},
    year = {2012},
    ISSN = {0031-3203}
 }
 

Version:
2012.02.02
Author:
D. Toimil, J. R. Quevedo, O. Luaces
See Also:
Serialized Form

Field Summary
 
Fields inherited from class mulan.classifier.meta.MultiLabelMetaLearner
baseLearner
 
Fields inherited from class mulan.classifier.MultiLabelLearnerBase
featureIndices, labelIndices, numLabels
 
Constructor Summary
MLPTO()
          Default constructor
MLPTO(MultiLabelLearner baseLearner, ExampleBasedBipartitionMeasureBase EBBM)
           
 
Method Summary
protected  void buildInternal(MultiLabelInstances trainingData)
          Learner specific implementation of building the model from MultiLabelInstances training data set.
 TechnicalInformation getTechnicalInformation()
          Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
 String globalInfo()
          Returns a string describing the multi-label learner.
protected  MultiLabelOutput makePredictionInternal(Instance instance)
          Produces the optimal bipartition output from a probabilistic multi label output for a predefined loss function.
 
Methods inherited from class mulan.classifier.meta.MultiLabelMetaLearner
getBaseLearner
 
Methods inherited from class mulan.classifier.MultiLabelLearnerBase
build, debug, getDebug, isModelInitialized, isUpdatable, makeCopy, makePrediction, setDebug
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MLPTO

public MLPTO()
Default constructor


MLPTO

public MLPTO(MultiLabelLearner baseLearner,
             ExampleBasedBipartitionMeasureBase EBBM)
Parameters:
baseLearner - the underlying multi-label learner
EBBM - the measure function to be optimized. The measure is optimized minimizing the distance to its ideal value (using IdealValue() method). For measures with 1 as ideal value, like F1 or Accuracy, this algorithm searches for the highest value (the nearest to 1). For measures with 0 as ideal value, like Hamming, this algorithm searches for the lowest value (the nearest to 0).
Method Detail

buildInternal

protected void buildInternal(MultiLabelInstances trainingData)
                      throws Exception
Description copied from class: MultiLabelLearnerBase
Learner specific implementation of building the model from MultiLabelInstances training data set. This method is called from MultiLabelLearnerBase.build(MultiLabelInstances) method, where behavior common across all learners is applied.

Specified by:
buildInternal in class MultiLabelLearnerBase
Parameters:
trainingData - the training data set
Throws:
Exception - if learner model was not created successfully

makePredictionInternal

protected MultiLabelOutput makePredictionInternal(Instance instance)
                                           throws Exception
Produces the optimal bipartition output from a probabilistic multi label output for a predefined loss function. This method evaluates the example using the multi label base-learner to get the labels' probability. Then, it calculates the threshold that optimizes the loss (as especified in the constructor's param FLoss). Finally, this threshold is used to generate a bipartite multi label output.

Specified by:
makePredictionInternal in class MultiLabelLearnerBase
Parameters:
instance - Test example.
Returns:
the output of the learner for the given instance
Throws:
Exception - if an error occurs while making the prediction.
InvalidDataException - if specified instance data is invalid and can not be processed by the learner

getTechnicalInformation

public TechnicalInformation getTechnicalInformation()
Description copied from class: MultiLabelLearnerBase
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.

Specified by:
getTechnicalInformation in interface TechnicalInformationHandler
Specified by:
getTechnicalInformation in class MultiLabelLearnerBase
Returns:
the technical information about this class

globalInfo

public String globalInfo()
Description copied from class: MultiLabelLearnerBase
Returns a string describing the multi-label learner.

Specified by:
globalInfo in class MultiLabelLearnerBase
Returns:
a description suitable for displaying in a future gui