weka.classifiers.meta

## Class LogitBoost

- java.lang.Object
- - weka.classifiers.AbstractClassifier
  - - weka.classifiers.SingleClassifierEnhancer
    - - weka.classifiers.IteratedSingleClassifierEnhancer
      - - weka.classifiers.RandomizableIteratedSingleClassifierEnhancer
        - - weka.classifiers.meta.LogitBoost

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Classifier, IterativeClassifier, Sourcable, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

      public class LogitBoost
      extends RandomizableIteratedSingleClassifierEnhancer
      implements Sourcable, WeightedInstancesHandler, TechnicalInformationHandler, IterativeClassifier, BatchPredictor

  Class for performing additive logistic regression.
  This class performs classification using a regression scheme as the base learner, and can handle multi-class problems. For more information, see
  J. Friedman, T. Hastie, R. Tibshirani (1998). Additive Logistic Regression: a Statistical View of Boosting. Stanford University.
  Can do efficient internal cross-validation to determine appropriate number of iterations.

  BibTeX:

       @techreport{Friedman1998,
          address = {Stanford University},
          author = {J. Friedman and T. Hastie and R. Tibshirani},
          title = {Additive Logistic Regression: a Statistical View of Boosting},
          year = {1998},
          PS = {http://www-stat.stanford.edu/\~jhf/ftp/boost.ps}
       }

  Valid options are:

       -Q
        Use resampling instead of reweighting for boosting.

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

       -L <num>
        Threshold on the improvement of the likelihood.
        (default -Double.MAX_VALUE)

       -H <num>
        Shrinkage parameter.
        (default 1)

       -Z <num>
        Z max threshold for responses.
        (default 3)

       -O <int>
        The size of the thread pool, for example, the number of cores in the CPU. (default 1)

       -E <int>
        The number of threads to use for batch prediction, which should be >= size of thread pool.
        (default 1)

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

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

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

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

       -do-not-check-capabilities
        If set, classifier capabilities are not checked before classifier is built
        (use with caution).

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

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

       -do-not-check-capabilities
        If set, classifier capabilities are not checked before classifier is built
        (use with caution).

  Options after -- are passed to the designated learner.

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

- - ### Field Summary

    - ### Fields inherited from class weka.classifiers.AbstractClassifier

      `NUM_DECIMAL_PLACES_DEFAULT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LogitBoost()` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `batchSizeTipText()` Tool tip text
    `void` | `buildClassifier(Instances data)` Method used to build the classifier.
    `Classifier[][]` | `classifiers()` Returns the array of classifiers that have been built.
    `double[]` | `distributionForInstance(Instance inst)` Calculates the class membership probabilities for the given test instance.
    `double[][]` | `distributionsForInstances(Instances insts)` Calculates the class membership probabilities for the given test instances.
    `void` | `done()` Clean up after boosting.
    `java.lang.String` | `getBatchSize()` Dummy method to satisfy BatchPredictor interface.
    `Capabilities` | `getCapabilities()` Returns default capabilities of the classifier.
    `double` | `getLikelihoodThreshold()` Get the value of Precision.
    `int` | `getNumThreads()` Gets the number of threads.
    `java.lang.String[]` | `getOptions()` Gets the current settings of the Classifier.
    `int` | `getPoolSize()` Gets the number of threads.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `double` | `getShrinkage()` Get the value of Shrinkage.
    `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
    `double` | `getZMax()` Get the Z max threshold on the responses
    `java.lang.String` | `globalInfo()` Returns a string describing classifier
    `boolean` | `implementsMoreEfficientBatchPrediction()` Performs efficient batch predcition
    `void` | `initializeClassifier(Instances data)` Builds the boosted classifier
    `java.lang.String` | `likelihoodThresholdTipText()` Returns the tip text for this property
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `static void` | `main(java.lang.String[] argv)` Main method for testing this class.
    `boolean` | `next()` Perform another iteration of boosting.
    `java.lang.String` | `numThreadsTipText()`
    `java.lang.String` | `poolSizeTipText()`
    `void` | `setBatchSize(java.lang.String i)` Dummy method to satisfy BatchPredictor interface.
    `void` | `setLikelihoodThreshold(double newPrecision)` Set the value of Precision.
    `void` | `setNumThreads(int nT)` Sets the number of threads
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
    `void` | `setPoolSize(int nT)` Sets the number of threads
    `void` | `setShrinkage(double newShrinkage)` Set the value of Shrinkage.
    `void` | `setUseResampling(boolean r)` Set resampling mode
    `void` | `setWeightThreshold(int threshold)` Set weight thresholding
    `void` | `setZMax(double zMax)` Set the Z max threshold on the responses
    `java.lang.String` | `shrinkageTipText()` Returns the tip text for this property
    `java.lang.String` | `toSource(java.lang.String className)` Returns the boosted model as Java source code.
    `java.lang.String` | `toString()` Returns description of the boosted classifier.
    `java.lang.String` | `useResamplingTipText()` Returns the tip text for this property
    `java.lang.String` | `weightThresholdTipText()` Returns the tip text for this property
    `java.lang.String` | `ZMaxTipText()` 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.AbstractClassifier

      `classifyInstance, debugTipText, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, makeCopies, makeCopy, numDecimalPlacesTipText, runClassifier, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces`

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

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

    - ### Methods inherited from interface weka.classifiers.Classifier

      `classifyInstance`

- - ### Constructor Detail

    - #### LogitBoost

          public LogitBoost()

      Constructor.

  - ### Method Detail

    - #### globalInfo

          public java.lang.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 java.util.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(java.lang.String[] options)
                          throws java.lang.Exception

      Parses a given list of options.

      Valid options are:

           -Q
            Use resampling instead of reweighting for boosting.

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

           -L <num>
            Threshold on the improvement of the likelihood.
            (default -Double.MAX_VALUE)

           -H <num>
            Shrinkage parameter.
            (default 1)

           -Z <num>
            Z max threshold for responses.
            (default 3)

           -O <int>
            The size of the thread pool, for example, the number of cores in the CPU. (default 1)

           -E <int>
            The number of threads to use for batch prediction, which should be >= size of thread pool.
            (default 1)

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

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

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

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

           -do-not-check-capabilities
            If set, classifier capabilities are not checked before classifier is built
            (use with caution).

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

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

           -do-not-check-capabilities
            If set, classifier capabilities are not checked before classifier is built
            (use with caution).

      Options after -- are passed to the designated learner.

      Specified by:
        `setOptions` in interface `OptionHandler`
      Overrides:
        `setOptions` in class `RandomizableIteratedSingleClassifierEnhancer`
      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 `RandomizableIteratedSingleClassifierEnhancer`
      Returns:
        an array of strings suitable for passing to setOptions

    - #### ZMaxTipText

          public java.lang.String ZMaxTipText()

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

    - #### setZMax

          public void setZMax(double zMax)

      Set the Z max threshold on the responses
      Parameters:
        `zMax` - the threshold to use

    - #### getZMax

          public double getZMax()

      Get the Z max threshold on the responses
      Returns:
        the threshold to use

    - #### shrinkageTipText

          public java.lang.String shrinkageTipText()

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

    - #### getShrinkage

          public double getShrinkage()

      Get the value of Shrinkage.
      Returns:
        Value of Shrinkage.

    - #### setShrinkage

          public void setShrinkage(double newShrinkage)

      Set the value of Shrinkage.
      Parameters:
        `newShrinkage` - Value to assign to Shrinkage.

    - #### likelihoodThresholdTipText

          public java.lang.String likelihoodThresholdTipText()

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

    - #### getLikelihoodThreshold

          public double getLikelihoodThreshold()

      Get the value of Precision.
      Returns:
        Value of Precision.

    - #### setLikelihoodThreshold

          public void setLikelihoodThreshold(double newPrecision)

      Set the value of Precision.
      Parameters:
        `newPrecision` - Value to assign to Precision.

    - #### useResamplingTipText

          public java.lang.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

    - #### weightThresholdTipText

          public java.lang.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 thresholding
      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

    - #### numThreadsTipText

          public java.lang.String numThreadsTipText()

      Returns:
        a string to describe the option

    - #### getNumThreads

          public int getNumThreads()

      Gets the number of threads.

    - #### setNumThreads

          public void setNumThreads(int nT)

      Sets the number of threads

    - #### poolSizeTipText

          public java.lang.String poolSizeTipText()

      Returns:
        a string to describe the option

    - #### getPoolSize

          public int getPoolSize()

      Gets the number of threads.

    - #### setPoolSize

          public void setPoolSize(int nT)

      Sets the number of threads

    - #### getCapabilities

          public Capabilities getCapabilities()

      Returns default capabilities of the classifier.
      Specified by:
        `getCapabilities` in interface `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 java.lang.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:
        `java.lang.Exception` - if the classifier could not be built successfully

    - #### initializeClassifier

          public void initializeClassifier(Instances data)
                                    throws java.lang.Exception

      Builds the boosted classifier
      Specified by:
        `initializeClassifier` in interface `IterativeClassifier`
      Parameters:
        `data` - the data to train the classifier with
      Throws:
        `java.lang.Exception` - if building fails, e.g., can't handle data

    - #### next

          public boolean next()
                       throws java.lang.Exception

      Perform another iteration of boosting.
      Specified by:
        `next` in interface `IterativeClassifier`
      Returns:
        false if no further iterations could be performed, true otherwise
      Throws:
        `java.lang.Exception` - if this iteration fails for unexpected reasons

    - #### done

          public void done()

      Clean up after boosting.
      Specified by:
        `done` in interface `IterativeClassifier`

    - #### classifiers

          public Classifier[][] classifiers()

      Returns the array of classifiers that have been built.
      Returns:
        the built classifiers

    - #### batchSizeTipText

          public java.lang.String batchSizeTipText()

      Tool tip text
      Overrides:
        `batchSizeTipText` in class `AbstractClassifier`
      Returns:
        tool tip text for this property

    - #### setBatchSize

          public void setBatchSize(java.lang.String i)

      Dummy method to satisfy BatchPredictor interface.
      Specified by:
        `setBatchSize` in interface `BatchPredictor`
      Overrides:
        `setBatchSize` in class `AbstractClassifier`
      Parameters:
        `i` - the batch size to use

    - #### getBatchSize

          public java.lang.String getBatchSize()

      Dummy method to satisfy BatchPredictor interface.
      Specified by:
        `getBatchSize` in interface `BatchPredictor`
      Overrides:
        `getBatchSize` in class `AbstractClassifier`
      Returns:
        the preferred batch size

    - #### implementsMoreEfficientBatchPrediction

          public boolean implementsMoreEfficientBatchPrediction()

      Performs efficient batch predcition
      Specified by:
        `implementsMoreEfficientBatchPrediction` in interface `BatchPredictor`
      Overrides:
        `implementsMoreEfficientBatchPrediction` in class `AbstractClassifier`
      Returns:
        true, as LogitBoost can perform efficient batch prediction

    - #### distributionForInstance

          public double[] distributionForInstance(Instance inst)
                                           throws java.lang.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:
        `java.lang.Exception` - if instance could not be classified successfully

    - #### distributionsForInstances

          public double[][] distributionsForInstances(Instances insts)
                                               throws java.lang.Exception

      Calculates the class membership probabilities for the given test instances. Uses multi-threading if requested.
      Specified by:
        `distributionsForInstances` in interface `BatchPredictor`
      Overrides:
        `distributionsForInstances` in class `AbstractClassifier`
      Parameters:
        `insts` - the instances to be classified
      Returns:
        predicted class probability distributions
      Throws:
        `java.lang.Exception` - if instances could not be classified successfully

    - #### toSource

          public java.lang.String toSource(java.lang.String className)
                                    throws java.lang.Exception

      Returns the boosted model as Java source code.
      Specified by:
        `toSource` in interface `Sourcable`
      Parameters:
        `className` - the classname in the generated code
      Returns:
        the tree as Java source code
      Throws:
        `java.lang.Exception` - if something goes wrong

    - #### 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

    - #### getRevision

          public java.lang.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(java.lang.String[] argv)

      Main method for testing this class.
      Parameters:
        `argv` - the options