Package weka.classifiers.meta

# Class Vote

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.MultipleClassifiersCombiner
weka.classifiers.RandomizableMultipleClassifiersCombiner
weka.classifiers.meta.Vote

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `CapabilitiesHandler`, `OptionHandler`, `Randomizable`, `RevisionHandler`, `TechnicalInformationHandler`

public class Vote extends RandomizableMultipleClassifiersCombiner implements TechnicalInformationHandler
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.

Valid options are:

     -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")

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -R <AVG|PROD|MAJ|MIN|MAX|MED>
      The combination rule to use
      (default: AVG)

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: 12426 $
Author:
  Alexander K. Seewald (alex@seewald.at), Eibe Frank (eibe@cs.waikato.ac.nz), Roberto Perdisci (roberto.perdisci@gmail.com)
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`AVERAGE_RULE`
combination rule: Average of Probabilities
`static final int`
`MAJORITY_VOTING_RULE`
combination rule: Majority Voting (only nominal classes)
`static final int`
`MAX_RULE`
combination rule: Maximum Probability
`static final int`
`MEDIAN_RULE`
combination rule: Median Probability (only numeric class)
`static final int`
`MIN_RULE`
combination rule: Minimum Probability
`static final int`
`PRODUCT_RULE`
combination rule: Product of Probabilities (only nominal classes)
`static final Tag[]`
`TAGS_RULES`
combination rules

## Constructor Summary

Constructors
Constructor
Description
`Vote()`

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances data)`
Buildclassifier selects a classifier from the set of classifiers by minimising error on the training data.
`double`
`classifyInstance(Instance instance)`
Classifies the given test instance.
`String`
`combinationRuleTipText()`
Returns the tip text for this property
`double[]`
`distributionForInstance(Instance instance)`
Classifies a given instance using the selected combination rule.
`Capabilities`
`getCapabilities()`
Returns default capabilities of the classifier.
`SelectedTag`
`getCombinationRule()`
Gets the combination rule used
`String[]`
`getOptions()`
Gets the current settings of Vote.
`String`
`getRevision()`
Returns the revision string.
`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 classifier
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`static void`
`main(String[] argv)`
Main method for testing this class.
`void`
`setCombinationRule(SelectedTag newRule)`
Sets the combination rule to use.
`void`
`setOptions(String[] options)`
Parses a given list of options.
`String`
`toString()`
Output a representation of this classifier

### Methods inherited from class weka.classifiers.RandomizableMultipleClassifiersCombiner

`getSeed, seedTipText, setSeed`

### Methods inherited from class weka.classifiers.MultipleClassifiersCombiner

`classifiersTipText, getClassifier, getClassifiers, setClassifiers`

### Methods inherited from class weka.classifiers.Classifier

`debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### AVERAGE_RULE

public static final int AVERAGE_RULE
combination rule: Average of Probabilities

See Also:
  - Constant Field Values

### PRODUCT_RULE

public static final int PRODUCT_RULE
combination rule: Product of Probabilities (only nominal classes)

See Also:
  - Constant Field Values

### MAJORITY_VOTING_RULE

public static final int MAJORITY_VOTING_RULE
combination rule: Majority Voting (only nominal classes)

See Also:
  - Constant Field Values

### MIN_RULE

public static final int MIN_RULE
combination rule: Minimum Probability

See Also:
  - Constant Field Values

### MAX_RULE

public static final int MAX_RULE
combination rule: Maximum Probability

See Also:
  - Constant Field Values

### MEDIAN_RULE

public static final int MEDIAN_RULE
combination rule: Median Probability (only numeric class)

See Also:
  - Constant Field Values

### TAGS_RULES

public static final Tag[] TAGS_RULES
combination rules

## Constructor Details

### Vote

public Vote()

## Method Details

### globalInfo

public String globalInfo()
Returns a string describing classifier

Returns:
  a description suitable for displaying in the explorer/experimenter gui

### listOptions

public Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
  `listOptions` in interface `OptionHandler`
Overrides:
  `listOptions` in class `RandomizableMultipleClassifiersCombiner`
Returns:
  an enumeration of all the available options.

### getOptions

public String[] getOptions()
Gets the current settings of Vote.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `RandomizableMultipleClassifiersCombiner`
Returns:
  an array of strings suitable for passing to setOptions()

### setOptions

public void setOptions(String[] options) throws Exception
Parses a given list of options.

Valid options are:

     -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")

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -R <AVG|PROD|MAJ|MIN|MAX|MED>
      The combination rule to use
      (default: AVG)

Specified by:
  `setOptions` in interface `OptionHandler`
Overrides:
  `setOptions` in class `RandomizableMultipleClassifiersCombiner`
Parameters:
  `options` - the list of options as an array of strings
Throws:
  `Exception` - if an option is not supported

### getTechnicalInformation

public 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.

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

### getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
  `getCapabilities` in interface `CapabilitiesHandler`
Overrides:
  `getCapabilities` in class `MultipleClassifiersCombiner`
Returns:
  the capabilities of this classifier
See Also:
  - `Capabilities`

### buildClassifier

public void buildClassifier(Instances data) throws Exception
Buildclassifier selects a classifier from the set of classifiers by minimising error on the training data.

Specified by:
  `buildClassifier` in class `Classifier`
Parameters:
  `data` - the training data to be used for generating the boosted classifier.
Throws:
  `Exception` - if the classifier could not be built successfully

### classifyInstance

public double classifyInstance(Instance instance) throws Exception
Classifies the given test instance.

Overrides:
  `classifyInstance` in class `Classifier`
Parameters:
  `instance` - the instance to be classified
Returns:
  the predicted most likely class for the instance or Instance.missingValue() if no prediction is made
Throws:
  `Exception` - if an error occurred during the prediction

### distributionForInstance

public double[] distributionForInstance(Instance instance) throws Exception
Classifies a given instance using the selected combination rule.

Overrides:
  `distributionForInstance` in class `Classifier`
Parameters:
  `instance` - the instance to be classified
Returns:
  the distribution
Throws:
  `Exception` - if instance could not be classified successfully

### combinationRuleTipText

public String combinationRuleTipText()
Returns the tip text for this property

Returns:
  tip text for this property suitable for displaying in the explorer/experimenter gui

### getCombinationRule

public SelectedTag getCombinationRule()
Gets the combination rule used

Returns:
  the combination rule used

### setCombinationRule

public void setCombinationRule(SelectedTag newRule)
Sets the combination rule to use. Values other than

Parameters:
  `newRule` - the combination rule method to use

### toString

public String toString()
Output a representation of this classifier

Overrides:
  `toString` in class `Object`
Returns:
  a string representation of the classifier

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Overrides:
  `getRevision` in class `Classifier`
Returns:
  the revision

### main

public static void main(String[] argv)
Main method for testing this class.

Parameters:
  `argv` - should contain the following arguments: -t training file [-T test file] [-c class index]