weka.classifiers.trees.m5
Class M5Base

java.lang.Object
  |
  +--weka.classifiers.Classifier
        |
        +--weka.classifiers.trees.m5.M5Base
All Implemented Interfaces:
AdditionalMeasureProducer, java.lang.Cloneable, OptionHandler, java.io.Serializable
Direct Known Subclasses:
M5P, M5Rules

public abstract class M5Base
extends Classifier
implements OptionHandler, AdditionalMeasureProducer

M5Base. Implements base routines for generating M5 Model trees and rules.

Valid options are:

-U
Use unsmoothed predictions.

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

Version:
$Revision: 1.9 $
See Also:
Serialized Form

Constructor Summary
M5Base()
          Constructor
 
Method Summary
 void buildClassifier(Instances data)
          Generates the classifier.
 double classifyInstance(Instance inst)
          Calculates a prediction for an instance using a set of rules or an M5 model tree
 java.util.Enumeration enumerateMeasures()
          Returns an enumeration of the additional measure names
 boolean getBuildRegressionTree()
          Get the value of regressionTree.
 RuleNode getM5RootNode()
           
 double getMeasure(java.lang.String additionalMeasureName)
          Returns the value of the named measure
 double getMinNumInstances()
          Get the minimum number of instances to allow at a leaf node
 java.lang.String[] getOptions()
          Gets the current settings of the classifier.
 boolean getUnpruned()
          Get whether unpruned tree/rules are being generated
 boolean getUseUnsmoothed()
          Get whether or not smoothing is being used
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
 double measureNumRules()
          return the number of rules
 void setBuildRegressionTree(boolean newregressionTree)
          Set the value of regressionTree.
 void setMinNumInstances(double minNum)
          Set the minumum number of instances to allow at a leaf node
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setUnpruned(boolean unpruned)
          Use unpruned tree/rules
 void setUseUnsmoothed(boolean s)
          Use unsmoothed predictions
 java.lang.String toString()
          Returns a description of the classifier
 
Methods inherited from class weka.classifiers.Classifier
debugTipText, distributionForInstance, forName, getDebug, makeCopies, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

M5Base

public M5Base()
Constructor

Method Detail

listOptions

public java.util.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(java.lang.String[] options)
                throws java.lang.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 Classifier
Parameters:
options - the list of options as an array of strings
Throws:
java.lang.Exception - if an option is not supported

getOptions

public java.lang.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

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

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

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.

setMinNumInstances

public void setMinNumInstances(double minNum)
Set the minumum 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

buildClassifier

public void buildClassifier(Instances data)
                     throws java.lang.Exception
Generates the classifier.

Specified by:
buildClassifier in class Classifier
Parameters:
data - set of instances serving as training data
Throws:
java.lang.Exception - if the classifier has not been generated successfully

classifyInstance

public double classifyInstance(Instance inst)
                        throws java.lang.Exception
Calculates a prediction for an instance using a set of rules or an M5 model tree

Overrides:
classifyInstance in class Classifier
Parameters:
inst - the instance whos class value is to be predicted
Returns:
the prediction
Throws:
if - a prediction can't be made.
java.lang.Exception - if an error occurred during the prediction

toString

public java.lang.String toString()
Returns a description of the classifier

Overrides:
toString in class java.lang.Object
Returns:
a description of the classifier as a String

enumerateMeasures

public java.util.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(java.lang.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:
java.lang.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()


Copyright (c) 2003 David Lindsay, Computer Learning Research Centre, Dept. Computer Science, Royal Holloway, University of London