Package weka.classifiers.functions

# Class SimpleLogistic

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.functions.SimpleLogistic

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Classifier`, `AdditionalMeasureProducer`, `BatchPredictor`, `CapabilitiesHandler`, `CapabilitiesIgnorer`, `CommandlineRunnable`, `OptionHandler`, `RevisionHandler`, `TechnicalInformationHandler`, `WeightedInstancesHandler`

public class SimpleLogistic extends AbstractClassifier implements OptionHandler, AdditionalMeasureProducer, WeightedInstancesHandler, TechnicalInformationHandler
Classifier for building linear logistic regression models. LogitBoost with simple regression functions as base learners is used for fitting the logistic models. The optimal number of LogitBoost iterations to perform is cross-validated, which leads to automatic attribute selection. For more information see:
Niels Landwehr, Mark Hall, Eibe Frank (2005). Logistic Model Trees.
Marc Sumner, Eibe Frank, Mark Hall: Speeding up Logistic Model Tree Induction. In: 9th European Conference on Principles and Practice of Knowledge Discovery in Databases, 675-683, 2005.

BibTeX:

     @article{Landwehr2005,
        author = {Niels Landwehr and Mark Hall and Eibe Frank},
        booktitle = {Machine Learning},
        number = {1-2},
        pages = {161-205},
        title = {Logistic Model Trees},
        volume = {95},
        year = {2005}
     }

     @inproceedings{Sumner2005,
        author = {Marc Sumner and Eibe Frank and Mark Hall},
        booktitle = {9th European Conference on Principles and Practice of Knowledge Discovery in Databases},
        pages = {675-683},
        publisher = {Springer},
        title = {Speeding up Logistic Model Tree Induction},
        year = {2005}
     }

Valid options are:

     -I <iterations>
      Set fixed number of iterations for LogitBoost

     -S
      Use stopping criterion on training set (instead of
      cross-validation)

     -P
      Use error on probabilities (rmse) instead of
      misclassification error for stopping criterion

     -M <iterations>
      Set maximum number of boosting iterations

     -H <iterations>
      Set parameter for heuristic for early stopping of
      LogitBoost.
      If enabled, the minimum is selected greedily, stopping
      if the current minimum has not changed for iter iterations.
      By default, heuristic is enabled with value 50. Set to
      zero to disable heuristic.

     -W <beta>
      Set beta for weight trimming for LogitBoost. Set to 0 for no weight trimming.

     -A
      The AIC is used to choose the best iteration (instead of CV or training error).

Version:
  $Revision: 15520 $
Author:
  Niels Landwehr, Marc Sumner
See Also:
  - Serialized Form

- ## Field Summary

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

  `BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleLogistic()`
  Constructor for creating SimpleLogistic object with standard options.
  `SimpleLogistic(int numBoostingIterations, boolean useCrossValidation, boolean errorOnProbabilities)`
  Constructor for creating SimpleLogistic object.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `buildClassifier(Instances data)`
  Builds the logistic regression using LogitBoost.
  `double[]`
  `distributionForInstance(Instance inst)`
  Returns class probabilities for an instance.
  `Enumeration<String>`
  `enumerateMeasures()`
  Returns an enumeration of the additional measure names
  `String`
  `errorOnProbabilitiesTipText()`
  Returns the tip text for this property
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the classifier.
  `boolean`
  `getErrorOnProbabilities()`
  Get the value of errorOnProbabilities.
  `int`
  `getHeuristicStop()`
  Get the value of heuristicStop.
  `int`
  `getMaxBoostingIterations()`
  Get the value of maxBoostingIterations.
  `double`
  `getMeasure(String additionalMeasureName)`
  Returns the value of the named measure
  `int`
  `getNumBoostingIterations()`
  Get the value of numBoostingIterations.
  `int`
  `getNumRegressions()`
  Get the number of LogitBoost iterations performed (= the number of regression functions fit by LogitBoost).
  `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`
  `getUseAIC()`
  Get the value of useAIC.
  `boolean`
  `getUseCrossValidation()`
  Get the value of useCrossValidation.
  `double`
  `getWeightTrimBeta()`
  Get the value of weightTrimBeta.
  `String`
  `globalInfo()`
  Returns a string describing classifier
  `String`
  `heuristicStopTipText()`
  Returns the tip text for this property
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] argv)`
  Main method for testing this class
  `String`
  `maxBoostingIterationsTipText()`
  Returns the tip text for this property
  `double`
  `measureAttributesUsed()`
  Returns the fraction of all attributes in the data that are used in the logistic model (in percent).
  `String`
  `numBoostingIterationsTipText()`
  Returns the tip text for this property
  `String`
  `numDecimalPlacesTipText()`
  Returns the tip text for this property
  `void`
  `setErrorOnProbabilities(boolean l)`
  Set the value of errorOnProbabilities.
  `void`
  `setHeuristicStop(int n)`
  Set the value of heuristicStop.
  `void`
  `setMaxBoostingIterations(int n)`
  Set the value of maxBoostingIterations.
  `void`
  `setNumBoostingIterations(int n)`
  Set the value of numBoostingIterations.
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setUseAIC(boolean c)`
  Set the value of useAIC.
  `void`
  `setUseCrossValidation(boolean l)`
  Set the value of useCrossValidation.
  `void`
  `setWeightTrimBeta(double n)`
  Set the value of weightTrimBeta.
  `String`
  `toString()`
  Returns a description of the logistic model (attributes/coefficients).
  `String`
  `useAICTipText()`
  Returns the tip text for this property
  `String`
  `useCrossValidationTipText()`
  Returns the tip text for this property
  `String`
  `weightTrimBetaTipText()`
  Returns the tip text for this property

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

  `batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces`

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

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

- ## Constructor Details

  - ### SimpleLogistic

    public SimpleLogistic()
    Constructor for creating SimpleLogistic object with standard options.

  - ### SimpleLogistic

    public SimpleLogistic(int numBoostingIterations, boolean useCrossValidation, boolean errorOnProbabilities)
    Constructor for creating SimpleLogistic object.
    Parameters:
      `numBoostingIterations` - if non-negative, use this as fixed number of iterations for LogitBoost
      `useCrossValidation` - cross-validate number of LogitBoost iterations.
      `errorOnProbabilities` - minimize error on probabilities instead of misclassification error

- ## Method Details

  - ### main

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

  - ### 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 `AbstractClassifier`
    Returns:
      the capabilities of this classifier
    See Also:
      - `Capabilities`

  - ### buildClassifier

    public void buildClassifier(Instances data) throws Exception
    Builds the logistic regression using LogitBoost.
    Specified by:
      `buildClassifier` in interface `Classifier`
    Parameters:
      `data` - the training data
    Throws:
      `Exception` - if something goes wrong

  - ### distributionForInstance

    public double[] distributionForInstance(Instance inst) throws Exception
    Returns class probabilities for an instance.
    Specified by:
      `distributionForInstance` in interface `Classifier`
    Overrides:
      `distributionForInstance` in class `AbstractClassifier`
    Parameters:
      `inst` - the instance to compute the probabilities for
    Returns:
      the probabilities
    Throws:
      `Exception` - if distribution can't be computed successfully

  - ### listOptions

    public Enumeration<Option> listOptions()
    Returns an enumeration describing the available options.
    Specified by:
      `listOptions` in interface `OptionHandler`
    Overrides:
      `listOptions` in class `AbstractClassifier`
    Returns:
      an enumeration of all the available options.

  - ### getOptions

    public String[] getOptions()
    Gets the current settings of the Classifier.
    Specified by:
      `getOptions` in interface `OptionHandler`
    Overrides:
      `getOptions` in class `AbstractClassifier`
    Returns:
      an array of strings suitable for passing to setOptions

  - ### setOptions

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

    Valid options are:

         -I <iterations>
          Set fixed number of iterations for LogitBoost

         -S
          Use stopping criterion on training set (instead of
          cross-validation)

         -P
          Use error on probabilities (rmse) instead of
          misclassification error for stopping criterion

         -M <iterations>
          Set maximum number of boosting iterations

         -H <iterations>
          Set parameter for heuristic for early stopping of
          LogitBoost.
          If enabled, the minimum is selected greedily, stopping
          if the current minimum has not changed for iter iterations.
          By default, heuristic is enabled with value 50. Set to
          zero to disable heuristic.

         -W <beta>
          Set beta for weight trimming for LogitBoost. Set to 0 for no weight trimming.

         -A
          The AIC is used to choose the best iteration (instead of CV or training error).

    Specified by:
      `setOptions` in interface `OptionHandler`
    Overrides:
      `setOptions` in class `AbstractClassifier`
    Parameters:
      `options` - the list of options as an array of strings
    Throws:
      `Exception` - if an option is not supported

  - ### getNumBoostingIterations

    public int getNumBoostingIterations()
    Get the value of numBoostingIterations.
    Returns:
      the number of boosting iterations

  - ### setNumBoostingIterations

    public void setNumBoostingIterations(int n)
    Set the value of numBoostingIterations.
    Parameters:
      `n` - the number of boosting iterations

  - ### getUseCrossValidation

    public boolean getUseCrossValidation()
    Get the value of useCrossValidation.
    Returns:
      true if cross-validation is used

  - ### setUseCrossValidation

    public void setUseCrossValidation(boolean l)
    Set the value of useCrossValidation.
    Parameters:
      `l` - whether to use cross-validation

  - ### getErrorOnProbabilities

    public boolean getErrorOnProbabilities()
    Get the value of errorOnProbabilities.
    Returns:
      If true, use minimize error on probabilities instead of misclassification error

  - ### setErrorOnProbabilities

    public void setErrorOnProbabilities(boolean l)
    Set the value of errorOnProbabilities.
    Parameters:
      `l` - If true, use minimize error on probabilities instead of misclassification error

  - ### getMaxBoostingIterations

    public int getMaxBoostingIterations()
    Get the value of maxBoostingIterations.
    Returns:
      the maximum number of boosting iterations

  - ### setMaxBoostingIterations

    public void setMaxBoostingIterations(int n)
    Set the value of maxBoostingIterations.
    Parameters:
      `n` - the maximum number of boosting iterations

  - ### getHeuristicStop

    public int getHeuristicStop()
    Get the value of heuristicStop.
    Returns:
      the value of heuristicStop

  - ### setHeuristicStop

    public void setHeuristicStop(int n)
    Set the value of heuristicStop.
    Parameters:
      `n` - the value of heuristicStop

  - ### getWeightTrimBeta

    public double getWeightTrimBeta()
    Get the value of weightTrimBeta.

  - ### setWeightTrimBeta

    public void setWeightTrimBeta(double n)
    Set the value of weightTrimBeta.

  - ### getUseAIC

    public boolean getUseAIC()
    Get the value of useAIC.
    Returns:
      Value of useAIC.

  - ### setUseAIC

    public void setUseAIC(boolean c)
    Set the value of useAIC.
    Parameters:
      `c` - Value to assign to useAIC.

  - ### getNumRegressions

    public int getNumRegressions()
    Get the number of LogitBoost iterations performed (= the number of regression functions fit by LogitBoost).
    Returns:
      the number of LogitBoost iterations performed

  - ### toString

    public String toString()
    Returns a description of the logistic model (attributes/coefficients).
    Overrides:
      `toString` in class `Object`
    Returns:
      the model as string

  - ### measureAttributesUsed

    public double measureAttributesUsed()
    Returns the fraction of all attributes in the data that are used in the logistic model (in percent). An attribute is used in the model if it is used in any of the models for the different classes.
    Returns:
      percentage of attributes used in the model

  - ### enumerateMeasures

    public Enumeration<String> enumerateMeasures()
    Returns an enumeration of the additional measure names
    Specified by:
      `enumerateMeasures` in interface `AdditionalMeasureProducer`
    Returns:
      an enumeration of the measure names

  - ### getMeasure

    public double getMeasure(String additionalMeasureName)
    Returns the value of the named measure
    Specified by:
      `getMeasure` in interface `AdditionalMeasureProducer`
    Parameters:
      `additionalMeasureName` - the name of the measure to query for its value
    Returns:
      the value of the named measure
    Throws:
      `IllegalArgumentException` - if the named measure is not supported

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

  - ### numBoostingIterationsTipText

    public String numBoostingIterationsTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### useCrossValidationTipText

    public String useCrossValidationTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### errorOnProbabilitiesTipText

    public String errorOnProbabilitiesTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### maxBoostingIterationsTipText

    public String maxBoostingIterationsTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### heuristicStopTipText

    public String heuristicStopTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### weightTrimBetaTipText

    public String weightTrimBetaTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### useAICTipText

    public String useAICTipText()
    Returns the tip text for this property
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### numDecimalPlacesTipText

    public String numDecimalPlacesTipText()
    Returns the tip text for this property
    Overrides:
      `numDecimalPlacesTipText` in class `AbstractClassifier`
    Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Overrides:
      `getRevision` in class `AbstractClassifier`
    Returns:
      the revision