Package weka.classifiers.meta
Class Vote
- All Implemented Interfaces:
Serializable
,Cloneable
,Classifier
,Aggregateable<Classifier>
,BatchPredictor
,CapabilitiesHandler
,CapabilitiesIgnorer
,CommandlineRunnable
,EnvironmentHandler
,OptionHandler
,Randomizable
,RevisionHandler
,TechnicalInformationHandler
,WeightedInstancesHandler
public class Vote
extends RandomizableMultipleClassifiersCombiner
implements TechnicalInformationHandler, EnvironmentHandler, Aggregateable<Classifier>, WeightedInstancesHandler
Class for combining classifiers. Different
combinations of probability estimates for classification are available.
For more information see:
Ludmila I. Kuncheva (2004). Combining Pattern Classifiers: Methods and Algorithms. John Wiley and Sons, Inc..
J. Kittler, M. Hatef, Robert P.W. Duin, J. Matas (1998). On combining classifiers. IEEE Transactions on Pattern Analysis and Machine Intelligence. 20(3):226-239.
If a base classifier cannot handle instance weights, and the instance weights are not uniform, the data will be resampled with replacement based on the weights before being passed to that base classifier. Valid options are:
For more information see:
Ludmila I. Kuncheva (2004). Combining Pattern Classifiers: Methods and Algorithms. John Wiley and Sons, Inc..
J. Kittler, M. Hatef, Robert P.W. Duin, J. Matas (1998). On combining classifiers. IEEE Transactions on Pattern Analysis and Machine Intelligence. 20(3):226-239.
If a base classifier cannot handle instance weights, and the instance weights are not uniform, the data will be resampled with replacement based on the weights before being passed to that base classifier. Valid options are:
-P <path to serialized classifier> Full path to serialized classifier to include. May be specified multiple times to include multiple serialized classifiers. Note: it does not make sense to use pre-built classifiers in a cross-validation.
-R <AVG|PROD|MAJ|MIN|MAX|MED> The combination rule to use (default: AVG)
-print Print the individual models in the output
-S <num> Random number seed. (default 1)
-B <classifier specification> Full class name of classifier to include, followed by scheme options. May be specified multiple times. (default: "weka.classifiers.rules.ZeroR")
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
Options specific to classifier weka.classifiers.rules.ZeroR:
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).BibTeX:
@book{Kuncheva2004, author = {Ludmila I. Kuncheva}, publisher = {John Wiley and Sons, Inc.}, title = {Combining Pattern Classifiers: Methods and Algorithms}, year = {2004} } @article{Kittler1998, author = {J. Kittler and M. Hatef and Robert P.W. Duin and J. Matas}, journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, number = {3}, pages = {226-239}, title = {On combining classifiers}, volume = {20}, year = {1998} }
- Version:
- $Revision: 15479 $
- Author:
- Alexander K. Seewald (alex@seewald.at), Eibe Frank (eibe@cs.waikato.ac.nz), Roberto Perdisci (roberto.perdisci@gmail.com)
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
combination rule: Average of Probabilitiesstatic final int
combination rule: Majority Voting (only nominal classes)static final int
combination rule: Maximum Probabilitystatic final int
combination rule: Median Probability (only numeric class)static final int
combination rule: Minimum Probabilitystatic final int
combination rule: Product of Probabilities (only nominal classes)static final Tag[]
combination rulesFields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a prebuilt classifier to the list for use in the ensembleaggregate
(Classifier toAggregate) Aggregate an object with this onevoid
buildClassifier
(Instances data) Builds all classifiers in the ensembledouble
classifyInstance
(Instance instance) Classifies the given test instance.Returns the tip text for this propertydouble[]
distributionForInstance
(Instance instance) Classifies a given instance using the selected combination rule.Returns the tip text for this propertyvoid
Call to complete the aggregation process.Returns default capabilities of the classifier.Gets the combination rule usedboolean
Get whether to print the individual ensemble models in the outputString[]
Gets the current settings of Vote.File[]
Get the paths to pre-built serialized classifiers to load and include in the ensembleReturns the revision string.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.Returns a string describing classifierReturns an enumeration describing the available options.static void
Main method for testing this class.Returns the tip text for this propertyvoid
Remove a prebuilt classifier from the list to use in the ensemblevoid
setCombinationRule
(SelectedTag newRule) Sets the combination rule to use.void
setDoNotPrintModels
(boolean print) Set whether to print the individual ensemble models in the outputvoid
Set environment variable values to substitute in the paths of serialized models to loadvoid
setOptions
(String[] options) Parses a given list of options.void
setPreBuiltClassifiers
(File[] preBuilt) Set the paths to pre-built serialized classifiers to load and include in the ensembletoString()
Output a representation of this classifierMethods inherited from class weka.classifiers.RandomizableMultipleClassifiersCombiner
getSeed, seedTipText, setSeed
Methods inherited from class weka.classifiers.MultipleClassifiersCombiner
classifiersTipText, getClassifier, getClassifiers, postExecution, preExecution, setClassifiers
Methods inherited from class weka.classifiers.AbstractClassifier
batchSizeTipText, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
-
Field Details
-
AVERAGE_RULE
public static final int AVERAGE_RULEcombination rule: Average of Probabilities- See Also:
-
PRODUCT_RULE
public static final int PRODUCT_RULEcombination rule: Product of Probabilities (only nominal classes)- See Also:
-
MAJORITY_VOTING_RULE
public static final int MAJORITY_VOTING_RULEcombination rule: Majority Voting (only nominal classes)- See Also:
-
MIN_RULE
public static final int MIN_RULEcombination rule: Minimum Probability- See Also:
-
MAX_RULE
public static final int MAX_RULEcombination rule: Maximum Probability- See Also:
-
MEDIAN_RULE
public static final int MEDIAN_RULEcombination rule: Median Probability (only numeric class)- See Also:
-
TAGS_RULES
combination rules
-
-
Constructor Details
-
Vote
public Vote()
-
-
Method Details
-
globalInfo
Returns a string describing classifier- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classRandomizableMultipleClassifiersCombiner
- Returns:
- an enumeration of all the available options.
-
getOptions
Gets the current settings of Vote.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classRandomizableMultipleClassifiersCombiner
- Returns:
- an array of strings suitable for passing to setOptions()
-
setOptions
Parses a given list of options. Valid options are:-P <path to serialized classifier> Full path to serialized classifier to include. May be specified multiple times to include multiple serialized classifiers. Note: it does not make sense to use pre-built classifiers in a cross-validation.
-R <AVG|PROD|MAJ|MIN|MAX|MED> The combination rule to use (default: AVG)
-print Print the individual models in the output
-S <num> Random number seed. (default 1)
-B <classifier specification> Full class name of classifier to include, followed by scheme options. May be specified multiple times. (default: "weka.classifiers.rules.ZeroR")
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
Options specific to classifier weka.classifiers.rules.ZeroR:
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classRandomizableMultipleClassifiersCombiner
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
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.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Overrides:
getCapabilities
in classMultipleClassifiersCombiner
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Builds all classifiers in the ensemble- Specified by:
buildClassifier
in interfaceClassifier
- Parameters:
data
- the training data to be used for generating the ensemble.- Throws:
Exception
- if the classifier could not be built successfully
-
addPreBuiltClassifier
Add a prebuilt classifier to the list for use in the ensemble- Parameters:
c
- a prebuilt Classifier to add.
-
removePreBuiltClassifier
Remove a prebuilt classifier from the list to use in the ensemble- Parameters:
c
- the classifier to remove
-
classifyInstance
Classifies the given test instance.- Specified by:
classifyInstance
in interfaceClassifier
- Overrides:
classifyInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- the predicted most likely class for the instance or Utils.missingValue() if no prediction is made
- Throws:
Exception
- if an error occurred during the prediction
-
distributionForInstance
Classifies a given instance using the selected combination rule.- Specified by:
distributionForInstance
in interfaceClassifier
- Overrides:
distributionForInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- the distribution
- Throws:
Exception
- if instance could not be classified successfully
-
combinationRuleTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getCombinationRule
Gets the combination rule used- Returns:
- the combination rule used
-
setCombinationRule
Sets the combination rule to use. Values other than- Parameters:
newRule
- the combination rule method to use
-
preBuiltClassifiersTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setPreBuiltClassifiers
Set the paths to pre-built serialized classifiers to load and include in the ensemble- Parameters:
preBuilt
- an array of File paths to serialized models
-
getPreBuiltClassifiers
Get the paths to pre-built serialized classifiers to load and include in the ensemble- Returns:
- an array of File paths to serialized models
-
doNotPrintModelsTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setDoNotPrintModels
public void setDoNotPrintModels(boolean print) Set whether to print the individual ensemble models in the output- Parameters:
print
- true if the individual models are to be printed
-
getDoNotPrintModels
public boolean getDoNotPrintModels()Get whether to print the individual ensemble models in the output- Returns:
- true if the individual models are to be printed
-
toString
Output a representation of this classifier -
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClassifier
- Returns:
- the revision
-
setEnvironment
Set environment variable values to substitute in the paths of serialized models to load- Specified by:
setEnvironment
in interfaceEnvironmentHandler
- Parameters:
env
- the environment variables to use
-
aggregate
Aggregate an object with this one- Specified by:
aggregate
in interfaceAggregateable<Classifier>
- Parameters:
toAggregate
- the object to aggregate- Returns:
- the result of aggregation
- Throws:
Exception
- if the supplied object can't be aggregated for some reason
-
finalizeAggregation
Call to complete the aggregation process. Allows implementers to do any final processing based on how many objects were aggregated.- Specified by:
finalizeAggregation
in interfaceAggregateable<Classifier>
- Throws:
Exception
- if the aggregation can't be finalized for some reason
-
main
Main method for testing this class.- Parameters:
argv
- should contain the following arguments: -t training file [-T test file] [-c class index]
-