Class Vote

All Implemented Interfaces:
Serializable, Cloneable, CapabilitiesHandler, OptionHandler, Randomizable, RevisionHandler, 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:
  • Field Details

    • AVERAGE_RULE

      public static final int AVERAGE_RULE
      combination rule: Average of Probabilities
      See Also:
    • PRODUCT_RULE

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

      public static final int MAJORITY_VOTING_RULE
      combination rule: Majority Voting (only nominal classes)
      See Also:
    • MIN_RULE

      public static final int MIN_RULE
      combination rule: Minimum Probability
      See Also:
    • MAX_RULE

      public static final int MAX_RULE
      combination rule: Maximum Probability
      See Also:
    • MEDIAN_RULE

      public static final int MEDIAN_RULE
      combination rule: Median Probability (only numeric class)
      See Also:
    • 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:
    • 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]