weka.classifiers.trees.j48
Class BinC45Split

java.lang.Object
  extended by weka.classifiers.trees.j48.ClassifierSplitModel
      extended by weka.classifiers.trees.j48.BinC45Split
All Implemented Interfaces:
Serializable, Cloneable, RevisionHandler

public class BinC45Split
extends ClassifierSplitModel

Class implementing a binary C4.5-like split on an attribute.

Version:
$Revision: 8034 $
Author:
Eibe Frank ([email protected])
See Also:
Serialized Form

Constructor Summary
BinC45Split(int attIndex, int minNoObj, double sumOfWeights, boolean useMDLcorrection)
          Initializes the split model.
 
Method Summary
 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.
 String getRevision()
          Returns the revision string.
 double infoGain()
          Returns (C4.5-type) information gain for the generated split.
 String leftSide(Instances data)
          Prints left side of condition.
 void resetDistribution(Instances data)
          Sets distribution associated with model.
 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.
 String sourceExpression(int index, Instances data)
          Returns a string containing java source code equivalent to the test made at this node.
 double splitPoint()
          Returns the split point (numeric attribute only).
 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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BinC45Split

public BinC45Split(int attIndex,
                   int minNoObj,
                   double sumOfWeights,
                   boolean useMDLcorrection)
Initializes the split model.

Method Detail

buildClassifier

public void buildClassifier(Instances trainInstances)
                     throws Exception
Creates a C4.5-type split on the given data.

Specified by:
buildClassifier in class ClassifierSplitModel
Throws:
Exception - if something goes wrong

attIndex

public final int attIndex()
Returns index of attribute for which split was generated.


splitPoint

public double splitPoint()
Returns the split point (numeric attribute only).

Returns:
the split point used for a test on a numeric attribute

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 Exception
Gets class probability for instance.

Overrides:
classProb in class ClassifierSplitModel
Throws:
Exception - if something goes wrong

infoGain

public final double infoGain()
Returns (C4.5-type) information gain for the generated split.


leftSide

public final String leftSide(Instances data)
Prints left side of condition.

Specified by:
leftSide in class ClassifierSplitModel
Parameters:
data - the data to get the attribute name from.
Returns:
the attribute name

rightSide

public final String rightSide(int index,
                              Instances data)
Prints the condition satisfied by instances in a subset.

Specified by:
rightSide in class ClassifierSplitModel
Parameters:
index - of subset and training set.

sourceExpression

public final 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 class ClassifierSplitModel
Parameters:
index - index of the nominal value tested
data - 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 Exception
Sets distribution associated with model.

Overrides:
resetDistribution in class ClassifierSplitModel
Throws:
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 class ClassifierSplitModel

whichSubset

public final int whichSubset(Instance instance)
                      throws Exception
Returns index of subset instance is assigned to. Returns -1 if instance is assigned to more than one subset.

Specified by:
whichSubset in class ClassifierSplitModel
Throws:
Exception - if something goes wrong

getRevision

public String getRevision()
Returns the revision string.

Returns:
the revision


Copyright © 2013 University of Waikato, Hamilton, NZ. All Rights Reserved.