Package weka.classifiers.trees.j48

# Class ClassifierTree

java.lang.Object
weka.classifiers.trees.j48.ClassifierTree

All Implemented Interfaces:
  `Serializable`, `CapabilitiesHandler`, `Drawable`, `RevisionHandler`

Direct Known Subclasses:
  `C45PruneableClassifierTree`, `NBTreeClassifierTree`, `PruneableClassifierTree`

public class ClassifierTree extends Object implements Drawable, Serializable, RevisionHandler, CapabilitiesHandler
Class for handling a tree structure used for classification.

Version:
  $Revision: 15123 $
Author:
  Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from interface weka.core.Drawable

  `BayesNet, Newick, NOT_DRAWABLE, TREE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClassifierTree(ModelSelection toSelectLocModel)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `assignIDs(int lastID)`
  Assigns a uniqe id to every node in the tree.
  `void`
  `buildClassifier(Instances data)`
  Method for building a classifier tree.
  `void`
  `buildTree(Instances data, boolean keepData)`
  Builds the tree structure.
  `void`
  `buildTree(Instances train, Instances test, boolean keepData)`
  Builds the tree structure with hold out set
  `double`
  `classifyInstance(Instance instance)`
  Classifies an instance.
  `final void`
  `cleanup(Instances justHeaderInfo)`
  Cleanup in order to save memory.
  `double[]`
  `distributionForInstance(Instance instance, boolean useLaplace)`
  Returns class probabilities for a weighted instance.
  `Capabilities`
  `getCapabilities()`
  Returns default capabilities of the classifier tree.
  `ClassifierSplitModel`
  `getLocalModel()`
  `double[]`
  `getMembershipValues(Instance instance)`
  Computes a list that indicates node membership
  `String`
  `getRevision()`
  Returns the revision string.
  `ClassifierTree[]`
  `getSons()`
  `Instances`
  `getTrainingData()`
  `String`
  `graph()`
  Returns graph describing the tree.
  `int`
  `graphType()`
  Returns the type of graph this classifier represents.
  `boolean`
  `isLeaf()`
  `int`
  `numLeaves()`
  Returns number of leaves in tree structure.
  `int`
  `numNodes()`
  Returns number of nodes in tree structure.
  `String`
  `prefix()`
  Returns tree in prefix order.
  `StringBuffer[]`
  `toSource(String className)`
  Returns source code for the tree as an if-then statement.
  `String`
  `toString()`
  Prints tree structure.

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

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

- ## Constructor Details

  - ### ClassifierTree

    public ClassifierTree(ModelSelection toSelectLocModel)
    Constructor.

- ## Method Details

  - ### getLocalModel

    public ClassifierSplitModel getLocalModel()

  - ### getSons

    public ClassifierTree[] getSons()

  - ### isLeaf

    public boolean isLeaf()

  - ### getTrainingData

    public Instances getTrainingData()

  - ### getCapabilities

    public Capabilities getCapabilities()
    Returns default capabilities of the classifier tree.
    Specified by:
      `getCapabilities` in interface `CapabilitiesHandler`
    Returns:
      the capabilities of this classifier tree
    See Also:
      - `Capabilities`

  - ### buildClassifier

    public void buildClassifier(Instances data) throws Exception
    Method for building a classifier tree.
    Parameters:
      `data` - the data to build the tree from
    Throws:
      `Exception` - if something goes wrong

  - ### buildTree

    public void buildTree(Instances data, boolean keepData) throws Exception
    Builds the tree structure.
    Parameters:
      `data` - the data for which the tree structure is to be generated.
      `keepData` - is training data to be kept?
    Throws:
      `Exception` - if something goes wrong

  - ### buildTree

    public void buildTree(Instances train, Instances test, boolean keepData) throws Exception
    Builds the tree structure with hold out set
    Parameters:
      `train` - the data for which the tree structure is to be generated.
      `test` - the test data for potential pruning
      `keepData` - is training Data to be kept?
    Throws:
      `Exception` - if something goes wrong

  - ### classifyInstance

    public double classifyInstance(Instance instance) throws Exception
    Classifies an instance.
    Parameters:
      `instance` - the instance to classify
    Returns:
      the classification
    Throws:
      `Exception` - if something goes wrong

  - ### cleanup

    public final void cleanup(Instances justHeaderInfo)
    Cleanup in order to save memory.
    Parameters:
      `justHeaderInfo` -

  - ### distributionForInstance

    public double[] distributionForInstance(Instance instance, boolean useLaplace) throws Exception
    Returns class probabilities for a weighted instance.
    Parameters:
      `instance` - the instance to get the distribution for
      `useLaplace` - whether to use laplace or not
    Returns:
      the distribution
    Throws:
      `Exception` - if something goes wrong

  - ### assignIDs

    public int assignIDs(int lastID)
    Assigns a uniqe id to every node in the tree.
    Parameters:
      `lastID` - the last ID that was assign
    Returns:
      the new current ID

  - ### graphType

    public int graphType()
    Returns the type of graph this classifier represents.
    Specified by:
      `graphType` in interface `Drawable`
    Returns:
      Drawable.TREE

  - ### graph

    public String graph() throws Exception
    Returns graph describing the tree.
    Specified by:
      `graph` in interface `Drawable`
    Returns:
      the tree as graph
    Throws:
      `Exception` - if something goes wrong

  - ### prefix

    public String prefix() throws Exception
    Returns tree in prefix order.
    Returns:
      the prefix order
    Throws:
      `Exception` - if something goes wrong

  - ### toSource

    public StringBuffer[] toSource(String className) throws Exception
    Returns source code for the tree as an if-then statement. The class is assigned to variable "p", and assumes the tested instance is named "i". The results are returned as two stringbuffers: a section of code for assignment of the class, and a section of code containing support code (eg: other support methods).
    Parameters:
      `className` - the classname that this static classifier has
    Returns:
      an array containing two stringbuffers, the first string containing assignment code, and the second containing source for support code.
    Throws:
      `Exception` - if something goes wrong

  - ### numLeaves

    public int numLeaves()
    Returns number of leaves in tree structure.
    Returns:
      the number of leaves

  - ### numNodes

    public int numNodes()
    Returns number of nodes in tree structure.
    Returns:
      the number of nodes

  - ### toString

    public String toString()
    Prints tree structure.
    Overrides:
      `toString` in class `Object`
    Returns:
      the tree structure

  - ### getMembershipValues

    public double[] getMembershipValues(Instance instance) throws Exception
    Computes a list that indicates node membership
    Throws:
      `Exception`

  - ### getRevision

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