Package weka.classifiers.rules
Class DecisionTable
java.lang.Object
weka.classifiers.AbstractClassifier
weka.classifiers.rules.DecisionTable
- All Implemented Interfaces:
Serializable
,Cloneable
,Classifier
,AdditionalMeasureProducer
,BatchPredictor
,CapabilitiesHandler
,CapabilitiesIgnorer
,CommandlineRunnable
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
,WeightedInstancesHandler
public class DecisionTable
extends AbstractClassifier
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:
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: 15519 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
static final int
default is accuracy for discrete class and RMSE for numeric classstatic final int
static final int
static final Tag[]
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
buildClassifier
(Instances data) Generates the classifier.Returns the tip text for this propertyReturns the tip text for this propertydouble[]
distributionForInstance
(Instance instance) Calculates the class membership probabilities for the given test instance.Returns an enumeration of the additional measure namesReturns the tip text for this propertyReturns default capabilities of the classifier.int
Gets the number of folds for cross validationboolean
Gets whether rules are being printedGets the currently set performance evaluation measure used for selecting attributes for the decision tabledouble
getMeasure
(String additionalMeasureName) Returns the value of the named measureString[]
Gets the current settings of the classifier.Returns the revision string.Gets the current search methodReturns 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
Gets whether IBk is being used instead of the majority classReturns a string describing classifierReturns an enumeration describing the available options.static void
Main method for testing this class.double
Returns the number of rulesReturns a string description of the features selectedReturns 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
(String[] options) Parses the options for this object.void
Sets the search method to usevoid
setUseIBk
(boolean ibk) Sets whether IBk should be used instead of the majority classtoString()
Returns a description of the classifier.Returns the tip text for this propertyMethods inherited from class weka.classifiers.AbstractClassifier
batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
-
Field Details
-
EVAL_DEFAULT
public static final int EVAL_DEFAULTdefault is accuracy for discrete class and RMSE for numeric class- See Also:
-
EVAL_ACCURACY
public static final int EVAL_ACCURACY- See Also:
-
EVAL_RMSE
public static final int EVAL_RMSE- See Also:
-
EVAL_MAE
public static final int EVAL_MAE- See Also:
-
EVAL_AUC
public static final int EVAL_AUC- See Also:
-
TAGS_EVALUATION
-
-
Constructor Details
-
DecisionTable
public DecisionTable()Constructor for a DecisionTable
-
-
Method Details
-
globalInfo
Returns a string describing classifier- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
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
Returns an enumeration describing the available options.- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classAbstractClassifier
- Returns:
- an enumeration of all the available options.
-
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
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
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
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSearch
Sets the search method to use- Parameters:
search
-
-
getSearch
Gets the current search method- Returns:
- the search method used
-
evaluationMeasureTipText
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getEvaluationMeasure
Gets the currently set performance evaluation measure used for selecting attributes for the decision table- Returns:
- the performance evaluation measure
-
setEvaluationMeasure
Sets the performance evaluation measure to use for selecting attributes for the decision table- Parameters:
newMethod
- the new performance evaluation metric to use
-
setOptions
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 classAbstractClassifier
- Parameters:
options
- the list of options as an array of strings- Throws:
Exception
- if an option is not supported
-
getOptions
Gets the current settings of the classifier.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classAbstractClassifier
- Returns:
- an array of strings suitable for passing to setOptions
-
getCapabilities
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Specified by:
getCapabilities
in interfaceClassifier
- Overrides:
getCapabilities
in classAbstractClassifier
- Returns:
- the capabilities of this classifier
- See Also:
-
buildClassifier
Generates the classifier.- Specified by:
buildClassifier
in interfaceClassifier
- Parameters:
data
- set of instances serving as training data- Throws:
Exception
- if the classifier has not been generated successfully
-
distributionForInstance
Calculates the class membership probabilities for the given test instance.- Specified by:
distributionForInstance
in interfaceClassifier
- Overrides:
distributionForInstance
in classAbstractClassifier
- Parameters:
instance
- the instance to be classified- Returns:
- predicted class probability distribution
- Throws:
Exception
- if distribution can't be computed
-
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
Returns an enumeration of the additional measure names- Specified by:
enumerateMeasures
in interfaceAdditionalMeasureProducer
- Returns:
- an enumeration of the measure names
-
getMeasure
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:
IllegalArgumentException
- if the named measure is not supported
-
toString
Returns a description of the classifier. -
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classAbstractClassifier
- Returns:
- the revision
-
main
Main method for testing this class.- Parameters:
argv
- the command-line options
-