weka.classifiers.trees

## Class M5P

- java.lang.Object
- - weka.classifiers.AbstractClassifier
  - - weka.classifiers.trees.m5.M5Base
    - - weka.classifiers.trees.M5P

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Classifier, AdditionalMeasureProducer, CapabilitiesHandler, CapabilitiesIgnorer, Drawable, OptionHandler, RevisionHandler, TechnicalInformationHandler

      public class M5P
      extends M5Base
      implements Drawable

  M5Base. Implements base routines for generating M5 Model trees and rules
  The original algorithm M5 was invented by R. Quinlan and Yong Wang made improvements.
  For more information see:
  Ross J. Quinlan: Learning with Continuous Classes. In: 5th Australian Joint Conference on Artificial Intelligence, Singapore, 343-348, 1992.
  Y. Wang, I. H. Witten: Induction of model trees for predicting continuous classes. In: Poster papers of the 9th European Conference on Machine Learning, 1997.

  BibTeX:

       @inproceedings{Quinlan1992,
          address = {Singapore},
          author = {Ross J. Quinlan},
          booktitle = {5th Australian Joint Conference on Artificial Intelligence},
          pages = {343-348},
          publisher = {World Scientific},
          title = {Learning with Continuous Classes},
          year = {1992}
       }

       @inproceedings{Wang1997,
          author = {Y. Wang and I. H. Witten},
          booktitle = {Poster papers of the 9th European Conference on Machine Learning},
          publisher = {Springer},
          title = {Induction of model trees for predicting continuous classes},
          year = {1997}
       }

  Valid options are:

       -N
        Use unpruned tree/rules

       -U
        Use unsmoothed predictions

       -R
        Build regression tree/rule rather than a model tree/rule

       -M <minimum number of instances>
        Set minimum number of instances per leaf
        (default 4)

       -L
        Save instances at the nodes in
        the tree (for visualization purposes)

  Version:
    $Revision: 10153 $
  Author:
    Mark Hall
  See Also:
    Serialized Form

- - ### Field Summary

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

      `BayesNet, Newick, NOT_DRAWABLE, TREE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `M5P()` Creates a new `M5P` instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String[]` | `getOptions()` Gets the current settings of the classifier.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `boolean` | `getSaveInstances()` Get whether instance data is being save.
    `java.lang.String` | `graph()` Return a dot style String describing the tree.
    `int` | `graphType()` Returns the type of graph this classifier represents.
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options
    `static void` | `main(java.lang.String[] args)` Main method by which this class can be tested
    `java.lang.String` | `saveInstancesTipText()` Returns the tip text for this property
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
    `void` | `setSaveInstances(boolean save)` Set whether to save instance data at each node in the tree for visualization purposes

    - ### Methods inherited from class weka.classifiers.trees.m5.M5Base

      `buildClassifier, buildRegressionTreeTipText, classifyInstance, enumerateMeasures, generateRulesTipText, getBuildRegressionTree, getCapabilities, getM5RootNode, getMeasure, getMinNumInstances, getTechnicalInformation, getUnpruned, getUseUnsmoothed, globalInfo, measureNumRules, minNumInstancesTipText, setBuildRegressionTree, setMinNumInstances, setUnpruned, setUseUnsmoothed, toString, unprunedTipText, useUnsmoothedTipText`

    - ### Methods inherited from class weka.classifiers.AbstractClassifier

      `debugTipText, distributionForInstance, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, makeCopies, makeCopy, runClassifier, setDebug, setDoNotCheckCapabilities`

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

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

- - ### Constructor Detail

    - #### M5P

          public M5P()

      Creates a new `M5P` instance.

  - ### Method Detail

    - #### graphType

          public int graphType()

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

    - #### graph

          public java.lang.String graph()
                                 throws java.lang.Exception

      Return a dot style String describing the tree.
      Specified by:
        `graph` in interface `Drawable`
      Returns:
        a `String` value
      Throws:
        `java.lang.Exception` - if an error occurs

    - #### saveInstancesTipText

          public java.lang.String saveInstancesTipText()

      Returns the tip text for this property
      Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui

    - #### setSaveInstances

          public void setSaveInstances(boolean save)

      Set whether to save instance data at each node in the tree for visualization purposes
      Parameters:
        `save` - a `boolean` value

    - #### getSaveInstances

          public boolean getSaveInstances()

      Get whether instance data is being save.
      Returns:
        a `boolean` value

    - #### listOptions

          public java.util.Enumeration<Option> listOptions()

      Returns an enumeration describing the available options
      Specified by:
        `listOptions` in interface `OptionHandler`
      Overrides:
        `listOptions` in class `M5Base`
      Returns:
        an enumeration of all the available options

    - #### setOptions

          public void setOptions(java.lang.String[] options)
                          throws java.lang.Exception

      Parses a given list of options.

      Valid options are:

           -N
            Use unpruned tree/rules

           -U
            Use unsmoothed predictions

           -R
            Build regression tree/rule rather than a model tree/rule

           -M <minimum number of instances>
            Set minimum number of instances per leaf
            (default 4)

           -L
            Save instances at the nodes in
            the tree (for visualization purposes)

      Specified by:
        `setOptions` in interface `OptionHandler`
      Overrides:
        `setOptions` in class `M5Base`
      Parameters:
        `options` - the list of options as an array of strings
      Throws:
        `java.lang.Exception` - if an option is not supported

    - #### getOptions

          public java.lang.String[] getOptions()

      Gets the current settings of the classifier.
      Specified by:
        `getOptions` in interface `OptionHandler`
      Overrides:
        `getOptions` in class `M5Base`
      Returns:
        an array of strings suitable for passing to setOptions

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Overrides:
        `getRevision` in class `AbstractClassifier`
      Returns:
        the revision

    - #### main

          public static void main(java.lang.String[] args)

      Main method by which this class can be tested
      Parameters:
        `args` - an array of options