Class MultiBoostAB

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Sourcable, CapabilitiesHandler, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

    public class MultiBoostAB
    extends AdaBoostM1
    implements TechnicalInformationHandler
    Class for boosting a classifier using the MultiBoosting method.

    MultiBoosting is an extension to the highly successful AdaBoost technique for forming decision committees. MultiBoosting can be viewed as combining AdaBoost with wagging. It is able to harness both AdaBoost's high bias and variance reduction with wagging's superior variance reduction. Using C4.5 as the base learning algorithm, Multi-boosting is demonstrated to produce decision committees with lower error than either AdaBoost or wagging significantly more often than the reverse over a large representative cross-section of UCI data sets. It offers the further advantage over AdaBoost of suiting parallel execution.

    For more information, see

    Geoffrey I. Webb (2000). MultiBoosting: A Technique for Combining Boosting and Wagging. Machine Learning. Vol.40(No.2).

    BibTeX:

     @article{Webb2000,
        address = {Boston},
        author = {Geoffrey I. Webb},
        journal = {Machine Learning},
        number = {No.2},
        publisher = {Kluwer Academic Publishers},
        title = {MultiBoosting: A Technique for Combining Boosting and Wagging},
        volume = {Vol.40},
        year = {2000}
     }
     

    Valid options are:

     -C <num>
      Number of sub-committees. (Default 3)
     -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.16 $
    Author:
    Shane Butler (sbutle@deakin.edu.au), Eibe Frank (eibe@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • MultiBoostAB

        public MultiBoostAB()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing classifier
        Overrides:
        globalInfo in class AdaBoostM1
        Returns:
        a description suitable for displaying in the explorer/experimenter gui
      • listOptions

        public java.util.Enumeration listOptions()
        Returns an enumeration describing the available options
        Specified by:
        listOptions in interface OptionHandler
        Overrides:
        listOptions in class AdaBoostM1
        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 <num>
          Number of sub-committees. (Default 3)
         -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 AdaBoostM1
        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 Classifier.
        Specified by:
        getOptions in interface OptionHandler
        Overrides:
        getOptions in class AdaBoostM1
        Returns:
        an array of strings suitable for passing to setOptions
      • numSubCmtysTipText

        public java.lang.String numSubCmtysTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setNumSubCmtys

        public void setNumSubCmtys​(int subc)
        Set the number of sub committees to use
        Parameters:
        subc - the number of sub committees
      • getNumSubCmtys

        public int getNumSubCmtys()
        Get the number of sub committees to use
        Returns:
        the seed for resampling
      • buildClassifier

        public void buildClassifier​(Instances training)
                             throws java.lang.Exception
        Method for building this classifier.
        Overrides:
        buildClassifier in class AdaBoostM1
        Parameters:
        training - the data to train with
        Throws:
        java.lang.Exception - if the training fails
      • toString

        public java.lang.String toString()
        Returns description of the boosted classifier.
        Overrides:
        toString in class AdaBoostM1
        Returns:
        description of the boosted classifier as a string
      • main

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