Class RuleNode

java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.trees.m5.RuleNode
All Implemented Interfaces:
Serializable, Cloneable, Classifier, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler

public class RuleNode extends AbstractClassifier
Constructs a node for use in an m5 tree or rule
Version:
$Revision: 15357 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
  • Field Details

    • m_numParameters

      public int m_numParameters
      the number of paramters in the chosen model for this node---either the subtree model or the linear model. The constant term is counted as a paramter---this is for pruning purposes
  • Constructor Details

    • RuleNode

      public RuleNode(double globalDev, double globalAbsDev, RuleNode parent)
      Creates a new RuleNode instance.
      Parameters:
      globalDev - the global standard deviation of the class
      globalAbsDev - the global absolute deviation of the class
      parent - the parent of this node
  • Method Details

    • buildClassifier

      public void buildClassifier(Instances data) throws Exception
      Build this node (find an attribute and split point)
      Parameters:
      data - the instances on which to build this node
      Throws:
      Exception - if an error occurs
    • classifyInstance

      public double classifyInstance(Instance inst) throws Exception
      Classify an instance using this node. Recursively calls classifyInstance on child nodes.
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      inst - the instance to classify
      Returns:
      the prediction for this instance
      Throws:
      Exception - if an error occurs
    • split

      public void split() throws Exception
      Finds an attribute and split point for this node
      Throws:
      Exception - if an error occurs
    • numLeaves

      public int numLeaves(int leafCounter)
      Sets the leaves' numbers
      Parameters:
      leafCounter - the number of leaves counted
      Returns:
      the number of the total leaves under the node
    • toString

      public String toString()
      print the linear model at this node
      Overrides:
      toString in class Object
      Returns:
      the linear model
    • printNodeLinearModel

      public String printNodeLinearModel()
      print the linear model at this node
      Returns:
      the linear model at this node
    • printLeafModels

      public String printLeafModels()
      print all leaf models
      Returns:
      the leaf models
    • nodeToString

      public String nodeToString()
      Returns a description of this node (debugging purposes)
      Returns:
      a string describing this node
    • treeToString

      public String treeToString(int level)
      Recursively builds a textual description of the tree
      Parameters:
      level - the level of this node
      Returns:
      string describing the tree
    • installLinearModels

      public void installLinearModels() throws Exception
      Traverses the tree and installs linear models at each node. This method must be called if pruning is not to be performed.
      Throws:
      Exception - if an error occurs
    • installSmoothedModels

      public void installSmoothedModels() throws Exception
      Throws:
      Exception
    • prune

      public void prune() throws Exception
      Recursively prune the tree
      Throws:
      Exception - if an error occurs
    • findBestLeaf

      public void findBestLeaf(double[] maxCoverage, RuleNode[] bestLeaf)
      Find the leaf with greatest coverage
      Parameters:
      maxCoverage - the greatest coverage found so far
      bestLeaf - the leaf with the greatest coverage
    • returnLeaves

      public void returnLeaves(ArrayList<RuleNode>[] v)
      Return a list containing all the leaves in the tree
      Parameters:
      v - a single element array containing a vector of leaves
    • parentNode

      public RuleNode parentNode()
      Get the parent of this node
      Returns:
      the parent of this node
    • leftNode

      public RuleNode leftNode()
      Get the left child of this node
      Returns:
      the left child of this node
    • rightNode

      public RuleNode rightNode()
      Get the right child of this node
      Returns:
      the right child of this node
    • splitAtt

      public int splitAtt()
      Get the index of the splitting attribute for this node
      Returns:
      the index of the splitting attribute
    • splitVal

      public double splitVal()
      Get the split point for this node
      Returns:
      the split point for this node
    • numberOfLinearModels

      public int numberOfLinearModels()
      Get the number of linear models in the tree
      Returns:
      the number of linear models
    • isLeaf

      public boolean isLeaf()
      Return true if this node is a leaf
      Returns:
      true if this node is a leaf
    • getModel

      public PreConstructedLinearModel getModel()
      Get the linear model at this node
      Returns:
      the linear model at this node
    • getNumInstances

      public int getNumInstances()
      Return the number of instances that reach this node.
      Returns:
      the number of instances at this node.
    • getRegressionTree

      public boolean getRegressionTree()
      Get the value of regressionTree.
      Returns:
      Value of regressionTree.
    • setMinNumInstances

      public void setMinNumInstances(double minNum)
      Set the minumum number of instances to allow at a leaf node
      Parameters:
      minNum - the minimum number of instances
    • getMinNumInstances

      public double getMinNumInstances()
      Get the minimum number of instances to allow at a leaf node
      Returns:
      a double value
    • setRegressionTree

      public void setRegressionTree(boolean newregressionTree)
      Set the value of regressionTree.
      Parameters:
      newregressionTree - Value to assign to regressionTree.
    • printAllModels

      public void printAllModels()
      Print all the linear models at the learf (debugging purposes)
    • graph

      public void graph(StringBuffer text)
      Assign a unique identifier to each node in the tree and then calls graphTree
      Parameters:
      text - a StringBuffer value
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class AbstractClassifier
      Returns:
      the revision