How can I determine feature importance of an SVM classifier?

127 views (last 30 days)
I would like to calculate feature importance for a SVM classifier, e.g. by using the metric "mean decrease accuracy".
This means I need to know how the accuracy of my classifier (calculated by cross validation) changes if I leave out features one by one. 
I found functions for classification trees, but nor for SVM. How could I calculate this for SVMs? 

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 2 Sep 2021
Edited: MathWorks Support Team on 28 Sep 2021
In general, unless you are using a linear kernel SVM, it is not possible to use the parameters of an SVM model to analyze the importance of your features. You can refer to the following external discussions for more information about this reasoning:
Nevertheless, you can still analyze the feature importance for your classification problem (not specific to SVM) by doing some dimensional reduction or feature extraction.
For instance, you can perform neighborhood component analysis using the "fscnca" function in MATLAB to identify relevant features for your classification: 
Another popular technique for feature selection is sequential feature selection which can help you select features for classifying high dimensional data:
You can also refer to the following documentation link for other dimensionality reduction and feature extraction techniques in MATLAB:
 

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!