Class WrapperSubsetEval

java.lang.Object
weka.attributeSelection.ASEvaluation
weka.attributeSelection.WrapperSubsetEval
All Implemented Interfaces:
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:
  • Constructor Details

    • WrapperSubsetEval

      public WrapperSubsetEval()
      Constructor. Calls restOptions to set default options
  • Method Details

    • globalInfo

      public 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:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • listOptions

      public Enumeration listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses 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:
      setOptions in interface OptionHandler
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • thresholdTipText

      public 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 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 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 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 String[] getOptions()
      Gets the current settings of WrapperSubsetEval.
      Specified by:
      getOptions in interface OptionHandler
      Returns:
      an array of strings suitable for passing to setOptions()
    • getCapabilities

      public Capabilities getCapabilities()
      Returns the capabilities of this evaluator.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Overrides:
      getCapabilities in class ASEvaluation
      Returns:
      the capabilities of this evaluator
      See Also:
    • buildEvaluator

      public void buildEvaluator(Instances data) throws Exception
      Generates a attribute evaluator. Has to initialize all fields of the evaluator that are not being set via options.
      Specified by:
      buildEvaluator in class ASEvaluation
      Parameters:
      data - set of instances serving as training data
      Throws:
      Exception - if the evaluator has not been generated successfully
    • evaluateSubset

      public double evaluateSubset(BitSet subset) throws Exception
      Evaluates a subset of attributes
      Specified by:
      evaluateSubset in interface SubsetEvaluator
      Parameters:
      subset - a bitset representing the attribute subset to be evaluated
      Returns:
      the error rate
      Throws:
      Exception - if the subset could not be evaluated
    • toString

      public String toString()
      Returns a string describing the wrapper
      Overrides:
      toString in class Object
      Returns:
      the description as a string
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class ASEvaluation
      Returns:
      the revision
    • clean

      public void clean()
      Description copied from class: ASEvaluation
      Tells 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:
      clean in class ASEvaluation
    • main

      public static void main(String[] args)
      Main method for testing this class.
      Parameters:
      args - the options