Package 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
Constructors Constructor Description SVMAttributeEval()
Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
attsToEliminatePerIterationTipText()
Returns a tip text for this property suitable for display in the GUIvoid
buildEvaluator(Instances data)
Initializes the evaluator.java.lang.String
complexityParameterTipText()
Returns a tip text for this property suitable for display in the GUIjava.lang.String
epsilonParameterTipText()
Returns a tip text for this property suitable for display in the GUIdouble
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 GUIint
getAttsToEliminatePerIteration()
Get the constant rate of attribute elimination per iterationCapabilities
getCapabilities()
Returns the capabilities of this evaluator.double
getComplexityParameter()
Get the value of C used with SMOdouble
getEpsilonParameter()
Get the value of P used with SMOSelectedTag
getFilterType()
Get the filtering mode passed to SMOjava.lang.String[]
getOptions()
Gets the current settings of SVMAttributeEvalint
getPercentThreshold()
Get the threshold below which percentage elimination reverts to constant elimination.int
getPercentToEliminatePerIteration()
Get the percentage rate of attribute elimination per iterationjava.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 SMOjava.lang.String
globalInfo()
Returns a string describing this attribute evaluatorjava.util.Enumeration
listOptions()
Returns an enumeration describing all the available optionsstatic 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 GUIjava.lang.String
percentToEliminatePerIterationTipText()
Returns a tip text for this property suitable for display in the GUIvoid
setAttsToEliminatePerIteration(int cRate)
Set the constant rate of attribute elimination per iterationvoid
setComplexityParameter(double svmC)
Set the value of C for SMOvoid
setEpsilonParameter(double svmP)
Set the value of P for SMOvoid
setFilterType(SelectedTag newType)
The filtering mode to pass to SMOvoid
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 iterationvoid
setToleranceParameter(double svmT)
Set the value of T for SMOjava.lang.String
toleranceParameterTipText()
Returns a tip text for this property suitable for display in the GUIjava.lang.String
toString()
Return a description of the evaluator-
Methods inherited from class weka.attributeSelection.ASEvaluation
clean, forName, makeCopies, postProcess
-
-
-
-
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 interfaceTechnicalInformationHandler
- 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 interfaceOptionHandler
- 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 interfaceOptionHandler
- 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 interfaceOptionHandler
- 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 interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classASEvaluation
- 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 classASEvaluation
- 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 interfaceAttributeEvaluator
- 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 classjava.lang.Object
- Returns:
- description as a string
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classASEvaluation
- Returns:
- the revision
-
main
public static void main(java.lang.String[] args)
Main method for testing this class.- Parameters:
args
- the options
-
-