Class MultiScheme

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, CapabilitiesHandler, 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: 1.25 $
    Author:
    Len Trigg (trigg@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • MultiScheme

        public MultiScheme()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing classifier
        Returns:
        a description suitable for displaying in the explorer/experimenter gui
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.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:
        java.lang.Exception - if an option is not supported
      • classifiersTipText

        public java.lang.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.
      • 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 java.lang.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
      • numFoldsTipText

        public java.lang.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 java.lang.String debugTipText()
        Returns the tip text for this property
        Overrides:
        debugTipText in class Classifier
        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 Classifier
        Parameters:
        debug - true if debug output should be printed
      • getDebug

        public boolean getDebug()
        Get whether debugging is turned on
        Overrides:
        getDebug in class Classifier
        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 java.lang.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:
        java.lang.Exception - if the classifier could not be built successfully
      • distributionForInstance

        public double[] distributionForInstance​(Instance instance)
                                         throws java.lang.Exception
        Returns class probabilities.
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        instance - the instance to be classified
        Returns:
        the distribution for the instance
        Throws:
        java.lang.Exception - if instance could not be classified successfully
      • toString

        public java.lang.String toString()
        Output a representation of this classifier
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of the classifier
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - should contain the following arguments: -t training file [-T test file] [-c class index]