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: 1.15 $
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`
`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 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