Package weka.classifiers.trees.j48
Class BinC45Split
- java.lang.Object
-
- weka.classifiers.trees.j48.ClassifierSplitModel
-
- weka.classifiers.trees.j48.BinC45Split
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,RevisionHandler
public class BinC45Split extends ClassifierSplitModel
Class implementing a binary C4.5-like split on an attribute.- Version:
- $Revision: 1.14 $
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BinC45Split(int attIndex, int minNoObj, double sumOfWeights)
Initializes the split model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
attIndex()
Returns index of attribute for which split was generated.void
buildClassifier(Instances trainInstances)
Creates a C4.5-type split on the given data.double
classProb(int classIndex, Instance instance, int theSubset)
Gets class probability for instance.double
gainRatio()
Returns (C4.5-type) gain ratio for the generated split.java.lang.String
getRevision()
Returns the revision string.double
infoGain()
Returns (C4.5-type) information gain for the generated split.java.lang.String
leftSide(Instances data)
Prints left side of condition.void
resetDistribution(Instances data)
Sets distribution associated with model.java.lang.String
rightSide(int index, Instances data)
Prints the condition satisfied by instances in a subset.void
setSplitPoint(Instances allInstances)
Sets split point to greatest value in given data smaller or equal to old split point.java.lang.String
sourceExpression(int index, Instances data)
Returns a string containing java source code equivalent to the test made at this node.double[]
weights(Instance instance)
Returns weights if instance is assigned to more than one subset.int
whichSubset(Instance instance)
Returns index of subset instance is assigned to.-
Methods inherited from class weka.classifiers.trees.j48.ClassifierSplitModel
checkModel, classifyInstance, classProbLaplace, clone, codingCost, distribution, dumpLabel, dumpModel, numSubsets, sourceClass, split
-
-
-
-
Method Detail
-
buildClassifier
public void buildClassifier(Instances trainInstances) throws java.lang.Exception
Creates a C4.5-type split on the given data.- Specified by:
buildClassifier
in classClassifierSplitModel
- Throws:
java.lang.Exception
- if something goes wrong
-
attIndex
public final int attIndex()
Returns index of attribute for which split was generated.
-
gainRatio
public final double gainRatio()
Returns (C4.5-type) gain ratio for the generated split.
-
classProb
public final double classProb(int classIndex, Instance instance, int theSubset) throws java.lang.Exception
Gets class probability for instance.- Overrides:
classProb
in classClassifierSplitModel
- Throws:
java.lang.Exception
- if something goes wrong
-
infoGain
public final double infoGain()
Returns (C4.5-type) information gain for the generated split.
-
leftSide
public final java.lang.String leftSide(Instances data)
Prints left side of condition.- Specified by:
leftSide
in classClassifierSplitModel
- Parameters:
data
- the data to get the attribute name from.- Returns:
- the attribute name
-
rightSide
public final java.lang.String rightSide(int index, Instances data)
Prints the condition satisfied by instances in a subset.- Specified by:
rightSide
in classClassifierSplitModel
- Parameters:
index
- of subset and training set.
-
sourceExpression
public final java.lang.String sourceExpression(int index, Instances data)
Returns a string containing java source code equivalent to the test made at this node. The instance being tested is called "i".- Specified by:
sourceExpression
in classClassifierSplitModel
- Parameters:
index
- index of the nominal value testeddata
- the data containing instance structure info- Returns:
- a value of type 'String'
-
setSplitPoint
public final void setSplitPoint(Instances allInstances)
Sets split point to greatest value in given data smaller or equal to old split point. (C4.5 does this for some strange reason).
-
resetDistribution
public void resetDistribution(Instances data) throws java.lang.Exception
Sets distribution associated with model.- Overrides:
resetDistribution
in classClassifierSplitModel
- Throws:
java.lang.Exception
-
weights
public final double[] weights(Instance instance)
Returns weights if instance is assigned to more than one subset. Returns null if instance is only assigned to one subset.- Specified by:
weights
in classClassifierSplitModel
-
whichSubset
public final int whichSubset(Instance instance) throws java.lang.Exception
Returns index of subset instance is assigned to. Returns -1 if instance is assigned to more than one subset.- Specified by:
whichSubset
in classClassifierSplitModel
- Throws:
java.lang.Exception
- if something goes wrong
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Returns:
- the revision
-
-