SVMAttributeEval

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## weka.attributeSelection
Class SVMAttributeEval

    java.lang.Object
      weka.attributeSelection.ASEvaluation
          weka.attributeSelection.SVMAttributeEval

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

    public class SVMAttributeEval

extends ASEvaluation
implements AttributeEvaluator, OptionHandler, TechnicalInformationHandler

SVMAttributeEval :
Evaluates the worth of an attribute by using an SVM classifier. Attributes are ranked by the square of the weight assigned by the SVM. Attribute selection for multiclass problems is handled by ranking attributes for each class seperately using a one-vs-all method and then "dealing" from the top of each pile to give a final ranking.
For more information see:
I. Guyon, J. Weston, S. Barnhill, V. Vapnik (2002). Gene selection for cancer classification using support vector machines. Machine Learning. 46:389-422.

BibTeX:

     @article{Guyon2002,
        author = {I. Guyon and J. Weston and S. Barnhill and V. Vapnik},
        journal = {Machine Learning},
        pages = {389-422},
        title = {Gene selection for cancer classification using support vector machines},
        volume = {46},
        year = {2002}
     }

Valid options are:

     -X <constant rate of elimination>
      Specify the constant rate of attribute
      elimination per invocation of
      the support vector machine.
      Default = 1.

     -Y <percent rate of elimination>
      Specify the percentage rate of attributes to
      elimination per invocation of
      the support vector machine.
      Trumps constant rate (above threshold).
      Default = 0.

     -Z <threshold for percent elimination>
      Specify the threshold below which
      percentage attribute elimination
      reverts to the constant method.

     -P <epsilon>
      Specify the value of P (epsilon
      parameter) to pass on to the
      support vector machine.
      Default = 1.0e-25

     -T <tolerance>
      Specify the value of T (tolerance
      parameter) to pass on to the
      support vector machine.
      Default = 1.0e-10

     -C <complexity>
      Specify the value of C (complexity
      parameter) to pass on to the
      support vector machine.
      Default = 1.0

     -N
      Whether the SVM should 0=normalize/1=standardize/2=neither.
      (default 0=normalize)

Version:
  $Revision: 1.28 $
Author:
  Eibe Frank (eibe@cs.waikato.ac.nz), Mark Hall (mhall@cs.waikato.ac.nz), Kieran Holland
See Also:
  Serialized Form

Constructor Summary
`SVMAttributeEval()` Constructor

Method Summary
`java.lang.String` | `attsToEliminatePerIterationTipText()` Returns a tip text for this property suitable for display in the GUI
`void` | `buildEvaluator(Instances data)` Initializes the evaluator.
`java.lang.String` | `complexityParameterTipText()` Returns a tip text for this property suitable for display in the GUI
`java.lang.String` | `epsilonParameterTipText()` Returns a tip text for this property suitable for display in the GUI
`double` | `evaluateAttribute(int attribute)` Evaluates an attribute by returning the rank of the square of its coefficient in a linear support vector machine.
`java.lang.String` | `filterTypeTipText()` Returns a tip text for this property suitable for display in the GUI
`int` | `getAttsToEliminatePerIteration()` Get the constant rate of attribute elimination per iteration
`Capabilities` | `getCapabilities()` Returns the capabilities of this evaluator.
`double` | `getComplexityParameter()` Get the value of C used with SMO
`double` | `getEpsilonParameter()` Get the value of P used with SMO
`SelectedTag` | `getFilterType()` Get the filtering mode passed to SMO
`java.lang.String[]` | `getOptions()` Gets the current settings of SVMAttributeEval
`int` | `getPercentThreshold()` Get the threshold below which percentage elimination reverts to constant elimination.
`int` | `getPercentToEliminatePerIteration()` Get the percentage rate of attribute elimination per iteration
`java.lang.String` | `getRevision()` Returns the revision string.
`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.
`double` | `getToleranceParameter()` Get the value of T used with SMO
`java.lang.String` | `globalInfo()` Returns a string describing this attribute evaluator
`java.util.Enumeration` | `listOptions()` Returns an enumeration describing all the available options
`static void` | `main(java.lang.String[] args)` Main method for testing this class.
`java.lang.String` | `percentThresholdTipText()` Returns a tip text for this property suitable for display in the GUI
`java.lang.String` | `percentToEliminatePerIterationTipText()` Returns a tip text for this property suitable for display in the GUI
`void` | `setAttsToEliminatePerIteration(int cRate)` Set the constant rate of attribute elimination per iteration
`void` | `setComplexityParameter(double svmC)` Set the value of C for SMO
`void` | `setEpsilonParameter(double svmP)` Set the value of P for SMO
`void` | `setFilterType(SelectedTag newType)` The filtering mode to pass to SMO
`void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
`void` | `setPercentThreshold(int pThresh)` Set the threshold below which percentage elimination reverts to constant elimination.
`void` | `setPercentToEliminatePerIteration(int pRate)` Set the percentage of attributes to eliminate per iteration
`void` | `setToleranceParameter(double svmT)` Set the value of T for SMO
`java.lang.String` | `toleranceParameterTipText()` Returns a tip text for this property suitable for display in the GUI
`java.lang.String` | `toString()` Return a description of the evaluator

Methods inherited from class weka.attributeSelection.ASEvaluation
`forName, makeCopies, postProcess`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SVMAttributeEval

    public SVMAttributeEval()

  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

### 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 java.util.Enumeration listOptions()

  Returns an enumeration describing all the available options

  Specified by:
    `listOptions` in interface `OptionHandler`
  Returns:
    an enumeration of options

### setOptions

    public void setOptions(java.lang.String[] options)
                    throws java.lang.Exception

  Parses a given list of options.

  Valid options are:

       -X <constant rate of elimination>
        Specify the constant rate of attribute
        elimination per invocation of
        the support vector machine.
        Default = 1.

       -Y <percent rate of elimination>
        Specify the percentage rate of attributes to
        elimination per invocation of
        the support vector machine.
        Trumps constant rate (above threshold).
        Default = 0.

       -Z <threshold for percent elimination>
        Specify the threshold below which
        percentage attribute elimination
        reverts to the constant method.

       -P <epsilon>
        Specify the value of P (epsilon
        parameter) to pass on to the
        support vector machine.
        Default = 1.0e-25

       -T <tolerance>
        Specify the value of T (tolerance
        parameter) to pass on to the
        support vector machine.
        Default = 1.0e-10

       -C <complexity>
        Specify the value of C (complexity
        parameter) to pass on to the
        support vector machine.
        Default = 1.0

       -N
        Whether the SVM should 0=normalize/1=standardize/2=neither.
        (default 0=normalize)

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

### getOptions

    public java.lang.String[] getOptions()

  Gets the current settings of SVMAttributeEval

  Specified by:
    `getOptions` in interface `OptionHandler`
  Returns:
    an array of strings suitable for passing to setOptions()

### attsToEliminatePerIterationTipText

    public java.lang.String attsToEliminatePerIterationTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### percentToEliminatePerIterationTipText

    public java.lang.String percentToEliminatePerIterationTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### percentThresholdTipText

    public java.lang.String percentThresholdTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### epsilonParameterTipText

    public java.lang.String epsilonParameterTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### toleranceParameterTipText

    public java.lang.String toleranceParameterTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### complexityParameterTipText

    public java.lang.String complexityParameterTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### filterTypeTipText

    public java.lang.String filterTypeTipText()

  Returns a tip text for this property suitable for display in the GUI

  Returns:
    tip text string describing this property

### setAttsToEliminatePerIteration

    public void setAttsToEliminatePerIteration(int cRate)

  Set the constant rate of attribute elimination per iteration

  Parameters:
    `cRate` - the constant rate of attribute elimination per iteration

### getAttsToEliminatePerIteration

    public int getAttsToEliminatePerIteration()

  Get the constant rate of attribute elimination per iteration

  Returns:
    the constant rate of attribute elimination per iteration

### setPercentToEliminatePerIteration

    public void setPercentToEliminatePerIteration(int pRate)

  Set the percentage of attributes to eliminate per iteration

  Parameters:
    `pRate` - percent of attributes to eliminate per iteration

### getPercentToEliminatePerIteration

    public int getPercentToEliminatePerIteration()

  Get the percentage rate of attribute elimination per iteration

  Returns:
    the percentage rate of attribute elimination per iteration

### setPercentThreshold

    public void setPercentThreshold(int pThresh)

  Set the threshold below which percentage elimination reverts to constant elimination.

  Parameters:
    `pThresh` - percent of attributes to eliminate per iteration

### getPercentThreshold

    public int getPercentThreshold()

  Get the threshold below which percentage elimination reverts to constant elimination.

  Returns:
    the threshold below which percentage elimination stops

### setEpsilonParameter

    public void setEpsilonParameter(double svmP)

  Set the value of P for SMO

  Parameters:
    `svmP` - the value of P

### getEpsilonParameter

    public double getEpsilonParameter()

  Get the value of P used with SMO

  Returns:
    the value of P

### setToleranceParameter

    public void setToleranceParameter(double svmT)

  Set the value of T for SMO

  Parameters:
    `svmT` - the value of T

### getToleranceParameter

    public double getToleranceParameter()

  Get the value of T used with SMO

  Returns:
    the value of T

### setComplexityParameter

    public void setComplexityParameter(double svmC)

  Set the value of C for SMO

  Parameters:
    `svmC` - the value of C

### getComplexityParameter

    public double getComplexityParameter()

  Get the value of C used with SMO

  Returns:
    the value of C

### setFilterType

    public void setFilterType(SelectedTag newType)

  The filtering mode to pass to SMO

  Parameters:
    `newType` - the new filtering mode

### getFilterType

    public SelectedTag getFilterType()

  Get the filtering mode passed to SMO

  Returns:
    the filtering mode

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

  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 attribute by returning the rank of the square of its coefficient in a linear support vector machine.

  Specified by:
    `evaluateAttribute` in interface `AttributeEvaluator`
  Parameters:
    `attribute` - the index of the attribute to be evaluated
  Returns:
    the "merit" of the attribute
  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

### main

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

  Main method for testing this class.

  Parameters:
    `args` - the options

Overview | Package | Class | Tree | Deprecated | Index | Help | Weka's home

PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD