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

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: 15519 $
Author:
Niels Landwehr, Marc Sumner
See Also:
  • 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:
    • 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