Class AdaBoostM1

All Implemented Interfaces:
Serializable, Cloneable, Classifier, IterativeClassifier, Sourcable, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

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: 15519 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
  • 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<Option> 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
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class SingleClassifierEnhancer
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Method used to build the classifier.
      Specified by:
      buildClassifier in interface Classifier
      Overrides:
      buildClassifier in class IteratedSingleClassifierEnhancer
      Parameters:
      data - the training data to be used for generating the bagged classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • initializeClassifier

      public void initializeClassifier(Instances data) throws Exception
      Initialize the classifier.
      Specified by:
      initializeClassifier in interface IterativeClassifier
      Parameters:
      data - the training data to be used for generating the boosted classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • next

      public boolean next() throws Exception
      Perform the next boosting iteration.
      Specified by:
      next in interface IterativeClassifier
      Returns:
      false if no further iterations could be performed, true otherwise
      Throws:
      Exception - if an unforeseen problem occurs
    • done

      public void done()
      Clean up after boosting.
      Specified by:
      done in interface IterativeClassifier
    • resumeTipText

      public String resumeTipText()
      Tool tip text for the resume property
      Returns:
      the tool tip text for the finalize property
    • setResume

      public void setResume(boolean resume)
      If called with argument true, then the next time done() is called the model is effectively "frozen" and no further iterations can be performed
      Specified by:
      setResume in interface IterativeClassifier
      Parameters:
      resume - true if the model is to be finalized after performing iterations
    • getResume

      public boolean getResume()
      Returns true if the model is to be finalized (or has been finalized) after training.
      Specified by:
      getResume in interface IterativeClassifier
      Returns:
      the current value of finalize
    • distributionForInstance

      public double[] distributionForInstance(Instance instance) throws Exception
      Calculates the class membership probabilities for the given test instance.
      Specified by:
      distributionForInstance in interface Classifier
      Overrides:
      distributionForInstance in class AbstractClassifier
      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 AbstractClassifier
      Returns:
      the revision
    • main

      public static void main(String[] argv)
      Main method for testing this class.
      Parameters:
      argv - the options