de.jstacs.classifiers.performanceMeasures
Class AbstractPerformanceMeasure

java.lang.Object
  extended by de.jstacs.parameters.ParameterSet
      extended by de.jstacs.classifiers.performanceMeasures.AbstractPerformanceMeasure
All Implemented Interfaces:
GalaxyConvertible, Storable, Cloneable
Direct Known Subclasses:
ClassificationRate, ConfusionMatrix, TwoClassAbstractPerformanceMeasure

public abstract class AbstractPerformanceMeasure
extends ParameterSet

This class is the abstract super class of any performance measure used to evaluate an AbstractClassifier. It is recommended to use the method AbstractClassifier.evaluate(PerformanceMeasureParameterSet, boolean, de.jstacs.data.DataSet...) for evaluating the performance of any classifier.

Author:
Jan Grau, Jens Keilwagen
See Also:
AbstractClassifier, PerformanceMeasureParameterSet

Nested Class Summary
 
Nested classes/interfaces inherited from class de.jstacs.parameters.ParameterSet
ParameterSet.ParameterList
 
Field Summary
 
Fields inherited from class de.jstacs.parameters.ParameterSet
errorMessage, parameters, parent
 
Constructor Summary
protected AbstractPerformanceMeasure()
          Constructs a new AbstractPerformanceMeasure with empty parameter values.
protected AbstractPerformanceMeasure(StringBuffer xml)
          The standard constructor for the interface Storable.
 
Method Summary
abstract  ResultSet compute(double[][][] classSpecificScores)
          This method allows to compute the performance measure of given class specific scores.
abstract  ResultSet compute(double[] sortedScoresClass0, double[] sortedScoresClass1)
          This method allows to compute the performance measure of given sorted score ratios.
abstract  int getAllowedNumberOfClasses()
          This method returns the allowed number of classes.
static SelectionParameter getCollectionOfAllMeasures(int numClasses, boolean numerical)
          This method creates an instance of an SelectionParameter that can be used to create an instance of PerformanceMeasureParameterSet or NumericalPerformanceMeasureParameterSet.
abstract  String getName()
          The method returns the name of the performance measure.
 
Methods inherited from class de.jstacs.parameters.ParameterSet
clone, fromGalaxy, fromXML, getAllParameterNames, getComment, getComment, getErrorMessage, getIndex, getName, getName, getNumberOfParameters, getParameterAt, getParameterForName, getParent, hasDefaultOrIsSet, initParameterList, initParameterList, isAtomic, isComparable, parametersLoaded, reset, setParent, toGalaxy, toXML
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractPerformanceMeasure

protected AbstractPerformanceMeasure()
Constructs a new AbstractPerformanceMeasure with empty parameter values.


AbstractPerformanceMeasure

protected AbstractPerformanceMeasure(StringBuffer xml)
                              throws NonParsableException
The standard constructor for the interface Storable. Constructs a AbstractPerformanceMeasure out of an XML representation.

Parameters:
xml - the XML representation as StringBuffer
Throws:
NonParsableException - if the AbstractPerformanceMeasure could not be reconstructed out of the StringBuffer xml
Method Detail

getName

public abstract String getName()
The method returns the name of the performance measure.

Returns:
the name of the performance measure

compute

public abstract ResultSet compute(double[] sortedScoresClass0,
                                  double[] sortedScoresClass1)
This method allows to compute the performance measure of given sorted score ratios. This method can only be used for binary classifiers.

Parameters:
sortedScoresClass0 - the sorted score ratios of class 0
sortedScoresClass1 - the sorted score ratios of class 1
Returns:
a result set containing the results of the performance measure
See Also:
Arrays.sort(double[])

compute

public abstract ResultSet compute(double[][][] classSpecificScores)
This method allows to compute the performance measure of given class specific scores.

Parameters:
classSpecificScores - the scores; first dimension = data sets, second dimension = sequences of the data set, third dimension classes of the classifier
Returns:
a result set containing the results of the performance measure

getAllowedNumberOfClasses

public abstract int getAllowedNumberOfClasses()
This method returns the allowed number of classes. For many performance measures this number is fixed, e.g. for AUC-ROC the number is 2. If the number is not fixed the method returns 0, e.g. for the classification rate.

Returns:
the allowed number of classes
See Also:
AbstractClassifier.getNumberOfClasses()

getCollectionOfAllMeasures

public static SelectionParameter getCollectionOfAllMeasures(int numClasses,
                                                            boolean numerical)
                                                     throws Exception
This method creates an instance of an SelectionParameter that can be used to create an instance of PerformanceMeasureParameterSet or NumericalPerformanceMeasureParameterSet.

Parameters:
numClasses - the number of classes
numerical - a switch indicating whether all performance measures or only those implementing NumericalPerformanceMeasure shall be contained in the returned SelectionParameter
Returns:
a SelectionParameter that can be used to create an instance of PerformanceMeasureParameterSet or NumericalPerformanceMeasureParameterSet
Throws:
Exception - if something went wrong, e.g. missing empty constructor of any performance measure.
See Also:
AbstractClassifier.getNumberOfClasses()