Package weka.classifiers.meta
Class MultiClassClassifier
java.lang.Object
weka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.RandomizableSingleClassifierEnhancer
weka.classifiers.meta.MultiClassClassifier
- All Implemented Interfaces:
Serializable
,Cloneable
,CapabilitiesHandler
,OptionHandler
,Randomizable
,RevisionHandler
public class MultiClassClassifier
extends RandomizableSingleClassifierEnhancer
implements OptionHandler
A metaclassifier for handling multi-class datasets with 2-class classifiers. This classifier is also capable of applying error correcting output codes for increased accuracy.
Valid options are:
-M <num> Sets the method to use. Valid values are 0 (1-against-all), 1 (random codes), 2 (exhaustive code), and 3 (1-against-1). (default 0)
-R <num> Sets the multiplier when using random codes. (default 2.0)
-P Use pairwise coupling (only has an effect for 1-against1)
-S <num> Random number seed. (default 1)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.functions.Logistic)
Options specific to classifier weka.classifiers.functions.Logistic:
-D Turn on debugging output.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).
- Version:
- $Revision: 1.48 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (len@reeltwo.com), Richard Kirkby (rkirkby@cs.waikato.ac.nz)
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
1-against-1static final int
1-against-allstatic final int
exhaustive correction codestatic final int
random correction codestatic final Tag[]
The error correction modes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
buildClassifier
(Instances insts) Builds the classifiers.double[]
Returns the distribution for an instance.Returns default capabilities of the classifier.Gets the method used.String[]
Gets the current settings of the Classifier.double
Gets the multiplier when generating random codes.Returns the revision string.boolean
Gets whether to use pairwise coupling with 1-vs-1 classification to improve probability estimates.double[]
Returns the individual predictions of the base classifiers for an instance.Returns an enumeration describing the available optionsstatic void
Main method for testing this class.static double[]
pairwiseCoupling
(double[][] n, double[][] r) Implements pairwise coupling.void
setMethod
(SelectedTag newMethod) Sets the method used.void
setOptions
(String[] options) Parses a given list of options.void
setRandomWidthFactor
(double newRandomWidthFactor) Sets the multiplier when generating random codes.void
setUsePairwiseCoupling
(boolean p) Set whether to use pairwise coupling with 1-vs-1 classification to improve probability estimates.toString()
Prints the classifiers.Methods inherited from class weka.classifiers.RandomizableSingleClassifierEnhancer
getSeed, seedTipText, setSeed
Methods inherited from class weka.classifiers.SingleClassifierEnhancer
classifierTipText, getClassifier, setClassifier
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
Field Details
-
METHOD_1_AGAINST_ALL
public static final int METHOD_1_AGAINST_ALL1-against-all- See Also:
-
METHOD_ERROR_RANDOM
public static final int METHOD_ERROR_RANDOMrandom correction code- See Also:
-
METHOD_ERROR_EXHAUSTIVE
public static final int METHOD_ERROR_EXHAUSTIVEexhaustive correction code- See Also:
-
METHOD_1_AGAINST_1
public static final int METHOD_1_AGAINST_11-against-1- See Also:
-
TAGS_METHOD
The error correction modes
-
-
Constructor Details
-
MultiClassClassifier
public MultiClassClassifier()Constructor.
-
-
Method Details
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classSingleClassifierEnhancer
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Builds the classifiers.- Specified by:
buildClassifier
in classClassifier
- Parameters:
insts
- the training data.- Throws:
Exception
- if a classifier can't be built
-
individualPredictions
Returns the individual predictions of the base classifiers for an instance. Used by StackedMultiClassClassifier. Returns the probability for the second "class" predicted by each base classifier.- Parameters:
inst
- the instance to get the prediction for- Returns:
- the individual predictions
- Throws:
Exception
- if the predictions can't be computed successfully
-
distributionForInstance
Returns the distribution for an instance.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
inst
- the instance to get the distribution for- Returns:
- the distribution
- Throws:
Exception
- if the distribution can't be computed successfully
-
toString
Prints the classifiers. -
listOptions
Returns an enumeration describing the available options- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classRandomizableSingleClassifierEnhancer
- Returns:
- an enumeration of all the available options
-
setOptions
Parses a given list of options. Valid options are:-M <num> Sets the method to use. Valid values are 0 (1-against-all), 1 (random codes), 2 (exhaustive code), and 3 (1-against-1). (default 0)
-R <num> Sets the multiplier when using random codes. (default 2.0)
-P Use pairwise coupling (only has an effect for 1-against1)
-S <num> Random number seed. (default 1)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.functions.Logistic)
Options specific to classifier weka.classifiers.functions.Logistic:
-D Turn on debugging output.
-R <ridge> Set the ridge in the log-likelihood.
-M <number> Set the maximum number of iterations (default -1, until convergence).
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classRandomizableSingleClassifierEnhancer
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getOptions
Gets the current settings of the Classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classRandomizableSingleClassifierEnhancer
- Returns:
- an array of strings suitable for passing to setOptions
-
globalInfo
- Returns:
- a description of the classifier suitable for displaying in the explorer/experimenter gui
-
randomWidthFactorTipText
- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getRandomWidthFactor
public double getRandomWidthFactor()Gets the multiplier when generating random codes. Will generate numClasses * m_RandomWidthFactor codes.- Returns:
- the width multiplier
-
setRandomWidthFactor
public void setRandomWidthFactor(double newRandomWidthFactor) Sets the multiplier when generating random codes. Will generate numClasses * m_RandomWidthFactor codes.- Parameters:
newRandomWidthFactor
- the new width multiplier
-
methodTipText
- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMethod
Gets the method used. Will be one of METHOD_1_AGAINST_ALL, METHOD_ERROR_RANDOM, METHOD_ERROR_EXHAUSTIVE, or METHOD_1_AGAINST_1.- Returns:
- the current method.
-
setMethod
Sets the method used. Will be one of METHOD_1_AGAINST_ALL, METHOD_ERROR_RANDOM, METHOD_ERROR_EXHAUSTIVE, or METHOD_1_AGAINST_1.- Parameters:
newMethod
- the new method.
-
setUsePairwiseCoupling
public void setUsePairwiseCoupling(boolean p) Set whether to use pairwise coupling with 1-vs-1 classification to improve probability estimates.- Parameters:
p
- true if pairwise coupling is to be used
-
getUsePairwiseCoupling
public boolean getUsePairwiseCoupling()Gets whether to use pairwise coupling with 1-vs-1 classification to improve probability estimates.- Returns:
- true if pairwise coupling is to be used
-
usePairwiseCouplingTipText
- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
pairwiseCoupling
public static double[] pairwiseCoupling(double[][] n, double[][] r) Implements pairwise coupling.- Parameters:
n
- the sum of weights used to train each modelr
- the probability estimate from each model- Returns:
- the coupled estimates
-
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
Main method for testing this class.- Parameters:
argv
- the options
-