Class LMT

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

Classifier for building 'logistic model trees', which are classification trees with logistic regression functions at the leaves. The algorithm can deal with binary and multi-class target variables, numeric and nominal attributes and missing values.

For more information see:

Niels Landwehr, Mark Hall, Eibe Frank (2005). Logistic Model Trees. Machine Learning. 95(1-2):161-205.

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},
    journal = {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:

 -B
  Binary splits (convert nominal attributes to binary ones)
 
 -R
  Split on residuals instead of class values
 
 -C
  Use cross-validation for boosting at all nodes (i.e., disable heuristic)
 
 -P
  Use error on probabilities instead of misclassification error for stopping criterion of LogitBoost.
 
 -I <numIterations>
  Set fixed number of iterations for LogitBoost (instead of using cross-validation)
 
 -M <numInstances>
  Set minimum number of instances at which a node can be split (default 15)
 
 -W <beta>
  Set beta for weight trimming for LogitBoost. Set to 0 (default) for no weight trimming.
 
 -A
  The AIC is used to choose the best iteration.
 
 -doNotMakeSplitPointActualValue
  Do not make split point actual value.
 
Version:
$Revision: 15519 $
Author:
Niels Landwehr, Marc Sumner
See Also:
  • Constructor Details

    • LMT

      public LMT()
      Creates an instance of LMT with standard options
  • Method Details

    • 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 classifier.
      Specified by:
      buildClassifier in interface Classifier
      Parameters:
      data - the data to train with
      Throws:
      Exception - if classifier can't be built successfully
    • distributionForInstance

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

      public double classifyInstance(Instance instance) throws Exception
      Classifies an instance.
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      instance - the instance to classify
      Returns:
      the classification
      Throws:
      Exception - if instance can't be classified successfully
    • toString

      public String toString()
      Returns a description of the classifier.
      Overrides:
      toString in class Object
      Returns:
      a string representation of the classifier
    • 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.
    • setOptions

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

      Valid options are:

       -B
        Binary splits (convert nominal attributes to binary ones)
       
       -R
        Split on residuals instead of class values
       
       -C
        Use cross-validation for boosting at all nodes (i.e., disable heuristic)
       
       -P
        Use error on probabilities instead of misclassification error for stopping criterion of LogitBoost.
       
       -I <numIterations>
        Set fixed number of iterations for LogitBoost (instead of using cross-validation)
       
       -M <numInstances>
        Set minimum number of instances at which a node can be split (default 15)
       
       -W <beta>
        Set beta for weight trimming for LogitBoost. Set to 0 (default) for no weight trimming.
       
       -A
        The AIC is used to choose the best iteration.
       
       -doNotMakeSplitPointActualValue
        Do not make split point actual value.
       
      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
    • 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
    • getWeightTrimBeta

      public double getWeightTrimBeta()
      Get the value of weightTrimBeta.
    • getUseAIC

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

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

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

      public boolean getConvertNominal()
      Get the value of convertNominal.
      Returns:
      Value of convertNominal.
    • getSplitOnResiduals

      public boolean getSplitOnResiduals()
      Get the value of splitOnResiduals.
      Returns:
      Value of splitOnResiduals.
    • getFastRegression

      public boolean getFastRegression()
      Get the value of fastRegression.
      Returns:
      Value of fastRegression.
    • getErrorOnProbabilities

      public boolean getErrorOnProbabilities()
      Get the value of errorOnProbabilities.
      Returns:
      Value of errorOnProbabilities.
    • getNumBoostingIterations

      public int getNumBoostingIterations()
      Get the value of numBoostingIterations.
      Returns:
      Value of numBoostingIterations.
    • getMinNumInstances

      public int getMinNumInstances()
      Get the value of minNumInstances.
      Returns:
      Value of minNumInstances.
    • setConvertNominal

      public void setConvertNominal(boolean c)
      Set the value of convertNominal.
      Parameters:
      c - Value to assign to convertNominal.
    • setSplitOnResiduals

      public void setSplitOnResiduals(boolean c)
      Set the value of splitOnResiduals.
      Parameters:
      c - Value to assign to splitOnResiduals.
    • setFastRegression

      public void setFastRegression(boolean c)
      Set the value of fastRegression.
      Parameters:
      c - Value to assign to fastRegression.
    • setErrorOnProbabilities

      public void setErrorOnProbabilities(boolean c)
      Set the value of errorOnProbabilities.
      Parameters:
      c - Value to assign to errorOnProbabilities.
    • setNumBoostingIterations

      public void setNumBoostingIterations(int c)
      Set the value of numBoostingIterations.
      Parameters:
      c - Value to assign to numBoostingIterations.
    • setMinNumInstances

      public void setMinNumInstances(int c)
      Set the value of minNumInstances.
      Parameters:
      c - Value to assign to minNumInstances.
    • graphType

      public int graphType()
      Returns the type of graph this classifier represents.
      Specified by:
      graphType in interface Drawable
      Returns:
      Drawable.TREE
    • graph

      public String graph() throws Exception
      Returns graph describing the tree.
      Specified by:
      graph in interface Drawable
      Returns:
      the graph describing the tree
      Throws:
      Exception - if graph can't be computed
    • measureTreeSize

      public int measureTreeSize()
      Returns the size of the tree
      Returns:
      the size of the tree
    • measureNumLeaves

      public int measureNumLeaves()
      Returns the number of leaves in the tree
      Returns:
      the number of leaves in the tree
    • 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
    • convertNominalTipText

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

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

      public String fastRegressionTipText()
      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
    • 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
    • minNumInstancesTipText

      public String minNumInstancesTipText()
      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
    • doNotMakeSplitPointActualValueTipText

      public String doNotMakeSplitPointActualValueTipText()
      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
    • getDoNotMakeSplitPointActualValue

      public boolean getDoNotMakeSplitPointActualValue()
      Gets the value of doNotMakeSplitPointActualValue.
      Returns:
      the value
    • setDoNotMakeSplitPointActualValue

      public void setDoNotMakeSplitPointActualValue(boolean m_doNotMakeSplitPointActualValue)
      Sets the value of doNotMakeSplitPointActualValue.
      Parameters:
      m_doNotMakeSplitPointActualValue - the value to set
    • getRevision

      public 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(String[] argv)
      Main method for testing this class
      Parameters:
      argv - the commandline options