Class FT

All Implemented Interfaces:
Serializable, Cloneable, AdditionalMeasureProducer, CapabilitiesHandler, Drawable, OptionHandler, RevisionHandler, TechnicalInformationHandler

Classifier for building 'Functional trees', which are classification trees that could have logistic regression functions at the inner nodes and/or leaves. The algorithm can deal with binary and multi-class target variables, numeric and nominal attributes and missing values.

For more information see:

Joao Gama (2004). Functional Trees.

Niels Landwehr, Mark Hall, Eibe Frank (2005). Logistic Model Trees.

BibTeX:

 @article{Gama2004,
    author = {Joao Gama},
    booktitle = {Machine Learning},
    number = {3},
    pages = {219-250},
    title = {Functional Trees},
    volume = {55},
    year = {2004}
 }
 
 @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}
 }
 

Valid options are:

 -B
  Binary splits (convert nominal attributes to binary ones) 
 -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)
 -F <modelType>
  Set Funtional Tree type to be generate:  0 for FT, 1 for FTLeaves and 2 for FTInner
 -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.
Version:
$Revision: 5535 $
Author:
Jo\~{a}o Gama, Carlos Ferreira
See Also:
  • Field Details

    • MODEL_FT

      public static final int MODEL_FT
      model types
      See Also:
    • MODEL_FTLeaves

      public static final int MODEL_FTLeaves
      See Also:
    • MODEL_FTInner

      public static final int MODEL_FTInner
      See Also:
    • TAGS_MODEL

      public static final Tag[] TAGS_MODEL
      possible model types.
  • Constructor Details

    • FT

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

    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Overrides:
      getCapabilities in class Classifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Builds the classifier.
      Specified by:
      buildClassifier in class 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.
      Overrides:
      distributionForInstance in class Classifier
      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.
      Overrides:
      classifyInstance in class Classifier
      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 listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class Classifier
      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) 
       -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)
       -F <modelType>
        Set Funtional Tree type to be generate:  0 for FT, 1 for FTLeaves and 2 for FTInner
       -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.
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class Classifier
      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 Classifier
      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.
    • getBinSplit

      public boolean getBinSplit()
      Get the value of binarySplits.
      Returns:
      Value of binarySplits.
    • 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.
    • getModelType

      public SelectedTag getModelType()
      Get the type of functional tree model being used.
      Returns:
      the type of functional tree model.
    • setModelType

      public void setModelType(SelectedTag newMethod)
      Set the Functional Tree type.
      Parameters:
      c - Value corresponding to tree type.
    • getMinNumInstances

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

      public void setBinSplit(boolean c)
      Set the value of binarySplits.
      Parameters:
      c - Value to assign to binarySplits.
    • 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 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
    • modelTypeTipText

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

      public String binSplitTipText()
      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
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class Classifier
      Returns:
      the revision
    • main

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