weka.attributeSelection

## Class InfoGainAttributeEval

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

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

      public class InfoGainAttributeEval
      extends ASEvaluation
      implements AttributeEvaluator, OptionHandler

  InfoGainAttributeEval :
  Evaluates the worth of an attribute by measuring the information gain with respect to the class.
  InfoGain(Class,Attribute) = H(Class) - H(Class | Attribute).

  Valid options are:

       -M
        treat missing values as a seperate value.

       -B
        just binarize numeric attributes instead
        of properly discretizing them.

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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InfoGainAttributeEval()` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `binarizeNumericAttributesTipText()` Returns the tip text for this property
    `void` | `buildEvaluator(Instances data)` Initializes an information gain attribute evaluator.
    `double` | `evaluateAttribute(int attribute)` evaluates an individual attribute by measuring the amount of information gained about the class given the attribute.
    `boolean` | `getBinarizeNumericAttributes()` get whether numeric attributes are just being binarized.
    `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 for testing this class.
    `java.lang.String` | `missingMergeTipText()` Returns the tip text for this property
    `void` | `setBinarizeNumericAttributes(boolean b)` Binarize numeric attributes.
    `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()` Describe the attribute evaluator

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

      `clean, doNotCheckCapabilitiesTipText, forName, getDoNotCheckCapabilities, makeCopies, postProcess, runEvaluator, setDoNotCheckCapabilities`

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

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

- - ### Constructor Detail

    - #### InfoGainAttributeEval

          public InfoGainAttributeEval()

      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.

           -B
            just binarize numeric attributes instead
            of properly discretizing them.

      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

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

    - #### binarizeNumericAttributesTipText

          public java.lang.String binarizeNumericAttributesTipText()

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

    - #### setBinarizeNumericAttributes

          public void setBinarizeNumericAttributes(boolean b)

      Binarize numeric attributes.
      Parameters:
        `b` - true=binarize numeric attributes

    - #### getBinarizeNumericAttributes

          public boolean getBinarizeNumericAttributes()

      get whether numeric attributes are just being binarized.
      Returns:
        true if missing values are being distributed.

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

    - #### 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 an information gain 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 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 info gain
      Throws:
        `java.lang.Exception` - if the attribute could not be evaluated

    - #### toString

          public java.lang.String toString()

      Describe the attribute evaluator
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a description of the attribute evaluator 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

    - #### main

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

      Main method for testing this class.
      Parameters:
        `args` - the options