Package weka.attributeSelection
Class ClassifierSubsetEval
- java.lang.Object
-
- weka.attributeSelection.ASEvaluation
-
- weka.attributeSelection.HoldOutSubsetEvaluator
-
- weka.attributeSelection.ClassifierSubsetEval
-
- All Implemented Interfaces:
java.io.Serializable,ErrorBasedMeritEvaluator,SubsetEvaluator,CapabilitiesHandler,OptionHandler,RevisionHandler
public class ClassifierSubsetEval extends HoldOutSubsetEvaluator implements OptionHandler, ErrorBasedMeritEvaluator
Classifier subset evaluator:
Evaluates attribute subsets on training data or a seperate hold out testing set. Uses a classifier to estimate the 'merit' of a set of attributes. Valid options are:-B <classifier> class name of the classifier 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)
-T Use the training data to estimate accuracy.
-H <filename> Name of the hold out/test set to estimate accuracy on.
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: 5511 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ClassifierSubsetEval()
-
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 propertydoubleevaluateSubset(java.util.BitSet subset)Evaluates a subset of attributesdoubleevaluateSubset(java.util.BitSet subset, Instance holdOut, boolean retrain)Evaluates a subset of attributes with respect to a single instance.doubleevaluateSubset(java.util.BitSet subset, Instances holdOut)Evaluates a subset of attributes with respect to a set of instances.CapabilitiesgetCapabilities()Returns the capabilities of this evaluator.ClassifiergetClassifier()Get the classifier used as the base learner.java.io.FilegetHoldOutFile()Gets the file that holds hold out/test instances.java.lang.String[]getOptions()Gets the current settings of ClassifierSubsetEvaljava.lang.StringgetRevision()Returns the revision string.booleangetUseTraining()Get if training data is to be used instead of hold out/test datajava.lang.StringglobalInfo()Returns a string describing this attribute evaluatorjava.lang.StringholdOutFileTipText()Returns the tip text for this propertyjava.util.EnumerationlistOptions()Returns an enumeration describing the available options.static voidmain(java.lang.String[] args)Main method for testing this class.voidsetClassifier(Classifier newClassifier)Set the classifier to use for accuracy estimationvoidsetHoldOutFile(java.io.File h)Set the file that contains hold out/test instancesvoidsetOptions(java.lang.String[] options)Parses a given list of options.voidsetUseTraining(boolean t)Set if training data is to be used instead of hold out/test datajava.lang.StringtoString()Returns a string describing classifierSubsetEvaljava.lang.StringuseTrainingTipText()Returns the tip text for this property-
Methods inherited from class weka.attributeSelection.ASEvaluation
clean, 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
-
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 <classifier> class name of the classifier 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)
-T Use the training data to estimate accuracy.
-H <filename> Name of the hold out/test set to estimate accuracy on.
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
-
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
-
holdOutFileTipText
public java.lang.String holdOutFileTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getHoldOutFile
public java.io.File getHoldOutFile()
Gets the file that holds hold out/test instances.- Returns:
- File that contains hold out instances
-
setHoldOutFile
public void setHoldOutFile(java.io.File h)
Set the file that contains hold out/test instances- Parameters:
h- the hold out file
-
useTrainingTipText
public java.lang.String useTrainingTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getUseTraining
public boolean getUseTraining()
Get if training data is to be used instead of hold out/test data- Returns:
- true if training data is to be used instead of hold out data
-
setUseTraining
public void setUseTraining(boolean t)
Set if training data is to be used instead of hold out/test data- Parameters:
t- true if training data is to be used instead of hold out data
-
getOptions
public java.lang.String[] getOptions()
Gets the current settings of ClassifierSubsetEval- 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
-
evaluateSubset
public double evaluateSubset(java.util.BitSet subset, Instances holdOut) throws java.lang.ExceptionEvaluates a subset of attributes with respect to a set of instances. Calling this function overides any test/hold out instancs set from setHoldOutFile.- Specified by:
evaluateSubsetin classHoldOutSubsetEvaluator- Parameters:
subset- a bitset representing the attribute subset to be evaluatedholdOut- a set of instances (possibly seperate and distinct from those use to build/train the evaluator) with which to evaluate the merit of the subset- Returns:
- the "merit" of the subset on the holdOut data
- Throws:
java.lang.Exception- if the subset cannot be evaluated
-
evaluateSubset
public double evaluateSubset(java.util.BitSet subset, Instance holdOut, boolean retrain) throws java.lang.ExceptionEvaluates a subset of attributes with respect to a single instance. Calling this function overides any hold out/test instances set through setHoldOutFile.- Specified by:
evaluateSubsetin classHoldOutSubsetEvaluator- Parameters:
subset- a bitset representing the attribute subset to be evaluatedholdOut- a single instance (possibly not one of those used to build/train the evaluator) with which to evaluate the merit of the subsetretrain- true if the classifier should be retrained with respect to the new subset before testing on the holdOut instance.- Returns:
- the "merit" of the subset on the holdOut instance
- Throws:
java.lang.Exception- if the subset cannot be evaluated
-
toString
public java.lang.String toString()
Returns a string describing classifierSubsetEval- 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
-
main
public static void main(java.lang.String[] args)
Main method for testing this class.- Parameters:
args- the options
-
-