Class Ridor

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

public class Ridor extends Classifier 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: 5529 $
Author:
Xin XU (xx5@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • Ridor

      public Ridor()
  • Method Details

    • globalInfo

      public 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 CapabilitiesHandler
      Overrides:
      getCapabilities in class Classifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances instances) throws Exception
      Builds a ripple-down manner rule learner.
      Specified by:
      buildClassifier in class Classifier
      Parameters:
      instances - the training data
      Throws:
      Exception - if classifier can't be built successfully
    • classifyInstance

      public double classifyInstance(Instance datum)
      Classify the test instance with the rule learner
      Overrides:
      classifyInstance in class Classifier
      Parameters:
      datum - the instance to be classified
      Returns:
      the classification
    • listOptions

      public 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 Classifier
      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:

       -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 Classifier
      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 Classifier
      Returns:
      an array of strings suitable for passing to setOptions
    • foldsTipText

      public 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 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 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 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 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 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 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(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
    • toString

      public String toString()
      Prints the all the rules of the rule learner.
      Overrides:
      toString in class Object
      Returns:
      a textual description of the classifier
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class Classifier
      Returns:
      the revision
    • main

      public static void main(String[] args)
      Main method.
      Parameters:
      args - the options for the classifier