Class PART

All Implemented Interfaces:
Serializable, Cloneable, Classifier, AdditionalMeasureProducer, BatchPredictor, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler, Summarizable, TechnicalInformationHandler, WeightedInstancesHandler

Class for generating a PART decision list. Uses separate-and-conquer. Builds a partial C4.5 decision tree in each iteration and makes the "best" leaf into a rule.

For more information, see:

Eibe Frank, Ian H. Witten: Generating Accurate Rule Sets Without Global Optimization. In: Fifteenth International Conference on Machine Learning, 144-151, 1998.

BibTeX:

 @inproceedings{Frank1998,
    author = {Eibe Frank and Ian H. Witten},
    booktitle = {Fifteenth International Conference on Machine Learning},
    editor = {J. Shavlik},
    pages = {144-151},
    publisher = {Morgan Kaufmann},
    title = {Generating Accurate Rule Sets Without Global Optimization},
    year = {1998},
    PS = {http://www.cs.waikato.ac.nz/\~eibe/pubs/ML98-57.ps.gz}
 }
 

Valid options are:

 -C <pruning confidence>
  Set confidence threshold for pruning.
  (default 0.25)
 
 -M <minimum number of objects>
  Set minimum number of objects per leaf.
  (default 2)
 
 -R
  Use reduced error pruning.
 
 -N <number of folds>
  Set number of folds for reduced error
  pruning. One fold is used as pruning set.
  (default 3)
 
 -B
  Use binary splits only.
 
 -U
  Generate unpruned decision list.
 
 -J
  Do not use MDL correction for info gain on numeric attributes.
 
 -Q <seed>
  Seed for random data shuffling (default 1).
 
 -doNotMakeSplitPointActualValue
  Do not make split point actual value.
 
Version:
$Revision: 15232 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • PART

      public PART()
  • Method Details

    • globalInfo

      public String globalInfo()
      Returns a string describing classifier
      Returns:
      a description suitable for displaying in the explorer/experimenter gui
    • getTechnicalInformation

      public TechnicalInformation getTechnicalInformation()
      Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
      Specified by:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Specified by:
      getCapabilities in interface Classifier
      Overrides:
      getCapabilities in class AbstractClassifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances instances) throws Exception
      Generates the classifier.
      Specified by:
      buildClassifier in interface Classifier
      Parameters:
      instances - the data to train with
      Throws:
      Exception - if classifier can't be built successfully
    • classifyInstance

      public double classifyInstance(Instance instance) throws Exception
      Classifies an instance.
      Specified by:
      classifyInstance in interface Classifier
      Overrides:
      classifyInstance in class AbstractClassifier
      Parameters:
      instance - the instance to classify
      Returns:
      the classification
      Throws:
      Exception - if instance can't be classified successfully
    • distributionForInstance

      public final double[] distributionForInstance(Instance instance) throws Exception
      Returns class probabilities for an instance.
      Specified by:
      distributionForInstance in interface Classifier
      Overrides:
      distributionForInstance in class AbstractClassifier
      Parameters:
      instance - the instance to get the distribution for
      Returns:
      the class probabilities
      Throws:
      Exception - if the distribution can't be computed successfully
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options. Valid options are:

      -C confidence
      Set confidence threshold for pruning. (Default: 0.25)

      -M number
      Set minimum number of instances per leaf. (Default: 2)

      -R
      Use reduced error pruning.

      -N number
      Set number of folds for reduced error pruning. One fold is used as the pruning set. (Default: 3)

      -B
      Use binary splits for nominal attributes.

      -U
      Generate unpruned decision list.

      -Q
      The seed for reduced-error pruning.

      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class AbstractClassifier
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -C <pruning confidence>
        Set confidence threshold for pruning.
        (default 0.25)
       
       -M <minimum number of objects>
        Set minimum number of objects per leaf.
        (default 2)
       
       -R
        Use reduced error pruning.
       
       -N <number of folds>
        Set number of folds for reduced error
        pruning. One fold is used as pruning set.
        (default 3)
       
       -B
        Use binary splits only.
       
       -U
        Generate unpruned decision list.
       
       -J
        Do not use MDL correction for info gain on numeric attributes.
       
       -Q <seed>
        Seed for random data shuffling (default 1).
       
       -doNotMakeSplitPointActualValue
        Do not make split point actual value.
       
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class AbstractClassifier
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the Classifier.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class AbstractClassifier
      Returns:
      an array of strings suitable for passing to setOptions
    • toString

      public String toString()
      Returns a description of the classifier
      Overrides:
      toString in class Object
      Returns:
      a string representation of the classifier
    • toSummaryString

      public String toSummaryString()
      Returns a superconcise version of the model
      Specified by:
      toSummaryString in interface Summarizable
      Returns:
      a concise version of the model
    • measureNumRules

      public double measureNumRules()
      Return the number of rules.
      Returns:
      the number of rules
    • enumerateMeasures

      public Enumeration<String> enumerateMeasures()
      Returns an enumeration of the additional measure names
      Specified by:
      enumerateMeasures in interface AdditionalMeasureProducer
      Returns:
      an enumeration of the measure names
    • getMeasure

      public double getMeasure(String additionalMeasureName)
      Returns the value of the named measure
      Specified by:
      getMeasure in interface AdditionalMeasureProducer
      Parameters:
      additionalMeasureName - the name of the measure to query for its value
      Returns:
      the value of the named measure
      Throws:
      IllegalArgumentException - if the named measure is not supported
    • confidenceFactorTipText

      public String confidenceFactorTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getConfidenceFactor

      public float getConfidenceFactor()
      Get the value of CF.
      Returns:
      Value of CF.
    • setConfidenceFactor

      public void setConfidenceFactor(float v)
      Set the value of CF.
      Parameters:
      v - Value to assign to CF.
    • minNumObjTipText

      public String minNumObjTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getMinNumObj

      public int getMinNumObj()
      Get the value of minNumObj.
      Returns:
      Value of minNumObj.
    • setMinNumObj

      public void setMinNumObj(int v)
      Set the value of minNumObj.
      Parameters:
      v - Value to assign to minNumObj.
    • reducedErrorPruningTipText

      public String reducedErrorPruningTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getReducedErrorPruning

      public boolean getReducedErrorPruning()
      Get the value of reducedErrorPruning.
      Returns:
      Value of reducedErrorPruning.
    • setReducedErrorPruning

      public void setReducedErrorPruning(boolean v)
      Set the value of reducedErrorPruning.
      Parameters:
      v - Value to assign to reducedErrorPruning.
    • unprunedTipText

      public String unprunedTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getUnpruned

      public boolean getUnpruned()
      Get the value of unpruned.
      Returns:
      Value of unpruned.
    • setUnpruned

      public void setUnpruned(boolean newunpruned)
      Set the value of unpruned.
      Parameters:
      newunpruned - Value to assign to unpruned.
    • useMDLcorrectionTipText

      public String useMDLcorrectionTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getUseMDLcorrection

      public boolean getUseMDLcorrection()
      Get the value of useMDLcorrection.
      Returns:
      Value of useMDLcorrection.
    • setUseMDLcorrection

      public void setUseMDLcorrection(boolean newuseMDLcorrection)
      Set the value of useMDLcorrection.
      Parameters:
      newuseMDLcorrection - Value to assign to useMDLcorrection.
    • numFoldsTipText

      public String numFoldsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getNumFolds

      public int getNumFolds()
      Get the value of numFolds.
      Returns:
      Value of numFolds.
    • setNumFolds

      public void setNumFolds(int v)
      Set the value of numFolds.
      Parameters:
      v - Value to assign to numFolds.
    • seedTipText

      public String seedTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSeed

      public int getSeed()
      Get the value of Seed.
      Returns:
      Value of Seed.
    • setSeed

      public void setSeed(int newSeed)
      Set the value of Seed.
      Parameters:
      newSeed - Value to assign to Seed.
    • binarySplitsTipText

      public String binarySplitsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getBinarySplits

      public boolean getBinarySplits()
      Get the value of binarySplits.
      Returns:
      Value of binarySplits.
    • setBinarySplits

      public void setBinarySplits(boolean v)
      Set the value of binarySplits.
      Parameters:
      v - Value to assign to binarySplits.
    • doNotMakeSplitPointActualValueTipText

      public String doNotMakeSplitPointActualValueTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getDoNotMakeSplitPointActualValue

      public boolean getDoNotMakeSplitPointActualValue()
      Gets the value of doNotMakeSplitPointActualValue.
      Returns:
      the value
    • setDoNotMakeSplitPointActualValue

      public void setDoNotMakeSplitPointActualValue(boolean m_doNotMakeSplitPointActualValue)
      Sets the value of doNotMakeSplitPointActualValue.
      Parameters:
      m_doNotMakeSplitPointActualValue - the value to set
    • getRevision

      public 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(String[] argv)
      Main method for testing this class.
      Parameters:
      argv - command line options