weka.classifiers.rules
Class Ridor

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

public class Ridor
extends AbstractClassifier
implements AdditionalMeasureProducer, WeightedInstancesHandler

An implementation of a RIpple-DOwn Rule learner.

It generates a default rule first and then the exceptions for the default rule with the least (weighted) error rate. Then it generates the "best" exceptions for each exception and iterates until pure. Thus it performs a tree-like expansion of exceptions.The exceptions are a set of rules that predict classes other than the default. IREP is used to generate the exceptions.

For more information about Ripple-Down Rules, see:

Brian R. Gaines, Paul Compton (1995). Induction of Ripple-Down Rules Applied to Modeling Large Databases. J. Intell. Inf. Syst.. 5(3):211-228.

There are five inner classes defined in this class.
The first is Ridor_node, which implements one node in the Ridor tree. It's basically composed of a default class and a set of exception rules to the default class.
The second inner class is RidorRule, which implements a single exception rule using REP.
The last three inner classes are only used in RidorRule. They are Antd, NumericAntd and NominalAntd, which all implement a single antecedent in the RidorRule.
The Antd class is an abstract class, which has two subclasses, NumericAntd and NominalAntd, to implement the corresponding abstract functions. These two subclasses implement the functions related to a antecedent with a nominal attribute and a numeric attribute respectively.

Valid options are:

 -F <number of folds>
  Set number of folds for IREP
  One fold is used as pruning set.
  (default 3)
 -S <number of shuffles>
  Set number of shuffles to randomize
  the data in order to get better rule.
  (default 10)
 -A
  Set flag of whether use the error rate 
  of all the data to select the default class
  in each step. If not set, the learner will only use the error rate in the pruning data
 -M
   Set flag of whether use the majority class as
  the default class in each step instead of 
  choosing default class based on the error rate
  (if the flag is not set)
 -N <min. weights>
  Set the minimal weights of instances
  within a split.
  (default 2.0)

Version:
$Revision: 5928 $
Author:
Xin XU (xx5@cs.waikato.ac.nz)
See Also:
Serialized Form

Constructor Summary
Ridor()
           
 
Method Summary
 void buildClassifier(Instances instances)
          Builds a ripple-down manner rule learner.
 double classifyInstance(Instance datum)
          Classify the test instance with the rule learner
 java.util.Enumeration enumerateMeasures()
          Returns an enumeration of the additional measure names
 java.lang.String foldsTipText()
          Returns the tip text for this property
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 int getFolds()
           
 boolean getMajorityClass()
           
 double getMeasure(java.lang.String additionalMeasureName)
          Returns the value of the named measure
 double getMinNo()
           
 java.lang.String[] getOptions()
          Gets the current settings of the Classifier.
 java.lang.String getRevision()
          Returns the revision string.
 int getSeed()
           
 int getShuffle()
           
 boolean getWholeDataErr()
           
 java.lang.String globalInfo()
          Returns a string describing classifier
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options Valid options are:
static void main(java.lang.String[] args)
          Main method.
 java.lang.String majorityClassTipText()
          Returns the tip text for this property
 java.lang.String minNoTipText()
          Returns the tip text for this property
 java.lang.String seedTipText()
          Returns the tip text for this property
 void setFolds(int fold)
           
 void setMajorityClass(boolean m)
           
 void setMinNo(double m)
           
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setSeed(int s)
           
 void setShuffle(int sh)
           
 void setWholeDataErr(boolean a)
           
 java.lang.String shuffleTipText()
          Returns the tip text for this property
 java.lang.String toString()
          Prints the all the rules of the rule learner.
 java.lang.String wholeDataErrTipText()
          Returns the tip text for this property
 
Methods inherited from class weka.classifiers.AbstractClassifier
debugTipText, distributionForInstance, forName, getDebug, makeCopies, makeCopy, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Ridor

public Ridor()
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing classifier

Returns:
a description suitable for displaying in the explorer/experimenter gui

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
Builds a ripple-down manner rule learner.

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

classifyInstance

public double classifyInstance(Instance datum)
Classify the test instance with the rule learner

Specified by:
classifyInstance in interface Classifier
Overrides:
classifyInstance in class AbstractClassifier
Parameters:
datum - the instance to be classified
Returns:
the classification

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options Valid options are:

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

-S number
Set number of shuffles for randomization. (Default: 10)

-A
Set flag of whether use the error rate of all the data to select the default class in each step. If not set, the learner will only use the error rate in the pruning data

-M
Set flag of whether use the majority class as the default class in each step instead of choosing default class based on the error rate (if the flag is not set)

-N number
Set the minimal weights of instances within a split. (Default: 2)

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:

 -F <number of folds>
  Set number of folds for IREP
  One fold is used as pruning set.
  (default 3)
 -S <number of shuffles>
  Set number of shuffles to randomize
  the data in order to get better rule.
  (default 10)
 -A
  Set flag of whether use the error rate 
  of all the data to select the default class
  in each step. If not set, the learner will only use the error rate in the pruning data
 -M
   Set flag of whether use the majority class as
  the default class in each step instead of 
  choosing default class based on the error rate
  (if the flag is not set)
 -N <min. weights>
  Set the minimal weights of instances
  within a split.
  (default 2.0)

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

foldsTipText

public java.lang.String foldsTipText()
Returns the tip text for this property

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

setFolds

public void setFolds(int fold)

getFolds

public int getFolds()

shuffleTipText

public java.lang.String shuffleTipText()
Returns the tip text for this property

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

setShuffle

public void setShuffle(int sh)

getShuffle

public int getShuffle()

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

setSeed

public void setSeed(int s)

getSeed

public int getSeed()

wholeDataErrTipText

public java.lang.String wholeDataErrTipText()
Returns the tip text for this property

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

setWholeDataErr

public void setWholeDataErr(boolean a)

getWholeDataErr

public boolean getWholeDataErr()

majorityClassTipText

public java.lang.String majorityClassTipText()
Returns the tip text for this property

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

setMajorityClass

public void setMajorityClass(boolean m)

getMajorityClass

public boolean getMajorityClass()

minNoTipText

public java.lang.String minNoTipText()
Returns the tip text for this property

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

setMinNo

public void setMinNo(double m)

getMinNo

public double getMinNo()

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

toString

public java.lang.String toString()
Prints the all the rules of the rule learner.

Overrides:
toString in class java.lang.Object
Returns:
a textual description of the classifier

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.

Parameters:
args - the options for the classifier