Class BVDecompose

  • All Implemented Interfaces:
    OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class BVDecompose
    extends java.lang.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: 1.15 $
    Author:
    Len Trigg (trigg@cs.waikato.ac.nz)
    • Constructor Summary

      Constructors 
      Constructor Description
      BVDecompose()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void decompose()
      Carry out the bias-variance decomposition
      double getBias()
      Get the calculated bias squared
      Classifier getClassifier()
      Gets the name of the classifier being analysed
      int getClassIndex()
      Get the index (starting from 1) of the attribute used as the class.
      java.lang.String getDataFileName()
      Get the name of the data file used for the decomposition
      boolean getDebug()
      Gets whether debugging is turned on
      double getError()
      Get the calculated error rate
      java.lang.String[] getOptions()
      Gets the current settings of the CheckClassifier.
      java.lang.String getRevision()
      Returns the revision string.
      int getSeed()
      Gets the random number seed
      double getSigma()
      Get the calculated sigma squared
      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.
      int getTrainIterations()
      Gets the maximum number of boost iterations
      int getTrainPoolSize()
      Get the number of instances in the training pool.
      double getVariance()
      Get the calculated variance
      java.lang.String globalInfo()
      Returns a string describing this object
      java.util.Enumeration listOptions()
      Returns an enumeration describing the available options.
      static void main​(java.lang.String[] args)
      Test method for this class
      void setClassifier​(Classifier newClassifier)
      Set the classifiers being analysed
      void setClassIndex​(int classIndex)
      Sets index of attribute to discretize on
      void setDataFileName​(java.lang.String dataFileName)
      Sets the name of the data file used for the decomposition
      void setDebug​(boolean debug)
      Sets debugging mode
      void setOptions​(java.lang.String[] options)
      Parses a given list of options.
      void setSeed​(int seed)
      Sets the random number seed
      void setTrainIterations​(int trainIterations)
      Sets the maximum number of boost iterations
      void setTrainPoolSize​(int numTrain)
      Set the number of instances in the training pool.
      java.lang.String toString()
      Returns description of the bias-variance decomposition results.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BVDecompose

        public BVDecompose()
    • Method Detail

      • globalInfo

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

        public java.lang.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​(java.lang.String dataFileName)
        Sets the name of the data file used for the decomposition
        Parameters:
        dataFileName - the data file to use
      • getDataFileName

        public java.lang.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 java.lang.Exception
        Carry out the bias-variance decomposition
        Throws:
        java.lang.Exception - if the decomposition couldn't be carried out
      • toString

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

        public java.lang.String getRevision()
        Returns the revision string.
        Specified by:
        getRevision in interface RevisionHandler
        Returns:
        the revision
      • main

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