Class M5Base

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.trees.m5.M5Base
All Implemented Interfaces:
Serializable, Cloneable, Classifier, AdditionalMeasureProducer, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, TechnicalInformationHandler
Direct Known Subclasses:
M5P, M5Rules

public abstract class M5Base extends AbstractClassifier implements AdditionalMeasureProducer, TechnicalInformationHandler
M5Base. Implements base routines for generating M5 Model trees and rules.

The original algorithm M5 was invented by Quinlan:
Quinlan J. R. (1992). Learning with continuous classes. Proceedings of the Australian Joint Conference on Artificial Intelligence. 343--348. World Scientific, Singapore.

Yong Wang made improvements and created M5':
Wang, Y and Witten, I. H. (1997). Induction of model trees for predicting continuous classes. Proceedings of the poster papers of the European Conference on Machine Learning. University of Economics, Faculty of Informatics and Statistics, Prague.

Valid options are:

-U
Use unsmoothed predictions.

-R
Build regression tree/rule rather than model tree/rule

Version:
$Revision: 15519 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • M5Base

      public M5Base()
      Constructor
  • Method Details

    • 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 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:

      -U
      Use unsmoothed predictions.

      -R
      Build a regression tree rather than a model tree.

      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
    • unprunedTipText

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

      public void setUnpruned(boolean unpruned)
      Use unpruned tree/rules
      Parameters:
      unpruned - true if unpruned tree/rules are to be generated
    • getUnpruned

      public boolean getUnpruned()
      Get whether unpruned tree/rules are being generated
      Returns:
      true if unpruned tree/rules are to be generated
    • generateRulesTipText

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

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

      public void setUseUnsmoothed(boolean s)
      Use unsmoothed predictions
      Parameters:
      s - true if unsmoothed predictions are to be used
    • getUseUnsmoothed

      public boolean getUseUnsmoothed()
      Get whether or not smoothing is being used
      Returns:
      true if unsmoothed predictions are to be used
    • buildRegressionTreeTipText

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

      public boolean getBuildRegressionTree()
      Get the value of regressionTree.
      Returns:
      Value of regressionTree.
    • setBuildRegressionTree

      public void setBuildRegressionTree(boolean newregressionTree)
      Set the value of regressionTree.
      Parameters:
      newregressionTree - Value to assign to regressionTree.
    • 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
    • setMinNumInstances

      public void setMinNumInstances(double minNum)
      Set the minimum number of instances to allow at a leaf node
      Parameters:
      minNum - the minimum number of instances
    • getMinNumInstances

      public double getMinNumInstances()
      Get the minimum number of instances to allow at a leaf node
      Returns:
      a double value
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier, i.e., of LinearRegression.
      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
      Generates the classifier.
      Specified by:
      buildClassifier in interface Classifier
      Parameters:
      data - set of instances serving as training data
      Throws:
      Exception - if the classifier has not been generated successfully
    • classifyInstance

      public double classifyInstance(Instance inst) throws Exception
      Calculates a prediction for an instance using a set of rules or an M5 model tree
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      inst - the instance whos class value is to be predicted
      Returns:
      the prediction
      Throws:
      Exception - if a prediction can't be made.
    • toString

      public String toString()
      Returns a description of the classifier
      Overrides:
      toString in class Object
      Returns:
      a description of the classifier as a String
    • 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:
      Exception - if the named measure is not supported
    • measureNumRules

      public double measureNumRules()
      return the number of rules
      Returns:
      the number of rules (same as # linear models & # leaves in the tree)
    • getM5RootNode

      public RuleNode getM5RootNode()