Class ClassifierAttributeEval

java.lang.Object
weka.attributeSelection.ASEvaluation
weka.attributeSelection.ClassifierAttributeEval
All Implemented Interfaces:
Serializable, AttributeEvaluator, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler

public class ClassifierAttributeEval extends ASEvaluation implements AttributeEvaluator, OptionHandler
ClassifierAttributeEval :

Evaluates the worth of an attribute by using a user-specified classifier.

Valid options are:

 -L
  Evaluate an attribute by measuring the impact of leaving it out
  from the full set instead of considering its worth in isolation
 -execution-slots <integer>
  Number of attributes to evaluate in parallel.
  Default = 1 (i.e. no parallelism)
 -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%))
 -E <acc | rmse | mae | f-meas | auc | auprc>
  Performance evaluation measure to use for selecting attributes.
  (Default = accuracy for discrete class and rmse for numeric class)
 -IRclass <label | index>
  Optional class value (label or 1-based index) to use in conjunction with
  IR statistics (f-meas, auc or auprc). Omitting this option will use
  the class-weighted average.
 
 Options specific to scheme weka.classifiers.rules.ZeroR:
 
 -output-debug-info
  If set, classifier is run in debug mode and
  may output additional info to the console
 -do-not-check-capabilities
  If set, classifier capabilities are not checked before classifier is built
  (use with caution).
Version:
$Revision: 14195 $
Author:
Mark Hall (mhall@cs.waikato.ac.nz), FracPete (fracpete at waikato dot ac dot nz)
See Also:
  • Constructor Details

    • ClassifierAttributeEval

      public ClassifierAttributeEval()
      Constructor.
  • 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
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class ASEvaluation
      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:

       -L
        Evaluate an attribute by measuring the impact of leaving it out
        from the full set instead of considering its worth in isolation
       -execution-slots <integer>
        Number of attributes to evaluate in parallel.
        Default = 1 (i.e. no parallelism)
       -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%))
       -E <acc | rmse | mae | f-meas | auc | auprc>
        Performance evaluation measure to use for selecting attributes.
        (Default = accuracy for discrete class and rmse for numeric class)
       -IRclass <label | index>
        Optional class value (label or 1-based index) to use in conjunction with
        IR statistics (f-meas, auc or auprc). Omitting this option will use
        the class-weighted average.
       
       Options specific to scheme weka.classifiers.rules.ZeroR:
       
       -output-debug-info
        If set, classifier is run in debug mode and
        may output additional info to the console
       -do-not-check-capabilities
        If set, classifier capabilities are not checked before classifier is built
        (use with caution).
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class ASEvaluation
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      returns the current setup.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class ASEvaluation
      Returns:
      the options of the current setup
    • leaveOneAttributeOutTipText

      public String leaveOneAttributeOutTipText()
      Tip text for this property
      Returns:
      the tip text for this property
    • setLeaveOneAttributeOut

      public void setLeaveOneAttributeOut(boolean l)
      Set whether to evaluate the merit of an attribute based on the impact of leaving it out from the full set instead of considering its worth in isolation
      Parameters:
      l - true if each attribute should be evaluated by measuring the impact of leaving it out from the full set
    • getLeaveOneAttributeOut

      public boolean getLeaveOneAttributeOut()
      Get whether to evaluate the merit of an attribute based on the impact of leaving it out from the full set instead of considering its worth in isolation
      Returns:
      true if each attribute should be evaluated by measuring the impact of leaving it out from the full set
    • numToEvaluateInParallelTipText

      public String numToEvaluateInParallelTipText()
      Tip text for this property.
      Returns:
      the tip text for this property
    • setNumToEvaluateInParallel

      public void setNumToEvaluateInParallel(int n)
      Set the number of attributes to evaluate in parallel
      Parameters:
      n - the number of attributes to evaluate in parallel
    • getNumToEvaluateInParallel

      public int getNumToEvaluateInParallel()
      Get the number of attributes to evaluate in parallel
      Returns:
      the number of attributes to evaluate in parallel
    • setIRClassValue

      public void setIRClassValue(String val)
      Set the class value (label or index) to use with IR metric evaluation of subsets. Leaving this unset will result in the class weighted average for the IR metric being used.
      Parameters:
      val - the class label or 1-based index of the class label to use when evaluating subsets with an IR metric
    • getIRClassValue

      public String getIRClassValue()
      Get the class value (label or index) to use with IR metric evaluation of subsets. Leaving this unset will result in the class weighted average for the IR metric being used.
      Returns:
      the class label or 1-based index of the class label to use when evaluating subsets with an IR metric
    • IRClassValueTipText

      public String IRClassValueTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • evaluationMeasureTipText

      public String evaluationMeasureTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getEvaluationMeasure

      public SelectedTag getEvaluationMeasure()
      Gets the currently set performance evaluation measure used for selecting attributes for the decision table
      Returns:
      the performance evaluation measure
    • setEvaluationMeasure

      public void setEvaluationMeasure(SelectedTag newMethod)
      Sets the performance evaluation measure to use for selecting attributes for the decision table
      Parameters:
      newMethod - the new performance evaluation metric to use
    • 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
    • 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
      Initializes a ClassifierAttribute attribute evaluator.
      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
    • evaluateAttribute

      public double evaluateAttribute(int attribute) throws Exception
      Evaluates an individual attribute by measuring the amount of information gained about the class given the attribute.
      Specified by:
      evaluateAttribute in interface AttributeEvaluator
      Parameters:
      attribute - the index of the attribute to be evaluated
      Returns:
      the evaluation
      Throws:
      Exception - if the attribute could not be evaluated
    • toString

      public String toString()
      Return a description of the evaluator.
      Overrides:
      toString in class Object
      Returns:
      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
    • main

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