public class DecisionTable extends AbstractClassifier implements OptionHandler, WeightedInstancesHandler, AdditionalMeasureProducer, TechnicalInformationHandler
@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)
Modifier and Type | Field and Description |
---|---|
static int |
EVAL_ACCURACY |
static int |
EVAL_AUC |
static int |
EVAL_DEFAULT
default is accuracy for discrete class and RMSE for numeric class
|
static int |
EVAL_MAE |
static int |
EVAL_RMSE |
static Tag[] |
TAGS_EVALUATION |
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
Constructor and Description |
---|
DecisionTable()
Constructor for a DecisionTable
|
Modifier and Type | Method and Description |
---|---|
void |
buildClassifier(Instances data)
Generates the classifier.
|
java.lang.String |
crossValTipText()
Returns the tip text for this property
|
java.lang.String |
displayRulesTipText()
Returns the tip text for this property
|
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance.
|
java.util.Enumeration<java.lang.String> |
enumerateMeasures()
Returns an enumeration of the additional measure names
|
java.lang.String |
evaluationMeasureTipText()
Returns the tip text for this property
|
Capabilities |
getCapabilities()
Returns default capabilities of the classifier.
|
int |
getCrossVal()
Gets the number of folds for cross validation
|
boolean |
getDisplayRules()
Gets whether rules are being printed
|
SelectedTag |
getEvaluationMeasure()
Gets the currently set performance evaluation measure used for selecting
attributes for the decision table
|
double |
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measure
|
java.lang.String[] |
getOptions()
Gets the current settings of the classifier.
|
java.lang.String |
getRevision()
Returns the revision string.
|
ASSearch |
getSearch()
Gets the current search method
|
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.
|
boolean |
getUseIBk()
Gets whether IBk is being used instead of the majority class
|
java.lang.String |
globalInfo()
Returns a string describing classifier
|
java.util.Enumeration<Option> |
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 rules
|
java.lang.String |
printFeatures()
Returns a string description of the features selected
|
java.lang.String |
searchTipText()
Returns the tip text for this property
|
void |
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 printed
|
void |
setEvaluationMeasure(SelectedTag newMethod)
Sets the performance evaluation measure to use for selecting attributes for
the decision table
|
void |
setOptions(java.lang.String[] options)
Parses the options for this object.
|
void |
setSearch(ASSearch search)
Sets the search method to use
|
void |
setUseIBk(boolean ibk)
Sets whether IBk should be used instead of the majority class
|
java.lang.String |
toString()
Returns a description of the classifier.
|
java.lang.String |
useIBkTipText()
Returns the tip text for this property
|
batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, postExecution, preExecution, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
makeCopy
public static final int EVAL_DEFAULT
public static final int EVAL_ACCURACY
public static final int EVAL_RMSE
public static final int EVAL_MAE
public static final int EVAL_AUC
public static final Tag[] TAGS_EVALUATION
public java.lang.String globalInfo()
public TechnicalInformation getTechnicalInformation()
getTechnicalInformation
in interface TechnicalInformationHandler
public java.util.Enumeration<Option> listOptions()
listOptions
in interface OptionHandler
listOptions
in class AbstractClassifier
public java.lang.String crossValTipText()
public void setCrossVal(int folds)
folds
- the number of foldspublic int getCrossVal()
public java.lang.String useIBkTipText()
public void setUseIBk(boolean ibk)
ibk
- true if IBk is to be usedpublic boolean getUseIBk()
public java.lang.String displayRulesTipText()
public void setDisplayRules(boolean rules)
rules
- true if rules are to be printedpublic boolean getDisplayRules()
public java.lang.String searchTipText()
public void setSearch(ASSearch search)
search
- public ASSearch getSearch()
public java.lang.String evaluationMeasureTipText()
public SelectedTag getEvaluationMeasure()
public void setEvaluationMeasure(SelectedTag newMethod)
newMethod
- the new performance evaluation metric to usepublic void setOptions(java.lang.String[] options) throws java.lang.Exception
-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)
setOptions
in interface OptionHandler
setOptions
in class AbstractClassifier
options
- the list of options as an array of stringsjava.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class AbstractClassifier
public Capabilities getCapabilities()
getCapabilities
in interface Classifier
getCapabilities
in interface CapabilitiesHandler
getCapabilities
in class AbstractClassifier
Capabilities
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in interface Classifier
data
- set of instances serving as training datajava.lang.Exception
- if the classifier has not been generated successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in interface Classifier
distributionForInstance
in class AbstractClassifier
instance
- the instance to be classifiedjava.lang.Exception
- if distribution can't be computedpublic java.lang.String printFeatures()
public double measureNumRules()
public java.util.Enumeration<java.lang.String> enumerateMeasures()
enumerateMeasures
in interface AdditionalMeasureProducer
public double getMeasure(java.lang.String additionalMeasureName)
getMeasure
in interface AdditionalMeasureProducer
additionalMeasureName
- the name of the measure to query for its valuejava.lang.IllegalArgumentException
- if the named measure is not supportedpublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()
getRevision
in interface RevisionHandler
getRevision
in class AbstractClassifier
public static void main(java.lang.String[] argv)
argv
- the command-line options