Class RacedIncrementalLogitBoost

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

    public class RacedIncrementalLogitBoost
    extends RandomizableSingleClassifierEnhancer
    implements UpdateableClassifier, TechnicalInformationHandler
    Classifier for incremental learning of large datasets by way of racing logit-boosted committees.

    For more information see:

    Eibe Frank, Geoffrey Holmes, Richard Kirkby, Mark Hall: Racing committees for large datasets. In: Proceedings of the 5th International Conferenceon Discovery Science, 153-164, 2002.

    BibTeX:

     @inproceedings{Frank2002,
        author = {Eibe Frank and Geoffrey Holmes and Richard Kirkby and Mark Hall},
        booktitle = {Proceedings of the 5th International Conferenceon Discovery Science},
        pages = {153-164},
        publisher = {Springer},
        title = { Racing committees for large datasets},
        year = {2002}
     }
     

    Valid options are:

     -C <num>
      Minimum size of chunks.
      (default 500)
     -M <num>
      Maximum size of chunks.
      (default 2000)
     -V <num>
      Size of validation set.
      (default 1000)
     -P <pruning type>
      Committee pruning to perform.
      0=none, 1=log likelihood (default)
     -Q
      Use resampling for boosting.
     -S <num>
      Random number seed.
      (default 1)
     -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 learner.

    Version:
    $Revision: 6477 $
    Author:
    Richard Kirkby (rkirkby@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Field Detail

      • PRUNETYPE_LOGLIKELIHOOD

        public static final int PRUNETYPE_LOGLIKELIHOOD
        log likelihood pruning
        See Also:
        Constant Field Values
      • TAGS_PRUNETYPE

        public static final Tag[] TAGS_PRUNETYPE
        The pruning types
    • Constructor Detail

      • RacedIncrementalLogitBoost

        public RacedIncrementalLogitBoost()
        Constructor.
    • Method Detail

      • buildClassifier

        public void buildClassifier​(Instances data)
                             throws java.lang.Exception
        Builds the classifier.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        data - the instances to train the classifier with
        Throws:
        java.lang.Exception - if something goes wrong
      • updateClassifier

        public void updateClassifier​(Instance instance)
                              throws java.lang.Exception
        Updates the classifier.
        Specified by:
        updateClassifier in interface UpdateableClassifier
        Parameters:
        instance - the next instance in the stream of training data
        Throws:
        java.lang.Exception - if something goes wrong
      • distributionForInstance

        public double[] distributionForInstance​(Instance instance)
                                         throws java.lang.Exception
        Computes class distribution of an instance using the best committee.
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        instance - the instance to get the distribution for
        Returns:
        the distribution
        Throws:
        java.lang.Exception - if anything goes wrong
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options.

        Valid options are:

         -C <num>
          Minimum size of chunks.
          (default 500)
         -M <num>
          Maximum size of chunks.
          (default 2000)
         -V <num>
          Size of validation set.
          (default 1000)
         -P <pruning type>
          Committee pruning to perform.
          0=none, 1=log likelihood (default)
         -Q
          Use resampling for boosting.
         -S <num>
          Random number seed.
          (default 1)
         -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
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class RandomizableSingleClassifierEnhancer
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • globalInfo

        public java.lang.String globalInfo()
        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
      • setClassifier

        public void setClassifier​(Classifier newClassifier)
        Set the base learner.
        Overrides:
        setClassifier in class SingleClassifierEnhancer
        Parameters:
        newClassifier - the classifier to use.
        Throws:
        java.lang.IllegalArgumentException - if base classifier cannot handle numeric class
      • minChunkSizeTipText

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

        public void setMinChunkSize​(int chunkSize)
        Set the minimum chunk size
        Parameters:
        chunkSize - the minimum chunk size
      • getMinChunkSize

        public int getMinChunkSize()
        Get the minimum chunk size
        Returns:
        the chunk size
      • maxChunkSizeTipText

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

        public void setMaxChunkSize​(int chunkSize)
        Set the maximum chunk size
        Parameters:
        chunkSize - the maximum chunk size
      • getMaxChunkSize

        public int getMaxChunkSize()
        Get the maximum chunk size
        Returns:
        the chunk size
      • validationChunkSizeTipText

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

        public void setValidationChunkSize​(int chunkSize)
        Set the validation chunk size
        Parameters:
        chunkSize - the validation chunk size
      • getValidationChunkSize

        public int getValidationChunkSize()
        Get the validation chunk size
        Returns:
        the chunk size
      • pruningTypeTipText

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

        public void setPruningType​(SelectedTag pruneType)
        Set the pruning type
        Parameters:
        pruneType - the pruning type
      • getPruningType

        public SelectedTag getPruningType()
        Get the pruning type
        Returns:
        the type
      • useResamplingTipText

        public java.lang.String useResamplingTipText()
        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
      • getBestCommitteeChunkSize

        public int getBestCommitteeChunkSize()
        Get the best committee chunk size
        Returns:
        the best committee chunk size
      • getBestCommitteeSize

        public int getBestCommitteeSize()
        Get the number of members in the best committee
        Returns:
        the number of members
      • getBestCommitteeErrorEstimate

        public double getBestCommitteeErrorEstimate()
        Get the best committee's error on the validation data
        Returns:
        the best committee's error
      • getBestCommitteeLLEstimate

        public double getBestCommitteeLLEstimate()
        Get the best committee's log likelihood on the validation data
        Returns:
        best committee's log likelihood
      • toString

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

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