Package weka.attributeSelection

# 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:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClassifierAttributeEval()`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `buildEvaluator(Instances data)`
  Initializes a ClassifierAttribute attribute evaluator.
  `String`
  `classifierTipText()`
  Returns the tip text for this property
  `double`
  `evaluateAttribute(int attribute)`
  Evaluates an individual attribute by measuring the amount of information gained about the class given the attribute.
  `String`
  `evaluationMeasureTipText()`
  Returns the tip text for this property
  `String`
  `foldsTipText()`
  Returns the tip text for this property
  `Capabilities`
  `getCapabilities()`
  Returns the capabilities of this evaluator.
  `Classifier`
  `getClassifier()`
  Get the classifier used as the base learner.
  `SelectedTag`
  `getEvaluationMeasure()`
  Gets the currently set performance evaluation measure used for selecting attributes for the decision table
  `int`
  `getFolds()`
  Get the number of folds used for accuracy estimation
  `String`
  `getIRClassValue()`
  Get the class value (label or index) to use with IR metric evaluation of subsets.
  `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
  `int`
  `getNumToEvaluateInParallel()`
  Get the number of attributes to evaluate in parallel
  `String[]`
  `getOptions()`
  returns the current setup.
  `String`
  `getRevision()`
  Returns the revision string.
  `int`
  `getSeed()`
  Get the random number seed used for cross validation
  `double`
  `getThreshold()`
  Get the value of the threshold
  `String`
  `globalInfo()`
  Returns a string describing this attribute evaluator.
  `String`
  `IRClassValueTipText()`
  Returns the tip text for this property
  `String`
  `leaveOneAttributeOutTipText()`
  Tip text for this property
  `Enumeration<Option>`
  `listOptions()`
  Returns an enumeration describing the available options.
  `static void`
  `main(String[] args)`
  Main method for executing this class.
  `String`
  `numToEvaluateInParallelTipText()`
  Tip text for this property.
  `String`
  `seedTipText()`
  Returns the tip text for this property
  `void`
  `setClassifier(Classifier newClassifier)`
  Set the classifier to use for accuracy estimation
  `void`
  `setEvaluationMeasure(SelectedTag newMethod)`
  Sets the performance evaluation measure to use for selecting attributes for the decision table
  `void`
  `setFolds(int f)`
  Set the number of folds to use for accuracy estimation
  `void`
  `setIRClassValue(String val)`
  Set the class value (label or index) to use with IR metric evaluation of subsets.
  `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
  `void`
  `setNumToEvaluateInParallel(int n)`
  Set the number of attributes to evaluate in parallel
  `void`
  `setOptions(String[] options)`
  Parses a given list of options.
  `void`
  `setSeed(int s)`
  Set the seed to use for cross validation
  `void`
  `setThreshold(double t)`
  Set the value of the threshold for repeating cross validation
  `String`
  `thresholdTipText()`
  Returns the tip text for this property
  `String`
  `toString()`
  Return a description of the evaluator.

  ### Methods inherited from class weka.attributeSelection.ASEvaluation

  `clean, doNotCheckCapabilitiesTipText, forName, getDoNotCheckCapabilities, makeCopies, postExecution, postProcess, preExecution, run, runEvaluator, setDoNotCheckCapabilities`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## 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:
      - `Capabilities`

  - ### 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