weka.classifiers

## Class BVDecompose

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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BVDecompose()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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<Option>` | `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<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(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