Package weka.classifiers.meta

# Class AdaBoostM1

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.IteratedSingleClassifierEnhancer
weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
weka.classifiers.meta.AdaBoostM1

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Sourcable`, `CapabilitiesHandler`, `OptionHandler`, `Randomizable`, `RevisionHandler`, `TechnicalInformationHandler`, `WeightedInstancesHandler`

Direct Known Subclasses:
  `MultiBoostAB`

public class AdaBoostM1 extends RandomizableIteratedSingleClassifierEnhancer implements WeightedInstancesHandler, Sourcable, TechnicalInformationHandler
Class for boosting a nominal class classifier using the Adaboost M1 method. Only nominal class problems can be tackled. Often dramatically improves performance, but sometimes overfits.
For more information, see
Yoav Freund, Robert E. Schapire: Experiments with a new boosting algorithm. In: Thirteenth International Conference on Machine Learning, San Francisco, 148-156, 1996.

BibTeX:

     @inproceedings{Freund1996,
        address = {San Francisco},
        author = {Yoav Freund and Robert E. Schapire},
        booktitle = {Thirteenth International Conference on Machine Learning},
        pages = {148-156},
        publisher = {Morgan Kaufmann},
        title = {Experiments with a new boosting algorithm},
        year = {1996}
     }

Valid options are:

     -P <num>
      Percentage of weight mass to base training on.
      (default 100, reduce to around 90 speed up)

     -Q
      Use resampling for boosting.

     -S <num>
      Random number seed.
      (default 1)

     -I <num>
      Number of iterations.
      (default 10)

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -W
      Full name of base classifier.
      (default: weka.classifiers.trees.DecisionStump)

     Options specific to classifier weka.classifiers.trees.DecisionStump:

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

Options after -- are passed to the designated classifier.

Version:
  $Revision: 1.40 $
Author:
  Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`AdaBoostM1()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances data)`
Boosting method.
`double[]`
`distributionForInstance(Instance instance)`
Calculates the class membership probabilities for the given test instance.
`Capabilities`
`getCapabilities()`
Returns default capabilities of the classifier.
`String[]`
`getOptions()`
Gets the current settings of the Classifier.
`String`
`getRevision()`
Returns the revision string.
`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.
`boolean`
`getUseResampling()`
Get whether resampling is turned on
`int`
`getWeightThreshold()`
Get the degree of weight thresholding
`String`
`globalInfo()`
Returns a string describing classifier
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`static void`
`main(String[] argv)`
Main method for testing this class.
`void`
`setOptions(String[] options)`
Parses a given list of options.
`void`
`setUseResampling(boolean r)`
Set resampling mode
`void`
`setWeightThreshold(int threshold)`
Set weight threshold
`String`
`toSource(String className)`
Returns the boosted model as Java source code.
`String`
`toString()`
Returns description of the boosted classifier.
`String`
`useResamplingTipText()`
Returns the tip text for this property
`String`
`weightThresholdTipText()`
Returns the tip text for this property

### Methods inherited from class weka.classifiers.RandomizableIteratedSingleClassifierEnhancer

`getSeed, seedTipText, setSeed`

### Methods inherited from class weka.classifiers.IteratedSingleClassifierEnhancer

`getNumIterations, numIterationsTipText, setNumIterations`

### Methods inherited from class weka.classifiers.SingleClassifierEnhancer

`classifierTipText, getClassifier, setClassifier`

### Methods inherited from class weka.classifiers.Classifier

`classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### AdaBoostM1

public AdaBoostM1()
Constructor.

## Method Details

### globalInfo

public String globalInfo()
Returns a string describing classifier

Returns:
  a description 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`
Overrides:
  `listOptions` in class `RandomizableIteratedSingleClassifierEnhancer`
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:

     -P <num>
      Percentage of weight mass to base training on.
      (default 100, reduce to around 90 speed up)

     -Q
      Use resampling for boosting.

     -S <num>
      Random number seed.
      (default 1)

     -I <num>
      Number of iterations.
      (default 10)

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

     -W
      Full name of base classifier.
      (default: weka.classifiers.trees.DecisionStump)

     Options specific to classifier weka.classifiers.trees.DecisionStump:

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console

Options after -- are passed to the designated classifier.

Specified by:
  `setOptions` in interface `OptionHandler`
Overrides:
  `setOptions` in class `RandomizableIteratedSingleClassifierEnhancer`
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 Classifier.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `RandomizableIteratedSingleClassifierEnhancer`
Returns:
  an array of strings suitable for passing to setOptions

### weightThresholdTipText

public String weightThresholdTipText()
Returns the tip text for this property

Returns:
  tip text for this property suitable for displaying in the explorer/experimenter gui

### setWeightThreshold

public void setWeightThreshold(int threshold)
Set weight threshold

Parameters:
  `threshold` - the percentage of weight mass used for training

### getWeightThreshold

public int getWeightThreshold()
Get the degree of weight thresholding

Returns:
  the percentage of weight mass used for training

### useResamplingTipText

public String useResamplingTipText()
Returns the tip text for this property

Returns:
  tip text for this property suitable for displaying in the explorer/experimenter gui

### setUseResampling

public void setUseResampling(boolean r)
Set resampling mode

Parameters:
  `r` - true if resampling should be done

### getUseResampling

public boolean getUseResampling()
Get whether resampling is turned on

Returns:
  true if resampling output is on

### getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
  `getCapabilities` in interface `CapabilitiesHandler`
Overrides:
  `getCapabilities` in class `SingleClassifierEnhancer`
Returns:
  the capabilities of this classifier
See Also:
  - `Capabilities`

### buildClassifier

public void buildClassifier(Instances data) throws Exception
Boosting method.

Overrides:
  `buildClassifier` in class `IteratedSingleClassifierEnhancer`
Parameters:
  `data` - the training data to be used for generating the boosted classifier.
Throws:
  `Exception` - if the classifier could not be built successfully

### distributionForInstance

public double[] distributionForInstance(Instance instance) throws Exception
Calculates the class membership probabilities for the given test instance.

Overrides:
  `distributionForInstance` in class `Classifier`
Parameters:
  `instance` - the instance to be classified
Returns:
  predicted class probability distribution
Throws:
  `Exception` - if instance could not be classified successfully

### toSource

public String toSource(String className) throws Exception
Returns the boosted model as Java source code.

Specified by:
  `toSource` in interface `Sourcable`
Parameters:
  `className` - the classname of the generated class
Returns:
  the tree as Java source code
Throws:
  `Exception` - if something goes wrong

### toString

public String toString()
Returns description of the boosted classifier.

Overrides:
  `toString` in class `Object`
Returns:
  description of the boosted classifier as a string

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Overrides:
  `getRevision` in class `Classifier`
Returns:
  the revision

### main

public static void main(String[] argv)
Main method for testing this class.

Parameters:
  `argv` - the options