weka.classifiers.rules
Class PART

java.lang.Object
  extended by weka.classifiers.AbstractClassifier
      extended by weka.classifiers.rules.PART
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Classifier, AdditionalMeasureProducer, CapabilitiesHandler, OptionHandler, RevisionHandler, Summarizable, TechnicalInformationHandler, WeightedInstancesHandler

public class PART
extends AbstractClassifier
implements OptionHandler, WeightedInstancesHandler, Summarizable, AdditionalMeasureProducer, TechnicalInformationHandler

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).

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

Constructor Summary
PART()
           
 
Method Summary
 java.lang.String binarySplitsTipText()
          Returns the tip text for this property
 void buildClassifier(Instances instances)
          Generates the classifier.
 double classifyInstance(Instance instance)
          Classifies an instance.
 java.lang.String confidenceFactorTipText()
          Returns the tip text for this property
 double[] distributionForInstance(Instance instance)
          Returns class probabilities for an instance.
 java.util.Enumeration enumerateMeasures()
          Returns an enumeration of the additional measure names
 boolean getBinarySplits()
          Get the value of binarySplits.
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 float getConfidenceFactor()
          Get the value of CF.
 double getMeasure(java.lang.String additionalMeasureName)
          Returns the value of the named measure
 int getMinNumObj()
          Get the value of minNumObj.
 int getNumFolds()
          Get the value of numFolds.
 java.lang.String[] getOptions()
          Gets the current settings of the Classifier.
 boolean getReducedErrorPruning()
          Get the value of reducedErrorPruning.
 java.lang.String getRevision()
          Returns the revision string.
 int getSeed()
          Get the value of Seed.
 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.
 boolean getUnpruned()
          Get the value of unpruned.
 boolean getUseMDLcorrection()
          Get the value of useMDLcorrection.
 java.lang.String globalInfo()
          Returns a string describing classifier
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] argv)
          Main method for testing this class.
 double measureNumRules()
          Return the number of rules.
 java.lang.String minNumObjTipText()
          Returns the tip text for this property
 java.lang.String numFoldsTipText()
          Returns the tip text for this property
 java.lang.String reducedErrorPruningTipText()
          Returns the tip text for this property
 java.lang.String seedTipText()
          Returns the tip text for this property
 void setBinarySplits(boolean v)
          Set the value of binarySplits.
 void setConfidenceFactor(float v)
          Set the value of CF.
 void setMinNumObj(int v)
          Set the value of minNumObj.
 void setNumFolds(int v)
          Set the value of numFolds.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setReducedErrorPruning(boolean v)
          Set the value of reducedErrorPruning.
 void setSeed(int newSeed)
          Set the value of Seed.
 void setUnpruned(boolean newunpruned)
          Set the value of unpruned.
 void setUseMDLcorrection(boolean newuseMDLcorrection)
          Set the value of useMDLcorrection.
 java.lang.String toString()
          Returns a description of the classifier
 java.lang.String toSummaryString()
          Returns a superconcise version of the model
 java.lang.String unprunedTipText()
          Returns the tip text for this property
 java.lang.String useMDLcorrectionTipText()
          Returns the tip text for this property
 
Methods inherited from class weka.classifiers.AbstractClassifier
debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PART

public PART()
Method Detail

globalInfo

public java.lang.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 Classifier
Specified by:
getCapabilities in interface CapabilitiesHandler
Overrides:
getCapabilities in class AbstractClassifier
Returns:
the capabilities of this classifier
See Also:
Capabilities

buildClassifier

public void buildClassifier(Instances instances)
                     throws java.lang.Exception
Generates the classifier.

Specified by:
buildClassifier in interface Classifier
Parameters:
instances - the data to train with
Throws:
java.lang.Exception - if classifier can't be built successfully

classifyInstance

public double classifyInstance(Instance instance)
                        throws java.lang.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:
java.lang.Exception - if instance can't be classified successfully

distributionForInstance

public final double[] distributionForInstance(Instance instance)
                                       throws java.lang.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:
java.lang.Exception - if the distribution can't be computed successfully

listOptions

public java.util.Enumeration 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(java.lang.String[] options)
                throws java.lang.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).

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class AbstractClassifier
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 AbstractClassifier
Returns:
an array of strings suitable for passing to setOptions

toString

public java.lang.String toString()
Returns a description of the classifier

Overrides:
toString in class java.lang.Object
Returns:
a string representation of the classifier

toSummaryString

public java.lang.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 java.util.Enumeration 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(java.lang.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:
java.lang.IllegalArgumentException - if the named measure is not supported

confidenceFactorTipText

public java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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.

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[] argv)
Main method for testing this class.

Parameters:
argv - command line options