Package weka.attributeSelection

# Class SVMAttributeEval

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

All Implemented Interfaces:
  `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

Constructors
Constructor
Description
`SVMAttributeEval()`
Constructor

## Method Summary

Modifier and Type
Method
Description
`String`
`attsToEliminatePerIterationTipText()`
Returns a tip text for this property suitable for display in the GUI
`void`
`buildEvaluator(Instances data)`
Initializes the evaluator.
`String`
`complexityParameterTipText()`
Returns a tip text for this property suitable for display in the GUI
`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.
`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
`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
`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
`String`
`globalInfo()`
Returns a string describing this attribute evaluator
`Enumeration`
`listOptions()`
Returns an enumeration describing all the available options
`static void`
`main(String[] args)`
Main method for testing this class.
`String`
`percentThresholdTipText()`
Returns a tip text for this property suitable for display in the GUI
`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(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
`String`
`toleranceParameterTipText()`
Returns a tip text for this property suitable for display in the GUI
`String`
`toString()`
Return a description of the evaluator

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

`clean, forName, makeCopies, postProcess`

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

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

## Constructor Details

### SVMAttributeEval

public SVMAttributeEval()
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

### 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 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(String[] options) throws 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:
  `Exception` - if an error occurs

### getOptions

public 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 String attsToEliminatePerIterationTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### percentToEliminatePerIterationTipText

public String percentToEliminatePerIterationTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### percentThresholdTipText

public String percentThresholdTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### epsilonParameterTipText

public String epsilonParameterTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### toleranceParameterTipText

public String toleranceParameterTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### complexityParameterTipText

public String complexityParameterTipText()
Returns a tip text for this property suitable for display in the GUI

Returns:
  tip text string describing this property

### filterTypeTipText

public 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 Exception
Initializes the 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 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:
  `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 testing this class.

Parameters:
  `args` - the options