Package weka.classifiers.trees.m5

# Class Rule

java.lang.Object
weka.classifiers.trees.m5.Rule

All Implemented Interfaces:
  `Serializable`, `RevisionHandler`

public class Rule extends Object implements Serializable, RevisionHandler
Generates a single m5 tree or rule

Version:
  $Revision: 15358 $
Author:
  Mark Hall
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Rule()`
  Constructor declaration

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `buildClassifier(Instances data)`
  Generates a single rule or m5 model tree.
  `double`
  `classifyInstance(Instance instance)`
  Calculates a prediction for an instance using this rule or M5 model tree
  `void`
  `freeNotCoveredInstances()`
  Free up memory consumed by the set of instances not covered by this rule.
  `RuleNode`
  `getM5RootNode()`
  `double`
  `getMinNumInstances()`
  Get the minimum number of instances to allow at a leaf node
  `int`
  `getNumDecimalPlaces()`
  Get the number of decimal places.
  `boolean`
  `getRegressionTree()`
  Get the value of regressionTree.
  `String`
  `getRevision()`
  Returns the revision string.
  `boolean`
  `getSmoothing()`
  Get whether or not smoothing has been turned on
  `boolean`
  `getUnpruned()`
  Get whether unpruned tree/rules are being generated
  `boolean`
  `getUseTree()`
  get whether an m5 tree is being used rather than rules
  `Instances`
  `notCoveredInstances()`
  Get the instances not covered by this rule
  `void`
  `setMinNumInstances(double minNum)`
  Set the minumum number of instances to allow at a leaf node
  `void`
  `setNumDecimalPlaces(int num)`
  Set the number of decimal places.
  `void`
  `setRegressionTree(boolean newregressionTree)`
  Set the value of regressionTree.
  `void`
  `setSmoothing(boolean s)`
  Smooth predictions
  `void`
  `setUnpruned(boolean unpruned)`
  Use unpruned tree/rules
  `void`
  `setUseTree(boolean u)`
  Use an m5 tree rather than generate rules
  `RuleNode`
  `topOfTree()`
  Returns the top of the tree.
  `String`
  `toString()`
  Return a description of the m5 tree or rule

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### Rule

    public Rule()
    Constructor declaration

- ## Method Details

  - ### buildClassifier

    public void buildClassifier(Instances data) throws Exception
    Generates a single rule or m5 model tree.
    Parameters:
      `data` - set of instances serving as training data
    Throws:
      `Exception` - if the rule has not been generated successfully

  - ### classifyInstance

    public double classifyInstance(Instance instance) throws Exception
    Calculates a prediction for an instance using this rule or M5 model tree
    Parameters:
      `instance` - the instance whos class value is to be predicted
    Returns:
      the prediction
    Throws:
      `Exception` - if a prediction can't be made.

  - ### topOfTree

    public RuleNode topOfTree()
    Returns the top of the tree.

  - ### toString

    public String toString()
    Return a description of the m5 tree or rule
    Overrides:
      `toString` in class `Object`
    Returns:
      a description of the m5 tree or rule as a String

  - ### setUnpruned

    public void setUnpruned(boolean unpruned)
    Use unpruned tree/rules
    Parameters:
      `unpruned` - true if unpruned tree/rules are to be generated

  - ### getUnpruned

    public boolean getUnpruned()
    Get whether unpruned tree/rules are being generated
    Returns:
      true if unpruned tree/rules are to be generated

  - ### setUseTree

    public void setUseTree(boolean u)
    Use an m5 tree rather than generate rules
    Parameters:
      `u` - true if m5 tree is to be used

  - ### getUseTree

    public boolean getUseTree()
    get whether an m5 tree is being used rather than rules
    Returns:
      true if an m5 tree is being used.

  - ### setSmoothing

    public void setSmoothing(boolean s)
    Smooth predictions
    Parameters:
      `s` - true if smoothing is to be used

  - ### getSmoothing

    public boolean getSmoothing()
    Get whether or not smoothing has been turned on
    Returns:
      true if smoothing is being used

  - ### notCoveredInstances

    public Instances notCoveredInstances()
    Get the instances not covered by this rule
    Returns:
      the instances not covered

  - ### freeNotCoveredInstances

    public void freeNotCoveredInstances()
    Free up memory consumed by the set of instances not covered by this rule.

  - ### getRegressionTree

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

  - ### setRegressionTree

    public void setRegressionTree(boolean newregressionTree)
    Set the value of regressionTree.
    Parameters:
      `newregressionTree` - Value to assign to 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

  - ### getNumDecimalPlaces

    public int getNumDecimalPlaces()
    Get the number of decimal places.

  - ### setNumDecimalPlaces

    public void setNumDecimalPlaces(int num)
    Set the number of decimal places.

  - ### getM5RootNode

    public RuleNode getM5RootNode()

  - ### getRevision

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