weka.classifiers.trees.adtree
Class TwoWayNumericSplit

java.lang.Object
  extended byweka.classifiers.trees.adtree.Splitter
      extended byweka.classifiers.trees.adtree.TwoWayNumericSplit
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class TwoWayNumericSplit
extends Splitter

Class representing a two-way split on a numeric attribute, of the form: either 'is < some_value' or 'is >= some_value'.

Version:
$Revision: 1.2 $
Author:
Richard Kirkby (rkirkby@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
private  int attIndex
          The index of the attribute the split depends on
private  PredictionNode[] children
          The children of this split
private  double splitPoint
          The attribute value that is compared against
 
Fields inherited from class weka.classifiers.trees.adtree.Splitter
orderAdded
 
Constructor Summary
TwoWayNumericSplit(int _attIndex, double _splitPoint)
          Creates a new two-way numeric splitter.
 
Method Summary
 java.lang.String attributeString(Instances dataset)
          Gets the string describing the attributes the split depends on.
 int branchInstanceGoesDown(Instance inst)
          Gets the index of the branch that an instance applies to.
 java.lang.Object clone()
          Clones this node.
 java.lang.String comparisonString(int branchNum, Instances dataset)
          Gets the string describing the comparision the split depends on for a particular branch. i.e. the right hand side of the description of the split.
 boolean equalTo(Splitter compare)
          Tests whether two splitters are equivalent.
 PredictionNode getChildForBranch(int branchNum)
          Gets the child for a branch of the split.
 int getNumOfBranches()
          Gets the number of branches of the split.
 ReferenceInstances instancesDownBranch(int branch, Instances instances)
          Gets the subset of instances that apply to a particluar branch of the split.
 void setChildForBranch(int branchNum, PredictionNode childPredictor)
          Sets the child for a branch of the split.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

attIndex

private int attIndex
The index of the attribute the split depends on


splitPoint

private double splitPoint
The attribute value that is compared against


children

private PredictionNode[] children
The children of this split

Constructor Detail

TwoWayNumericSplit

public TwoWayNumericSplit(int _attIndex,
                          double _splitPoint)
Creates a new two-way numeric splitter.

Parameters:
_attIndex - the index of the attribute this split depeneds on
_splitPoint - the attribute value that the splitter splits on
Method Detail

getNumOfBranches

public int getNumOfBranches()
Gets the number of branches of the split.

Specified by:
getNumOfBranches in class Splitter
Returns:
the number of branches (always = 2)

branchInstanceGoesDown

public int branchInstanceGoesDown(Instance inst)
Gets the index of the branch that an instance applies to. Returns -1 if no branches apply.

Specified by:
branchInstanceGoesDown in class Splitter
Parameters:
inst - the instance
Returns:
the branch index

instancesDownBranch

public ReferenceInstances instancesDownBranch(int branch,
                                              Instances instances)
Gets the subset of instances that apply to a particluar branch of the split. If the branch index is -1, the subset will consist of those instances that don't apply to any branch.

Specified by:
instancesDownBranch in class Splitter
Parameters:
branch - the index of the branch
instances - the instances from which to find the subset
Returns:
the set of instances that apply

attributeString

public java.lang.String attributeString(Instances dataset)
Gets the string describing the attributes the split depends on. i.e. the left hand side of the description of the split.

Specified by:
attributeString in class Splitter
Parameters:
dataset - the dataset that the split is based on
Returns:
a string describing the attributes

comparisonString

public java.lang.String comparisonString(int branchNum,
                                         Instances dataset)
Gets the string describing the comparision the split depends on for a particular branch. i.e. the right hand side of the description of the split.

Specified by:
comparisonString in class Splitter
Parameters:
branchNum - the branch of the split
dataset - the dataset that the split is based on
Returns:
a string describing the comparison

equalTo

public boolean equalTo(Splitter compare)
Tests whether two splitters are equivalent.

Specified by:
equalTo in class Splitter
Parameters:
compare - the splitter to compare with
Returns:
whether or not they match

setChildForBranch

public void setChildForBranch(int branchNum,
                              PredictionNode childPredictor)
Sets the child for a branch of the split.

Specified by:
setChildForBranch in class Splitter
Parameters:
branchNum - the branch to set the child for
childPredictor - the new child

getChildForBranch

public PredictionNode getChildForBranch(int branchNum)
Gets the child for a branch of the split.

Specified by:
getChildForBranch in class Splitter
Parameters:
branchNum - the branch to get the child for
Returns:
the child

clone

public java.lang.Object clone()
Clones this node. Performs a deep copy, recursing through the tree.

Specified by:
clone in class Splitter
Returns:
a clone