Class BVDecompose

java.lang.Object
weka.classifiers.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: 10141 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz)
  • Constructor Details

    • BVDecompose

      public BVDecompose()
  • Method Details

    • 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
    • getRevision

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

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