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 intEVAL_ACCURACYstatic intEVAL_AUCstatic intEVAL_DEFAULTdefault is accuracy for discrete class and RMSE for numeric classstatic intEVAL_MAEstatic intEVAL_RMSEstatic 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 voidbuildClassifier(Instances data)Generates the classifier.java.lang.StringcrossValTipText()Returns the tip text for this propertyjava.lang.StringdisplayRulesTipText()Returns the tip text for this propertydouble[]distributionForInstance(Instance instance)Calculates the class membership probabilities for the given test instance.java.util.EnumerationenumerateMeasures()Returns an enumeration of the additional measure namesjava.lang.StringevaluationMeasureTipText()Returns the tip text for this propertyCapabilitiesgetCapabilities()Returns default capabilities of the classifier.intgetCrossVal()Gets the number of folds for cross validationbooleangetDisplayRules()Gets whether rules are being printedSelectedTaggetEvaluationMeasure()Gets the currently set performance evaluation measure used for selecting attributes for the decision tabledoublegetMeasure(java.lang.String additionalMeasureName)Returns the value of the named measurejava.lang.String[]getOptions()Gets the current settings of the classifier.java.lang.StringgetRevision()Returns the revision string.ASSearchgetSearch()Gets the current search methodTechnicalInformationgetTechnicalInformation()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.booleangetUseIBk()Gets whether IBk is being used instead of the majority classjava.lang.StringglobalInfo()Returns a string describing classifierjava.util.EnumerationlistOptions()Returns an enumeration describing the available options.static voidmain(java.lang.String[] argv)Main method for testing this class.doublemeasureNumRules()Returns the number of rulesjava.lang.StringprintFeatures()Returns a string description of the features selectedjava.lang.StringsearchTipText()Returns the tip text for this propertyvoidsetCrossVal(int folds)Sets the number of folds for cross validation (1 = leave one out)voidsetDisplayRules(boolean rules)Sets whether rules are to be printedvoidsetEvaluationMeasure(SelectedTag newMethod)Sets the performance evaluation measure to use for selecting attributes for the decision tablevoidsetOptions(java.lang.String[] options)Parses the options for this object.voidsetSearch(ASSearch search)Sets the search method to usevoidsetUseIBk(boolean ibk)Sets whether IBk should be used instead of the majority classjava.lang.StringtoString()Returns a description of the classifier.java.lang.StringuseIBkTipText()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:
getTechnicalInformationin interfaceTechnicalInformationHandler- Returns:
- the technical information about this class
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptionsin interfaceOptionHandler- Overrides:
listOptionsin 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.ExceptionParses 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:
setOptionsin interfaceOptionHandler- Overrides:
setOptionsin 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:
getOptionsin interfaceOptionHandler- Overrides:
getOptionsin classClassifier- Returns:
- an array of strings suitable for passing to setOptions
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilitiesin interfaceCapabilitiesHandler- Overrides:
getCapabilitiesin 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:
buildClassifierin 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:
distributionForInstancein 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:
enumerateMeasuresin 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:
getMeasurein 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:
toStringin classjava.lang.Object- Returns:
- a description of the classifier as a string.
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Overrides:
getRevisionin 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
-
-