Package weka.classifiers

# 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 Summary

  Constructors
  Constructor
  Description
  `BVDecompose()`

- ## Method Summary

  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.
  `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
  `String[]`
  `getOptions()`
  Gets the current settings of the CheckClassifier.
  `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
  `String`
  `globalInfo()`
  Returns a string describing this object
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(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(String dataFileName)`
  Sets the name of the data file used for the decomposition
  `void`
  `setDebug(boolean debug)`
  Sets debugging mode
  `void`
  `setOptions(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.
  `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 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