Package weka.attributeSelection
Class WrapperSubsetEval
- java.lang.Object
-
- weka.attributeSelection.ASEvaluation
-
- weka.attributeSelection.WrapperSubsetEval
-
- All Implemented Interfaces:
java.io.Serializable,SubsetEvaluator,CapabilitiesHandler,OptionHandler,RevisionHandler,TechnicalInformationHandler
public class WrapperSubsetEval extends ASEvaluation implements SubsetEvaluator, OptionHandler, TechnicalInformationHandler
WrapperSubsetEval:
Evaluates attribute sets by using a learning scheme. Cross validation is used to estimate the accuracy of the learning scheme for a set of attributes.
For more information see:
Ron Kohavi, George H. John (1997). Wrappers for feature subset selection. Artificial Intelligence. 97(1-2):273-324. BibTeX:@article{Kohavi1997, author = {Ron Kohavi and George H. John}, journal = {Artificial Intelligence}, note = {Special issue on relevance}, number = {1-2}, pages = {273-324}, title = {Wrappers for feature subset selection}, volume = {97}, year = {1997}, ISSN = {0004-3702} }Valid options are:-B <base learner> class name of base learner to use for accuracy estimation. Place any classifier options LAST on the command line following a "--". eg.: -B weka.classifiers.bayes.NaiveBayes ... -- -K (default: weka.classifiers.rules.ZeroR)
-F <num> number of cross validation folds to use for estimating accuracy. (default=5)
-R <seed> Seed for cross validation accuracy testimation. (default = 1)
-T <num> threshold by which to execute another cross validation (standard deviation---expressed as a percentage of the mean). (default: 0.01 (1%))
Options specific to scheme weka.classifiers.rules.ZeroR:
-D If set, classifier is run in debug mode and may output additional info to the console
- Version:
- $Revision: 11851 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description WrapperSubsetEval()Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuildEvaluator(Instances data)Generates a attribute evaluator.java.lang.StringclassifierTipText()Returns the tip text for this propertyvoidclean()Tells the evaluator that the attribute selection process is complete.doubleevaluateSubset(java.util.BitSet subset)Evaluates a subset of attributesjava.lang.StringfoldsTipText()Returns the tip text for this propertyCapabilitiesgetCapabilities()Returns the capabilities of this evaluator.ClassifiergetClassifier()Get the classifier used as the base learner.intgetFolds()Get the number of folds used for accuracy estimationjava.lang.String[]getOptions()Gets the current settings of WrapperSubsetEval.java.lang.StringgetRevision()Returns the revision string.intgetSeed()Get the random number seed used for cross validationTechnicalInformationgetTechnicalInformation()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.doublegetThreshold()Get the value of the thresholdjava.lang.StringglobalInfo()Returns a string describing this attribute evaluatorjava.util.EnumerationlistOptions()Returns an enumeration describing the available options.static voidmain(java.lang.String[] args)Main method for testing this class.java.lang.StringseedTipText()Returns the tip text for this propertyvoidsetClassifier(Classifier newClassifier)Set the classifier to use for accuracy estimationvoidsetFolds(int f)Set the number of folds to use for accuracy estimationvoidsetOptions(java.lang.String[] options)Parses a given list of options.voidsetSeed(int s)Set the seed to use for cross validationvoidsetThreshold(double t)Set the value of the threshold for repeating cross validationjava.lang.StringthresholdTipText()Returns the tip text for this propertyjava.lang.StringtoString()Returns a string describing the wrapper-
Methods inherited from class weka.attributeSelection.ASEvaluation
forName, makeCopies, postProcess
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this attribute evaluator- Returns:
- a description of the evaluator 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- 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:-B <base learner> class name of base learner to use for accuracy estimation. Place any classifier options LAST on the command line following a "--". eg.: -B weka.classifiers.bayes.NaiveBayes ... -- -K (default: weka.classifiers.rules.ZeroR)
-F <num> number of cross validation folds to use for estimating accuracy. (default=5)
-R <seed> Seed for cross validation accuracy testimation. (default = 1)
-T <num> threshold by which to execute another cross validation (standard deviation---expressed as a percentage of the mean). (default: 0.01 (1%))
Options specific to scheme weka.classifiers.rules.ZeroR:
-D If set, classifier is run in debug mode and may output additional info to the console
- Specified by:
setOptionsin interfaceOptionHandler- Parameters:
options- the list of options as an array of strings- Throws:
java.lang.Exception- if an option is not supported
-
thresholdTipText
public java.lang.String thresholdTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setThreshold
public void setThreshold(double t)
Set the value of the threshold for repeating cross validation- Parameters:
t- the value of the threshold
-
getThreshold
public double getThreshold()
Get the value of the threshold- Returns:
- the threshold as a double
-
foldsTipText
public java.lang.String foldsTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setFolds
public void setFolds(int f)
Set the number of folds to use for accuracy estimation- Parameters:
f- the number of folds
-
getFolds
public int getFolds()
Get the number of folds used for accuracy estimation- Returns:
- the number of folds
-
seedTipText
public java.lang.String seedTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSeed
public void setSeed(int s)
Set the seed to use for cross validation- Parameters:
s- the seed
-
getSeed
public int getSeed()
Get the random number seed used for cross validation- Returns:
- the seed
-
classifierTipText
public java.lang.String classifierTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setClassifier
public void setClassifier(Classifier newClassifier)
Set the classifier to use for accuracy estimation- Parameters:
newClassifier- the Classifier to use.
-
getClassifier
public Classifier getClassifier()
Get the classifier used as the base learner.- Returns:
- the classifier used as the classifier
-
getOptions
public java.lang.String[] getOptions()
Gets the current settings of WrapperSubsetEval.- Specified by:
getOptionsin interfaceOptionHandler- Returns:
- an array of strings suitable for passing to setOptions()
-
getCapabilities
public Capabilities getCapabilities()
Returns the capabilities of this evaluator.- Specified by:
getCapabilitiesin interfaceCapabilitiesHandler- Overrides:
getCapabilitiesin classASEvaluation- Returns:
- the capabilities of this evaluator
- See Also:
Capabilities
-
buildEvaluator
public void buildEvaluator(Instances data) throws java.lang.Exception
Generates a attribute evaluator. Has to initialize all fields of the evaluator that are not being set via options.- Specified by:
buildEvaluatorin classASEvaluation- Parameters:
data- set of instances serving as training data- Throws:
java.lang.Exception- if the evaluator has not been generated successfully
-
evaluateSubset
public double evaluateSubset(java.util.BitSet subset) throws java.lang.ExceptionEvaluates a subset of attributes- Specified by:
evaluateSubsetin interfaceSubsetEvaluator- Parameters:
subset- a bitset representing the attribute subset to be evaluated- Returns:
- the error rate
- Throws:
java.lang.Exception- if the subset could not be evaluated
-
toString
public java.lang.String toString()
Returns a string describing the wrapper- Overrides:
toStringin classjava.lang.Object- Returns:
- the description as a string
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Overrides:
getRevisionin classASEvaluation- Returns:
- the revision
-
clean
public void clean()
Description copied from class:ASEvaluationTells the evaluator that the attribute selection process is complete. It can then clean up data structures, references to training data as necessary in order to save memory- Overrides:
cleanin classASEvaluation
-
main
public static void main(java.lang.String[] args)
Main method for testing this class.- Parameters:
args- the options
-
-