Package weka.classifiers.meta
Class AttributeSelectedClassifier
- java.lang.Object
-
- weka.classifiers.AbstractClassifier
-
- weka.classifiers.SingleClassifierEnhancer
-
- weka.classifiers.meta.AttributeSelectedClassifier
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,Classifier,AdditionalMeasureProducer,BatchPredictor,CapabilitiesHandler,CapabilitiesIgnorer,CommandlineRunnable,Drawable,OptionHandler,RevisionHandler,WeightedInstancesHandler
public class AttributeSelectedClassifier extends SingleClassifierEnhancer implements OptionHandler, Drawable, AdditionalMeasureProducer, WeightedInstancesHandler
Dimensionality of training and test data is reduced by attribute selection before being passed on to a classifier. Valid options are:-E <attribute evaluator specification> Full class name of attribute evaluator, followed by its options. eg: "weka.attributeSelection.CfsSubsetEval -L" (default weka.attributeSelection.CfsSubsetEval)
-S <search method specification> Full class name of search method, followed by its options. eg: "weka.attributeSelection.BestFirst -D 1" (default weka.attributeSelection.BestFirst)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.trees.J48)
Options specific to classifier weka.classifiers.trees.J48:
-U Use unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-R Use reduced error pruning.
-N <number of folds> Set number of folds for reduced error pruning. One fold is used as pruning set. (default 3)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities.
-Q <seed> Seed for random data shuffling (default 1).
- Version:
- $Revision: 14259 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class weka.classifiers.AbstractClassifier
BATCH_SIZE_DEFAULT, NUM_DECIMAL_PLACES_DEFAULT
-
Fields inherited from interface weka.core.Drawable
BayesNet, Newick, NOT_DRAWABLE, TREE
-
-
Constructor Summary
Constructors Constructor Description AttributeSelectedClassifier()Default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringbatchSizeTipText()Tool tip text for this propertyvoidbuildClassifier(Instances data)Build the classifier on the dimensionally reduced data.double[]distributionForInstance(Instance instance)Classifies a given instance after attribute selectiondouble[][]distributionsForInstances(Instances insts)Batch scoring method.java.util.Enumeration<java.lang.String>enumerateMeasures()Returns an enumeration of the additional measure namesjava.lang.StringevaluatorTipText()Returns the tip text for this propertyjava.lang.StringgetBatchSize()Gets the preferred batch size from the base learner if it implements BatchPredictor.CapabilitiesgetCapabilities()Returns default capabilities of the classifier.ASEvaluationgetEvaluator()Gets the attribute evaluator useddoublegetMeasure(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 search method usedjava.lang.StringglobalInfo()Returns a string describing this search methodjava.lang.Stringgraph()Returns graph describing the classifier (if possible).intgraphType()Returns the type of graph this classifier represents.booleanimplementsMoreEfficientBatchPrediction()Returns true if the base classifier implements BatchPredictor and is able to generate batch predictions efficientlyjava.util.Enumeration<Option>listOptions()Returns an enumeration describing the available options.static voidmain(java.lang.String[] argv)Main method for testing this class.doublemeasureNumAttributesSelected()Additional measure --- number of attributes selecteddoublemeasureSelectionTime()Additional measure --- time taken (milliseconds) to select the attributesdoublemeasureTime()Additional measure --- time taken (milliseconds) to select attributes and build the classifierjava.lang.StringsearchTipText()Returns the tip text for this propertyvoidsetBatchSize(java.lang.String size)Set the batch size to use.voidsetEvaluator(ASEvaluation evaluator)Sets the attribute evaluatorvoidsetOptions(java.lang.String[] options)Parses a given list of options.voidsetSearch(ASSearch search)Sets the search methodjava.lang.StringtoString()Output a representation of this classifier-
Methods inherited from class weka.classifiers.SingleClassifierEnhancer
classifierTipText, getClassifier, postExecution, preExecution, setClassifier
-
Methods inherited from class weka.classifiers.AbstractClassifier
classifyInstance, debugTipText, doNotCheckCapabilitiesTipText, forName, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this search method- Returns:
- a description of the search method suitable for displaying in the explorer/experimenter gui
-
listOptions
public java.util.Enumeration<Option> listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptionsin interfaceOptionHandler- Overrides:
listOptionsin classSingleClassifierEnhancer- Returns:
- an enumeration of all the available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.ExceptionParses a given list of options. Valid options are:-E <attribute evaluator specification> Full class name of attribute evaluator, followed by its options. eg: "weka.attributeSelection.CfsSubsetEval -L" (default weka.attributeSelection.CfsSubsetEval)
-S <search method specification> Full class name of search method, followed by its options. eg: "weka.attributeSelection.BestFirst -D 1" (default weka.attributeSelection.BestFirst)
-D If set, classifier is run in debug mode and may output additional info to the console
-W Full name of base classifier. (default: weka.classifiers.trees.J48)
Options specific to classifier weka.classifiers.trees.J48:
-U Use unpruned tree.
-C <pruning confidence> Set confidence threshold for pruning. (default 0.25)
-M <minimum number of instances> Set minimum number of instances per leaf. (default 2)
-R Use reduced error pruning.
-N <number of folds> Set number of folds for reduced error pruning. One fold is used as pruning set. (default 3)
-B Use binary splits only.
-S Don't perform subtree raising.
-L Do not clean up after the tree has been built.
-A Laplace smoothing for predicted probabilities.
-Q <seed> Seed for random data shuffling (default 1).
- Specified by:
setOptionsin interfaceOptionHandler- Overrides:
setOptionsin classSingleClassifierEnhancer- 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 classSingleClassifierEnhancer- Returns:
- an array of strings suitable for passing to setOptions
-
evaluatorTipText
public java.lang.String evaluatorTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setEvaluator
public void setEvaluator(ASEvaluation evaluator)
Sets the attribute evaluator- Parameters:
evaluator- the evaluator with all options set.
-
getEvaluator
public ASEvaluation getEvaluator()
Gets the attribute evaluator used- Returns:
- the attribute evaluator
-
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- Parameters:
search- the search method with all options set.
-
getSearch
public ASSearch getSearch()
Gets the search method used- Returns:
- the search method
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilitiesin interfaceCapabilitiesHandler- Specified by:
getCapabilitiesin interfaceClassifier- Overrides:
getCapabilitiesin classSingleClassifierEnhancer- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws java.lang.Exception
Build the classifier on the dimensionally reduced data.- Specified by:
buildClassifierin interfaceClassifier- Parameters:
data- the training data- Throws:
java.lang.Exception- if the classifier could not be built successfully
-
distributionForInstance
public double[] distributionForInstance(Instance instance) throws java.lang.Exception
Classifies a given instance after attribute selection- Specified by:
distributionForInstancein interfaceClassifier- Overrides:
distributionForInstancein classAbstractClassifier- Parameters:
instance- the instance to be classified- Returns:
- the class distribution
- Throws:
java.lang.Exception- if instance could not be classified successfully
-
batchSizeTipText
public java.lang.String batchSizeTipText()
Tool tip text for this property- Overrides:
batchSizeTipTextin classAbstractClassifier- Returns:
- the tool tip for this property
-
setBatchSize
public void setBatchSize(java.lang.String size)
Set the batch size to use. Gets passed through to the base learner if it implements BatchPredictor. Otherwise it is just ignored.- Specified by:
setBatchSizein interfaceBatchPredictor- Overrides:
setBatchSizein classAbstractClassifier- Parameters:
size- the batch size to use
-
getBatchSize
public java.lang.String getBatchSize()
Gets the preferred batch size from the base learner if it implements BatchPredictor. Returns 1 as the preferred batch size otherwise.- Specified by:
getBatchSizein interfaceBatchPredictor- Overrides:
getBatchSizein classAbstractClassifier- Returns:
- the batch size to use
-
distributionsForInstances
public double[][] distributionsForInstances(Instances insts) throws java.lang.Exception
Batch scoring method. Calls the appropriate method for the base learner if it implements BatchPredictor. Otherwise it simply calls the distributionForInstance() method repeatedly.- Specified by:
distributionsForInstancesin interfaceBatchPredictor- Overrides:
distributionsForInstancesin classAbstractClassifier- Parameters:
insts- the instances to get predictions for- Returns:
- an array of probability distributions, one for each instance
- Throws:
java.lang.Exception- if a problem occurs
-
implementsMoreEfficientBatchPrediction
public boolean implementsMoreEfficientBatchPrediction()
Returns true if the base classifier implements BatchPredictor and is able to generate batch predictions efficiently- Specified by:
implementsMoreEfficientBatchPredictionin interfaceBatchPredictor- Overrides:
implementsMoreEfficientBatchPredictionin classAbstractClassifier- Returns:
- true if the base classifier can generate batch predictions efficiently
-
graphType
public int graphType()
Returns the type of graph this classifier represents.
-
graph
public java.lang.String graph() throws java.lang.ExceptionReturns graph describing the classifier (if possible).
-
toString
public java.lang.String toString()
Output a representation of this classifier- Overrides:
toStringin classjava.lang.Object- Returns:
- a representation of this classifier
-
measureNumAttributesSelected
public double measureNumAttributesSelected()
Additional measure --- number of attributes selected- Returns:
- the number of attributes selected
-
measureSelectionTime
public double measureSelectionTime()
Additional measure --- time taken (milliseconds) to select the attributes- Returns:
- the time taken to select attributes
-
measureTime
public double measureTime()
Additional measure --- time taken (milliseconds) to select attributes and build the classifier- Returns:
- the total time (select attributes + build classifier)
-
enumerateMeasures
public java.util.Enumeration<java.lang.String> 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
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Overrides:
getRevisionin classAbstractClassifier- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
Main method for testing this class.- Parameters:
argv- should contain the following arguments: -t training file [-T test file] [-c class index]
-
-