Package weka.classifiers.rules
Class DecisionTable
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.rules.DecisionTable
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,AdditionalMeasureProducer
,CapabilitiesHandler
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
,WeightedInstancesHandler
- Direct Known Subclasses:
DTNB
public class DecisionTable extends Classifier implements OptionHandler, WeightedInstancesHandler, AdditionalMeasureProducer, TechnicalInformationHandler
Class for building and using a simple decision table majority classifier.
For more information see:
Ron Kohavi: The Power of Decision Tables. In: 8th European Conference on Machine Learning, 174-189, 1995. BibTeX:@inproceedings{Kohavi1995, author = {Ron Kohavi}, booktitle = {8th European Conference on Machine Learning}, pages = {174-189}, publisher = {Springer}, title = {The Power of Decision Tables}, year = {1995} }
Valid options are:-S <search method specification> Full class name of search method, followed by its options. eg: "weka.attributeSelection.BestFirst -D 1" (default weka.attributeSelection.BestFirst)
-X <number of folds> Use cross validation to evaluate features. Use number of folds = 1 for leave one out CV. (Default = leave one out CV)
-E <acc | rmse | mae | auc> Performance evaluation measure to use for selecting attributes. (Default = accuracy for discrete class and rmse for numeric class)
-I Use nearest neighbour instead of global table majority.
-R Display decision table rules.
Options specific to search method weka.attributeSelection.BestFirst:
-P <start set> Specify a starting set of attributes. Eg. 1,3,5-7.
-D <0 = backward | 1 = forward | 2 = bi-directional> Direction of search. (default = 1).
-N <num> Number of non-improving nodes to consider before terminating search.
-S <num> Size of lookup cache for evaluated subsets. Expressed as a multiple of the number of attributes in the data set. (default = 1)
- Version:
- $Revision: 12089 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
EVAL_ACCURACY
static int
EVAL_AUC
static int
EVAL_DEFAULT
default is accuracy for discrete class and RMSE for numeric classstatic int
EVAL_MAE
static int
EVAL_RMSE
static Tag[]
TAGS_EVALUATION
-
Constructor Summary
Constructors Constructor Description DecisionTable()
Constructor for a DecisionTable
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildClassifier(Instances data)
Generates the classifier.java.lang.String
crossValTipText()
Returns the tip text for this propertyjava.lang.String
displayRulesTipText()
Returns the tip text for this propertydouble[]
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance.java.util.Enumeration
enumerateMeasures()
Returns an enumeration of the additional measure namesjava.lang.String
evaluationMeasureTipText()
Returns the tip text for this propertyCapabilities
getCapabilities()
Returns default capabilities of the classifier.int
getCrossVal()
Gets the number of folds for cross validationboolean
getDisplayRules()
Gets whether rules are being printedSelectedTag
getEvaluationMeasure()
Gets the currently set performance evaluation measure used for selecting attributes for the decision tabledouble
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measurejava.lang.String[]
getOptions()
Gets the current settings of the classifier.java.lang.String
getRevision()
Returns the revision string.ASSearch
getSearch()
Gets the current search methodTechnicalInformation
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
getUseIBk()
Gets whether IBk is being used instead of the majority classjava.lang.String
globalInfo()
Returns a string describing classifierjava.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()
Returns the number of rulesjava.lang.String
printFeatures()
Returns a string description of the features selectedjava.lang.String
searchTipText()
Returns the tip text for this propertyvoid
setCrossVal(int folds)
Sets the number of folds for cross validation (1 = leave one out)void
setDisplayRules(boolean rules)
Sets whether rules are to be printedvoid
setEvaluationMeasure(SelectedTag newMethod)
Sets the performance evaluation measure to use for selecting attributes for the decision tablevoid
setOptions(java.lang.String[] options)
Parses the options for this object.void
setSearch(ASSearch search)
Sets the search method to usevoid
setUseIBk(boolean ibk)
Sets whether IBk should be used instead of the majority classjava.lang.String
toString()
Returns a description of the classifier.java.lang.String
useIBkTipText()
Returns the tip text for this property-
Methods inherited from class weka.classifiers.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug
-
-
-
-
Field Detail
-
EVAL_DEFAULT
public static final int EVAL_DEFAULT
default is accuracy for discrete class and RMSE for numeric class- See Also:
- Constant Field Values
-
EVAL_ACCURACY
public static final int EVAL_ACCURACY
- See Also:
- Constant Field Values
-
EVAL_RMSE
public static final int EVAL_RMSE
- See Also:
- Constant Field Values
-
EVAL_MAE
public static final int EVAL_MAE
- See Also:
- Constant Field Values
-
EVAL_AUC
public static final int EVAL_AUC
- See Also:
- Constant Field Values
-
TAGS_EVALUATION
public static final Tag[] TAGS_EVALUATION
-
-
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 interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration of all the available options.
-
crossValTipText
public java.lang.String crossValTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setCrossVal
public void setCrossVal(int folds)
Sets the number of folds for cross validation (1 = leave one out)- Parameters:
folds
- the number of folds
-
getCrossVal
public int getCrossVal()
Gets the number of folds for cross validation- Returns:
- the number of cross validation folds
-
useIBkTipText
public java.lang.String useIBkTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setUseIBk
public void setUseIBk(boolean ibk)
Sets whether IBk should be used instead of the majority class- Parameters:
ibk
- true if IBk is to be used
-
getUseIBk
public boolean getUseIBk()
Gets whether IBk is being used instead of the majority class- Returns:
- true if IBk is being used
-
displayRulesTipText
public java.lang.String displayRulesTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setDisplayRules
public void setDisplayRules(boolean rules)
Sets whether rules are to be printed- Parameters:
rules
- true if rules are to be printed
-
getDisplayRules
public boolean getDisplayRules()
Gets whether rules are being printed- Returns:
- true if rules are being printed
-
searchTipText
public java.lang.String searchTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSearch
public void setSearch(ASSearch search)
Sets the search method to use- Parameters:
search
-
-
getSearch
public ASSearch getSearch()
Gets the current search method- Returns:
- the search method used
-
evaluationMeasureTipText
public java.lang.String evaluationMeasureTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getEvaluationMeasure
public SelectedTag getEvaluationMeasure()
Gets the currently set performance evaluation measure used for selecting attributes for the decision table- Returns:
- the performance evaluation measure
-
setEvaluationMeasure
public void setEvaluationMeasure(SelectedTag newMethod)
Sets the performance evaluation measure to use for selecting attributes for the decision table- Parameters:
newMethod
- the new performance evaluation metric to use
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Parses the options for this object. Valid options are:-S <search method specification> Full class name of search method, followed by its options. eg: "weka.attributeSelection.BestFirst -D 1" (default weka.attributeSelection.BestFirst)
-X <number of folds> Use cross validation to evaluate features. Use number of folds = 1 for leave one out CV. (Default = leave one out CV)
-E <acc | rmse | mae | auc> Performance evaluation measure to use for selecting attributes. (Default = accuracy for discrete class and rmse for numeric class)
-I Use nearest neighbour instead of global table majority.
-R Display decision table rules.
Options specific to search method weka.attributeSelection.BestFirst:
-P <start set> Specify a starting set of attributes. Eg. 1,3,5-7.
-D <0 = backward | 1 = forward | 2 = bi-directional> Direction of search. (default = 1).
-N <num> Number of non-improving nodes to consider before terminating search.
-S <num> Size of lookup cache for evaluated subsets. Expressed as a multiple of the number of attributes in the data set. (default = 1)
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- 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 interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws java.lang.Exception
Generates the classifier.- Specified by:
buildClassifier
in classClassifier
- Parameters:
data
- set of instances serving as training data- Throws:
java.lang.Exception
- if the classifier has not been generated successfully
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Calculates the class membership probabilities for the given test instance.- Overrides:
distributionForInstance
in classClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- predicted class probability distribution
- Throws:
java.lang.Exception
- if distribution can't be computed
-
printFeatures
public java.lang.String printFeatures()
Returns a string description of the features selected- Returns:
- a string of features
-
measureNumRules
public double measureNumRules()
Returns 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 interfaceAdditionalMeasureProducer
- 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 interfaceAdditionalMeasureProducer
- 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()
Returns a description of the classifier.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a description of the classifier as a string.
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class.- Parameters:
argv
- the command-line options
-
-