Class MultiScheme

All Implemented Interfaces:
Serializable, Cloneable, Classifier, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, Randomizable, RevisionHandler

public class MultiScheme extends RandomizableMultipleClassifiersCombiner
Class for selecting a classifier from among several using cross validation on the training data or the performance on the training data. Performance is measured based on percent correct (classification) or mean-squared error (regression).

Valid options are:

 -X <number of folds>
  Use cross validation for model selection using the
  given number of folds. (default 0, is to
  use training error)
 -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
Version:
$Revision: 10141 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • MultiScheme

      public MultiScheme()
  • 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<Option> 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.
    • setOptions

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

      Valid options are:

       -X <number of folds>
        Use cross validation for model selection using the
        given number of folds. (default 0, is to
        use training error)
       -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
      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
    • getOptions

      public String[] getOptions()
      Gets the current settings of the Classifier.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class RandomizableMultipleClassifiersCombiner
      Returns:
      an array of strings suitable for passing to setOptions
    • classifiersTipText

      public String classifiersTipText()
      Returns the tip text for this property
      Overrides:
      classifiersTipText in class MultipleClassifiersCombiner
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setClassifiers

      public void setClassifiers(Classifier[] classifiers)
      Sets the list of possible classifers to choose from.
      Overrides:
      setClassifiers in class MultipleClassifiersCombiner
      Parameters:
      classifiers - an array of classifiers with all options set.
    • getClassifiers

      public Classifier[] getClassifiers()
      Gets the list of possible classifers to choose from.
      Overrides:
      getClassifiers in class MultipleClassifiersCombiner
      Returns:
      the array of Classifiers
    • getClassifier

      public Classifier getClassifier(int index)
      Gets a single classifier from the set of available classifiers.
      Overrides:
      getClassifier in class MultipleClassifiersCombiner
      Parameters:
      index - the index of the classifier wanted
      Returns:
      the Classifier
    • seedTipText

      public String seedTipText()
      Returns the tip text for this property
      Overrides:
      seedTipText in class RandomizableMultipleClassifiersCombiner
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setSeed

      public void setSeed(int seed)
      Sets the seed for random number generation.
      Specified by:
      setSeed in interface Randomizable
      Overrides:
      setSeed in class RandomizableMultipleClassifiersCombiner
      Parameters:
      seed - the random number seed
    • getSeed

      public int getSeed()
      Gets the random number seed.
      Specified by:
      getSeed in interface Randomizable
      Overrides:
      getSeed in class RandomizableMultipleClassifiersCombiner
      Returns:
      the random number seed
    • numFoldsTipText

      public String numFoldsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getNumFolds

      public int getNumFolds()
      Gets the number of folds for cross-validation. A number less than 2 specifies using training error rather than cross-validation.
      Returns:
      the number of folds for cross-validation
    • setNumFolds

      public void setNumFolds(int numFolds)
      Sets the number of folds for cross-validation. A number less than 2 specifies using training error rather than cross-validation.
      Parameters:
      numFolds - the number of folds for cross-validation
    • debugTipText

      public String debugTipText()
      Returns the tip text for this property
      Overrides:
      debugTipText in class AbstractClassifier
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setDebug

      public void setDebug(boolean debug)
      Set debugging mode
      Overrides:
      setDebug in class AbstractClassifier
      Parameters:
      debug - true if debug output should be printed
    • getDebug

      public boolean getDebug()
      Get whether debugging is turned on
      Overrides:
      getDebug in class AbstractClassifier
      Returns:
      true if debugging output is on
    • getBestClassifierIndex

      public int getBestClassifierIndex()
      Get the index of the classifier that was determined as best during cross-validation.
      Returns:
      the index in the classifier array
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Buildclassifier selects a classifier from the set of classifiers by minimising error on the training data.
      Parameters:
      data - the training data to be used for generating the boosted classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Returns class probabilities.
      Specified by:
      distributionForInstance in interface Classifier
      Overrides:
      distributionForInstance in class AbstractClassifier
      Parameters:
      instance - the instance to be classified
      Returns:
      the distribution for the instance
      Throws:
      Exception - if instance could not be classified successfully
    • 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 AbstractClassifier
      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]