weka.attributeSelection

## Class GainRatioAttributeEval

- java.lang.Object
- - weka.attributeSelection.ASEvaluation
  - - weka.attributeSelection.GainRatioAttributeEval

- All Implemented Interfaces:
    java.io.Serializable, AttributeEvaluator, CapabilitiesHandler, CapabilitiesIgnorer, CommandlineRunnable, OptionHandler, RevisionHandler

      public class GainRatioAttributeEval
      extends ASEvaluation
      implements AttributeEvaluator, OptionHandler

  GainRatioAttributeEval :
  Evaluates the worth of an attribute by measuring the gain ratio with respect to the class.
  GainR(Class, Attribute) = (H(Class) - H(Class | Attribute)) / H(Attribute).

  Valid options are:

       -M
        treat missing values as a seperate value.

  Version:
    $Revision: 11215 $
  Author:
    Mark Hall (mhall@cs.waikato.ac.nz)
  See Also:
    `Discretize`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `GainRatioAttributeEval()` Constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `buildEvaluator(Instances data)` Initializes a gain ratio attribute evaluator.
    `double` | `evaluateAttribute(int attribute)` evaluates an individual attribute by measuring the gain ratio of the class given the attribute.
    `Capabilities` | `getCapabilities()` Returns the capabilities of this evaluator.
    `boolean` | `getMissingMerge()` get whether missing values are being distributed or not
    `java.lang.String[]` | `getOptions()` Gets the current settings of WrapperSubsetEval.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `java.lang.String` | `globalInfo()` Returns a string describing this attribute evaluator
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `static void` | `main(java.lang.String[] args)` Main method.
    `java.lang.String` | `missingMergeTipText()` Returns the tip text for this property
    `int[]` | `postProcess(int[] attributeSet)` Provides a chance for a attribute evaluator to do any special post processing of the selected attribute set.
    `void` | `setMissingMerge(boolean b)` distribute the counts for missing values across observed values
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
    `java.lang.String` | `toString()` Return a description of the evaluator

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

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

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

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

- - ### Constructor Detail

    - #### GainRatioAttributeEval

          public GainRatioAttributeEval()

      Constructor

  - ### 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<Option> 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(java.lang.String[] options)
                          throws java.lang.Exception

      Parses a given list of options.

      Valid options are:

           -M
            treat missing values as a seperate value.

      Specified by:
        `setOptions` in interface `OptionHandler`
      Parameters:
        `options` - the list of options as an array of strings
      Throws:
        `java.lang.Exception` - if an option is not supported

    - #### missingMergeTipText

          public java.lang.String missingMergeTipText()

      Returns the tip text for this property
      Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui

    - #### setMissingMerge

          public void setMissingMerge(boolean b)

      distribute the counts for missing values across observed values
      Parameters:
        `b` - true=distribute missing values.

    - #### getMissingMerge

          public boolean getMissingMerge()

      get whether missing values are being distributed or not
      Returns:
        true if missing values are being distributed.

    - #### getOptions

          public java.lang.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:
        `Capabilities`

    - #### buildEvaluator

          public void buildEvaluator(Instances data)
                              throws java.lang.Exception

      Initializes a gain ratio attribute evaluator. Discretizes all attributes that are numeric.
      Specified by:
        `buildEvaluator` in class `ASEvaluation`
      Parameters:
        `data` - set of instances serving as training data
      Throws:
        `java.lang.Exception` - if the evaluator has not been generated successfully

    - #### evaluateAttribute

          public double evaluateAttribute(int attribute)
                                   throws java.lang.Exception

      evaluates an individual attribute by measuring the gain ratio of the class given the attribute.
      Specified by:
        `evaluateAttribute` in interface `AttributeEvaluator`
      Parameters:
        `attribute` - the index of the attribute to be evaluated
      Returns:
        the gain ratio
      Throws:
        `java.lang.Exception` - if the attribute could not be evaluated

    - #### toString

          public java.lang.String toString()

      Return a description of the evaluator
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        description as a string

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Overrides:
        `getRevision` in class `ASEvaluation`
      Returns:
        the revision

    - #### postProcess

          public int[] postProcess(int[] attributeSet)

      Description copied from class: `ASEvaluation`
      Provides a chance for a attribute evaluator to do any special post processing of the selected attribute set. Can also be used to clean up any data structures post attribute selection.
      Overrides:
        `postProcess` in class `ASEvaluation`
      Parameters:
        `attributeSet` - the set of attributes found by the search
      Returns:
        a possibly ranked list of postprocessed attributes

    - #### main

          public static void main(java.lang.String[] args)

      Main method.
      Parameters:
        `args` - the options -t training file