Package weka.classifiers.trees.m5
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
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:
Yong Wang made improvements and created M5':
Quinlan J. R. (1992). Learning with continuous classes. Proceedings of the Australian Joint Conference on Artificial Intelligence. 343--348. World Scientific, Singapore.
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$
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
-
Constructor Summary
Constructors Constructor Description M5Base()Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuildClassifier(Instances data)Generates the classifier.StringbuildRegressionTreeTipText()Returns the tip text for this propertydoubleclassifyInstance(Instance inst)Calculates a prediction for an instance using a set of rules or an M5 model treeEnumeration<String>enumerateMeasures()Returns an enumeration of the additional measure namesStringgenerateRulesTipText()Returns the tip text for this propertybooleangetBuildRegressionTree()Get the value of regressionTree.CapabilitiesgetCapabilities()Returns default capabilities of the classifier, i.e., of LinearRegression.booleangetKuenzelEtAlSplitSelection()Get whether Kuenzel et al.'s split selection is usedRuleNodegetM5RootNode()doublegetMeasure(String additionalMeasureName)Returns the value of the named measuredoublegetMinNumInstances()Get the minimum number of instances to allow at a leaf nodeString[]getOptions()Gets the current settings of the classifier.TechnicalInformationgetTechnicalInformation()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.booleangetUnpruned()Get whether unpruned tree/rules are being generatedbooleangetUseUnsmoothed()Get whether or not smoothing is being usedStringkuenzelEtAlSplitSelectionTipText()Returns the tip text for this propertyEnumeration<Option>listOptions()Returns an enumeration describing the available optionsdoublemeasureNumRules()return the number of rulesStringminNumInstancesTipText()Returns the tip text for this propertyvoidsetBuildRegressionTree(boolean newregressionTree)Set the value of regressionTree.voidsetKuenzelEtAlSplitSelection(boolean unpruned)Use Kuenzel et al.'s split selectionvoidsetMinNumInstances(double minNum)Set the minimum number of instances to allow at a leaf nodevoidsetOptions(String[] options)Parses a given list of options.voidsetUnpruned(boolean unpruned)Use unpruned tree/rulesvoidsetUseUnsmoothed(boolean s)Use unsmoothed predictionsStringtoString()Returns a description of the classifierStringunprunedTipText()Returns the tip text for this propertyStringuseUnsmoothedTipText()Returns the tip text for this property-
Methods inherited from class weka.classifiers.AbstractClassifier
batchSizeTipText, debugTipText, distributionForInstance, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, getRevision, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
-
-
-
-
Method Detail
-
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:
getTechnicalInformationin interfaceTechnicalInformationHandler- Returns:
- the technical information about this class
-
listOptions
public Enumeration<Option> listOptions()
Returns an enumeration describing the available options- Specified by:
listOptionsin interfaceOptionHandler- Overrides:
listOptionsin classAbstractClassifier- 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:
setOptionsin interfaceOptionHandler- Overrides:
setOptionsin classAbstractClassifier- 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:
getOptionsin interfaceOptionHandler- Overrides:
getOptionsin classAbstractClassifier- Returns:
- an array of strings suitable for passing to setOptions
-
kuenzelEtAlSplitSelectionTipText
public String kuenzelEtAlSplitSelectionTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setKuenzelEtAlSplitSelection
public void setKuenzelEtAlSplitSelection(boolean unpruned)
Use Kuenzel et al.'s split selection- Parameters:
unpruned- true if Kuenzel et al.'s split selection is used
-
getKuenzelEtAlSplitSelection
public boolean getKuenzelEtAlSplitSelection()
Get whether Kuenzel et al.'s split selection is used- Returns:
- true if Kuenzel et al.'s split selection is used
-
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
doublevalue
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier, i.e., of LinearRegression.- Specified by:
getCapabilitiesin interfaceCapabilitiesHandler- Specified by:
getCapabilitiesin interfaceClassifier- Overrides:
getCapabilitiesin classAbstractClassifier- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws Exception
Generates the classifier.- Specified by:
buildClassifierin interfaceClassifier- 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:
classifyInstancein interfaceClassifier- Overrides:
classifyInstancein classAbstractClassifier- 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
-
enumerateMeasures
public Enumeration<String> enumerateMeasures()
Returns an enumeration of the additional measure names- Specified by:
enumerateMeasuresin interfaceAdditionalMeasureProducer- Returns:
- an enumeration of the measure names
-
getMeasure
public double getMeasure(String additionalMeasureName)
Returns the value of the named measure- Specified by:
getMeasurein interfaceAdditionalMeasureProducer- 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()
-
-