Class BVDecompose

  • All Implemented Interfaces:
    OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class BVDecompose
    extends Object
    implements OptionHandler, TechnicalInformationHandler, RevisionHandler
    Class for performing a Bias-Variance decomposition on any classifier using the method specified in:

    Ron Kohavi, David H. Wolpert: Bias Plus Variance Decomposition for Zero-One Loss Functions. In: Machine Learning: Proceedings of the Thirteenth International Conference, 275-283, 1996.

    BibTeX:

     @inproceedings{Kohavi1996,
        author = {Ron Kohavi and David H. Wolpert},
        booktitle = {Machine Learning: Proceedings of the Thirteenth International Conference},
        editor = {Lorenza Saitta},
        pages = {275-283},
        publisher = {Morgan Kaufmann},
        title = {Bias Plus Variance Decomposition for Zero-One Loss Functions},
        year = {1996},
        PS = {http://robotics.stanford.edu/\~ronnyk/biasVar.ps}
     }
     

    Valid options are:

     -c <class index>
      The index of the class attribute.
      (default last)
     -t <name of arff file>
      The name of the arff file used for the decomposition.
     -T <training pool size>
      The number of instances placed in the training pool.
      The remainder will be used for testing. (default 100)
     -s <seed>
      The random number seed used.
     -x <num>
      The number of training repetitions used.
      (default 50)
     -D
      Turn on debugging output.
     -W <classifier class name>
      Full class name of the learner used in the decomposition.
      eg: weka.classifiers.bayes.NaiveBayes
     Options specific to learner weka.classifiers.rules.ZeroR:
     
     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
    Options after -- are passed to the designated sub-learner.

    Version:
    $Revision$
    Author:
    Len Trigg (trigg@cs.waikato.ac.nz)
    • Constructor Detail

      • BVDecompose

        public BVDecompose()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing this object
        Returns:
        a description of the classifier suitable for displaying in the explorer/experimenter gui
      • 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
      • listOptions

        public Enumeration<Option> listOptions()
        Returns an enumeration describing the available options.
        Specified by:
        listOptions in interface OptionHandler
        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:

         -c <class index>
          The index of the class attribute.
          (default last)
         -t <name of arff file>
          The name of the arff file used for the decomposition.
         -T <training pool size>
          The number of instances placed in the training pool.
          The remainder will be used for testing. (default 100)
         -s <seed>
          The random number seed used.
         -x <num>
          The number of training repetitions used.
          (default 50)
         -D
          Turn on debugging output.
         -W <classifier class name>
          Full class name of the learner used in the decomposition.
          eg: weka.classifiers.bayes.NaiveBayes
         Options specific to learner weka.classifiers.rules.ZeroR:
         
         -D
          If set, classifier is run in debug mode and
          may output additional info to the console
        Options after -- are passed to the designated sub-learner.

        Specified by:
        setOptions in interface OptionHandler
        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 CheckClassifier.
        Specified by:
        getOptions in interface OptionHandler
        Returns:
        an array of strings suitable for passing to setOptions
      • getTrainPoolSize

        public int getTrainPoolSize()
        Get the number of instances in the training pool.
        Returns:
        number of instances in the training pool.
      • setTrainPoolSize

        public void setTrainPoolSize​(int numTrain)
        Set the number of instances in the training pool.
        Parameters:
        numTrain - number of instances in the training pool.
      • setClassifier

        public void setClassifier​(Classifier newClassifier)
        Set the classifiers being analysed
        Parameters:
        newClassifier - the Classifier to use.
      • getClassifier

        public Classifier getClassifier()
        Gets the name of the classifier being analysed
        Returns:
        the classifier being analysed.
      • setDebug

        public void setDebug​(boolean debug)
        Sets debugging mode
        Parameters:
        debug - true if debug output should be printed
      • getDebug

        public boolean getDebug()
        Gets whether debugging is turned on
        Returns:
        true if debugging output is on
      • setSeed

        public void setSeed​(int seed)
        Sets the random number seed
        Parameters:
        seed - the random number seed
      • getSeed

        public int getSeed()
        Gets the random number seed
        Returns:
        the random number seed
      • setTrainIterations

        public void setTrainIterations​(int trainIterations)
        Sets the maximum number of boost iterations
        Parameters:
        trainIterations - the number of boost iterations
      • getTrainIterations

        public int getTrainIterations()
        Gets the maximum number of boost iterations
        Returns:
        the maximum number of boost iterations
      • setDataFileName

        public void setDataFileName​(String dataFileName)
        Sets the name of the data file used for the decomposition
        Parameters:
        dataFileName - the data file to use
      • getDataFileName

        public String getDataFileName()
        Get the name of the data file used for the decomposition
        Returns:
        the name of the data file
      • getClassIndex

        public int getClassIndex()
        Get the index (starting from 1) of the attribute used as the class.
        Returns:
        the index of the class attribute
      • setClassIndex

        public void setClassIndex​(int classIndex)
        Sets index of attribute to discretize on
        Parameters:
        classIndex - the index (starting from 1) of the class attribute
      • getBias

        public double getBias()
        Get the calculated bias squared
        Returns:
        the bias squared
      • getVariance

        public double getVariance()
        Get the calculated variance
        Returns:
        the variance
      • getSigma

        public double getSigma()
        Get the calculated sigma squared
        Returns:
        the sigma squared
      • getError

        public double getError()
        Get the calculated error rate
        Returns:
        the error rate
      • decompose

        public void decompose()
                       throws Exception
        Carry out the bias-variance decomposition
        Throws:
        Exception - if the decomposition couldn't be carried out
      • toString

        public String toString()
        Returns description of the bias-variance decomposition results.
        Overrides:
        toString in class Object
        Returns:
        the bias-variance decomposition results as a string
      • main

        public static void main​(String[] args)
        Test method for this class
        Parameters:
        args - the command line arguments