Class Splitter

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, RevisionHandler
    Direct Known Subclasses:
    TwoWayNominalSplit, TwoWayNumericSplit

    public abstract class Splitter
    extends java.lang.Object
    implements java.io.Serializable, java.lang.Cloneable, RevisionHandler
    Abstract class representing a splitter node in an alternating tree.
    Version:
    $Revision: 1.5 $
    Author:
    Richard Kirkby (rkirkby@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int orderAdded
      The number this node was in the order of nodes added to the tree
    • Constructor Summary

      Constructors 
      Constructor Description
      Splitter()  
    • Field Detail

      • orderAdded

        public int orderAdded
        The number this node was in the order of nodes added to the tree
    • Constructor Detail

      • Splitter

        public Splitter()
    • Method Detail

      • getNumOfBranches

        public abstract int getNumOfBranches()
        Gets the number of branches of the split.
        Returns:
        the number of branches
      • branchInstanceGoesDown

        public abstract int branchInstanceGoesDown​(Instance i)
        Gets the index of the branch that an instance applies to. Returns -1 if no branches apply.
        Parameters:
        i - the instance
        Returns:
        the branch index
      • instancesDownBranch

        public abstract ReferenceInstances instancesDownBranch​(int branch,
                                                               Instances sourceInstances)
        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.
        Parameters:
        branch - the index of the branch
        sourceInstances - the instances from which to find the subset
        Returns:
        the set of instances that apply
      • attributeString

        public abstract 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.
        Parameters:
        dataset - the dataset that the split is based on
        Returns:
        a string describing the attributes
      • comparisonString

        public abstract 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.
        Parameters:
        branchNum - the branch of the split
        dataset - the dataset that the split is based on
        Returns:
        a string describing the comparison
      • equalTo

        public abstract boolean equalTo​(Splitter compare)
        Tests whether two splitters are equivalent.
        Parameters:
        compare - the splitter to compare with
        Returns:
        whether or not they match
      • setChildForBranch

        public abstract void setChildForBranch​(int branchNum,
                                               PredictionNode childPredictor)
        Sets the child for a branch of the split.
        Parameters:
        branchNum - the branch to set the child for
        childPredictor - the new child
      • getChildForBranch

        public abstract PredictionNode getChildForBranch​(int branchNum)
        Gets the child for a branch of the split.
        Parameters:
        branchNum - the branch to get the child for
        Returns:
        the child
      • clone

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