Package weka.classifiers.trees
Class J48graft
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.trees.J48graft
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Sourcable
,AdditionalMeasureProducer
,CapabilitiesHandler
,Drawable
,Matchable
,OptionHandler
,RevisionHandler
,Summarizable
,TechnicalInformationHandler
,WeightedInstancesHandler
public class J48graft extends Classifier implements OptionHandler, Drawable, Matchable, Sourcable, WeightedInstancesHandler, Summarizable, AdditionalMeasureProducer, TechnicalInformationHandler
Class for generating a grafted (pruned or unpruned) C4.5 decision tree. For more information, see
Geoff Webb: Decision Tree Grafting From the All-Tests-But-One Partition. In: , San Francisco, CA, 1999. BibTeX:@inproceedings{Webb1999, address = {San Francisco, CA}, author = {Geoff Webb}, publisher = {Morgan Kaufmann}, title = {Decision Tree Grafting From the All-Tests-But-One Partition}, year = {1999} }
Valid options are:-U Use unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities. (note: this option only affects initial tree; grafting process always uses laplace).
-E Relabel when grafting.
- Version:
- $Revision: 5535 $
- Author:
- Janice Boughton (jrbought@csse.monash.edu.au) (based on J48.java written by Eibe Frank)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
-
-
Constructor Summary
Constructors Constructor Description J48graft()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
binarySplitsTipText()
Returns the tip text for this propertyvoid
buildClassifier(Instances instances)
Generates the classifier.double
classifyInstance(Instance instance)
Classifies an instance.java.lang.String
confidenceFactorTipText()
Returns the tip text for this propertydouble[]
distributionForInstance(Instance instance)
Returns class probabilities for an instance.java.util.Enumeration
enumerateMeasures()
Returns an enumeration of the additional measure namesboolean
getBinarySplits()
Get the value of binarySplits.Capabilities
getCapabilities()
Returns default capabilities of the classifier.float
getConfidenceFactor()
Get the value of CF.double
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measureint
getMinNumObj()
Get the value of minNumObj.java.lang.String[]
getOptions()
Gets the current settings of the Classifier.boolean
getRelabel()
Get the value of relabellingjava.lang.String
getRevision()
Returns the revision string.boolean
getSaveInstanceData()
Check whether instance data is to be saved.boolean
getSubtreeRaising()
Get the value of subtreeRaising.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.boolean
getUnpruned()
Get the value of unpruned.boolean
getUseLaplace()
Get the value of useLaplace.java.lang.String
globalInfo()
Returns a string describing classifierjava.lang.String
graph()
Returns graph describing the tree.int
graphType()
Returns the type of graph this classifier represents.java.util.Enumeration
listOptions()
Returns an enumeration describing the available options.static void
main(java.lang.String[] argv)
Main method for testing this classdouble
measureNumLeaves()
Returns the number of leavesdouble
measureNumRules()
Returns the number of rules (same as number of leaves)double
measureTreeSize()
Returns the size of the treejava.lang.String
minNumObjTipText()
Returns the tip text for this propertyjava.lang.String
prefix()
Returns tree in prefix order.java.lang.String
relabelTipText()
Returns the tip text for this propertyjava.lang.String
saveInstanceDataTipText()
Returns the tip text for this propertyvoid
setBinarySplits(boolean v)
Set the value of binarySplits.void
setConfidenceFactor(float v)
Set the value of CF.void
setMinNumObj(int v)
Set the value of minNumObj.void
setOptions(java.lang.String[] options)
Parses a given list of options.void
setRelabel(boolean v)
Set the value of relabelling.void
setSaveInstanceData(boolean v)
Set whether instance data is to be saved.void
setSubtreeRaising(boolean v)
Set the value of subtreeRaising.void
setUnpruned(boolean v)
Set the value of unpruned.void
setUseLaplace(boolean newuseLaplace)
Set the value of useLaplace.java.lang.String
subtreeRaisingTipText()
Returns the tip text for this propertyjava.lang.String
toSource(java.lang.String className)
Returns tree as an if-then statement.java.lang.String
toString()
Returns a description of the classifier.java.lang.String
toSummaryString()
Returns a superconcise version of the modeljava.lang.String
unprunedTipText()
Returns the tip text for this propertyjava.lang.String
useLaplaceTipText()
Returns the tip text for this property-
Methods inherited from class weka.classifiers.Classifier
debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
-
-
-
Method Detail
-
globalInfo
public java.lang.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 interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances instances) throws java.lang.Exception
Generates the classifier.- Specified by:
buildClassifier
in classClassifier
- Parameters:
instances
- the data to train the classifier with- Throws:
java.lang.Exception
- if classifier can't be built successfully
-
classifyInstance
public double classifyInstance(Instance instance) throws java.lang.Exception
Classifies an instance.- Overrides:
classifyInstance
in classClassifier
- Parameters:
instance
- the instance to classify- Returns:
- the classification for the instance
- Throws:
java.lang.Exception
- if instance can't be classified successfully
-
distributionForInstance
public final double[] distributionForInstance(Instance instance) throws java.lang.Exception
Returns class probabilities for an instance.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance to calculate the class probabilities for- Returns:
- the class probabilities
- Throws:
java.lang.Exception
- if distribution can't be computed successfully
-
graphType
public int graphType()
Returns the type of graph this classifier represents.
-
graph
public java.lang.String graph() throws java.lang.Exception
Returns graph describing the tree.
-
prefix
public java.lang.String prefix() throws java.lang.Exception
Returns tree in prefix order.
-
toSource
public java.lang.String toSource(java.lang.String className) throws java.lang.Exception
Returns tree as an if-then statement.
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options. Valid options are:-U
Use unpruned tree.-C confidence
Set confidence threshold for pruning. (Default: 0.25)-M number
Set minimum number of instances per leaf. (Default: 2)-B
Use binary splits for nominal attributes.-S
Don't perform subtree raising.-L
Do not clean up after the tree has been built. -A
If set, Laplace smoothing is used for predicted probabilites. (note: this option only affects initial tree; grafting process always uses laplace).-E
Allow relabelling when grafting.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- 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 unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities. (note: this option only affects initial tree; grafting process always uses laplace).
-E Relabel when grafting.
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- 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 interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
useLaplaceTipText
public java.lang.String useLaplaceTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getUseLaplace
public boolean getUseLaplace()
Get the value of useLaplace.- Returns:
- Value of useLaplace.
-
setUseLaplace
public void setUseLaplace(boolean newuseLaplace)
Set the value of useLaplace.- Parameters:
newuseLaplace
- Value to assign to useLaplace.
-
toString
public java.lang.String toString()
Returns a description of the classifier.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a description of the classifier
-
toSummaryString
public java.lang.String toSummaryString()
Returns a superconcise version of the model- Specified by:
toSummaryString
in interfaceSummarizable
- Returns:
- a summary of the model
-
measureTreeSize
public double measureTreeSize()
Returns the size of the tree- Returns:
- the size of the tree
-
measureNumLeaves
public double measureNumLeaves()
Returns the number of leaves- Returns:
- the number of leaves
-
measureNumRules
public double measureNumRules()
Returns the number of rules (same as number of leaves)- Returns:
- the number of rules
-
enumerateMeasures
public java.util.Enumeration enumerateMeasures()
Returns an enumeration of the additional measure names- Specified by:
enumerateMeasures
in interfaceAdditionalMeasureProducer
- 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 interfaceAdditionalMeasureProducer
- Parameters:
additionalMeasureName
- the name of the measure to query for its value- Returns:
- the value of the named measure
- Throws:
java.lang.IllegalArgumentException
- if the named measure is not supported
-
unprunedTipText
public java.lang.String unprunedTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getUnpruned
public boolean getUnpruned()
Get the value of unpruned.- Returns:
- Value of unpruned.
-
setUnpruned
public void setUnpruned(boolean v)
Set the value of unpruned.- Parameters:
v
- Value to assign to unpruned.
-
relabelTipText
public java.lang.String relabelTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getRelabel
public boolean getRelabel()
Get the value of relabelling- Returns:
- Value of relabelling.
-
setRelabel
public void setRelabel(boolean v)
Set the value of relabelling.- Parameters:
v
- Value to assign to relabelling flag.
-
confidenceFactorTipText
public java.lang.String confidenceFactorTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getConfidenceFactor
public float getConfidenceFactor()
Get the value of CF.- Returns:
- Value of CF.
-
setConfidenceFactor
public void setConfidenceFactor(float v)
Set the value of CF.- Parameters:
v
- Value to assign to CF.
-
minNumObjTipText
public java.lang.String minNumObjTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getMinNumObj
public int getMinNumObj()
Get the value of minNumObj.- Returns:
- Value of minNumObj.
-
setMinNumObj
public void setMinNumObj(int v)
Set the value of minNumObj.- Parameters:
v
- Value to assign to minNumObj.
-
binarySplitsTipText
public java.lang.String binarySplitsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getBinarySplits
public boolean getBinarySplits()
Get the value of binarySplits.- Returns:
- Value of binarySplits.
-
setBinarySplits
public void setBinarySplits(boolean v)
Set the value of binarySplits.- Parameters:
v
- Value to assign to binarySplits.
-
subtreeRaisingTipText
public java.lang.String subtreeRaisingTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getSubtreeRaising
public boolean getSubtreeRaising()
Get the value of subtreeRaising.- Returns:
- Value of subtreeRaising.
-
setSubtreeRaising
public void setSubtreeRaising(boolean v)
Set the value of subtreeRaising.- Parameters:
v
- Value to assign to subtreeRaising.
-
saveInstanceDataTipText
public java.lang.String saveInstanceDataTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getSaveInstanceData
public boolean getSaveInstanceData()
Check whether instance data is to be saved.- Returns:
- true if instance data is saved
-
setSaveInstanceData
public void setSaveInstanceData(boolean v)
Set whether instance data is to be saved.- Parameters:
v
- true if instance data is to be saved
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class- Parameters:
argv
- the commandline options
-
-