当前位置:   article > 正文

MATLAB中SVM的特征重要性排序_svm特征重要性排序

svm特征重要性排序

MATLAB中可以通过支持向量机递归特征消除(Support Vector Machine Recursive Feature Elimination :SVM-RFE)来获得SVM的特征重要性排序!!!

SVM-RFE算法是根据SVM在训练时生成的权向量w来构造排序系数,每次迭代去掉一个排序系数最小的特征属性,最终得到所有特征属性的递减顺序的排序。
经典的SVM-RFE采用的是线性核函数,推广到非线性情况,这里我们采用的是RBF核函数,此时采用的排序系数为:

整体SVM-RFE(RBF核)算法过程如下:

在每一次循环中,具有最小排序系数的特征将被移除,然后SVM对剩余的特征重新训练以获取新的排序系数。SVM-RFE方法通过迭代执行这一过程,最后得到一个特征排序表,利用该排序列表,定义若干个嵌套的特征子集 来训练SVM,并以SVM的预测正确率评估这些子集的优劣,从而获得最优的特征子集。需要注意的是,排在前面的那些特征,单个并不一定使得SVM分类器获得最好的分类性能,而是多个特征组合在一起,才使得分类器获得最优的分类性能,因此,SVM-RFE算法能选择出互补的特征组合。

在选择最佳特征子集的过程中,我们采用训练集留一交叉检验错误识别率(LooErrorRate)和独立测试集错误识别率(TestErrorRate)两个指标来综合判定最佳的特征子集。由于采用RBF核函数,这就涉及到参数的选取设定(惩罚因子c和RBF核函数参数 ),在SVM-RFE确定特征排序表过程和训练集留一交叉检验过程中,采用固定的参数组 ,在独立测试集识别过程中将使用网格寻参(grid search)的方法来进行参数寻优。整体确定最佳特征子集过程如下表所示:

SVM-RFE 代码实现

  1. function r = SVMRFE(label, data)
  2. % SVM-RFE
  3. % SVM Recursive Feature Elimination (SVM RFE)
  4. % by liyang @BNU Math
  5. % Email:patrick.lee@foxmail.com
  6. % last modified 2010.09.18
  7. %%
  8. n = size(data,2);
  9. s = 1:n;
  10. r = [];
  11. iter = 1;
  12. while ~isempty(s)
  13. % if mod(iter, 10) == 0
  14. % str = ['===',num2str(iter),'==='];
  15. % disp(str);
  16. % disp('processing .....');
  17. % end
  18. X = data(:,s);
  19. % v = 3;
  20. % [bestCVaccuracy,bestc,bestg] = SVMcgForClass(label, X, ...
  21. % -8,8,-8,8,v,0.8,0.8,4.5);
  22. % cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg)];
  23. % model = svmtrain(label, X, cmd);
  24. model = svmtrain(label, X);
  25. w = model.SVs' * model.sv_coef;
  26. c = w.^2;
  27. [c_minvalue, f] = min(c);
  28. r = [s(f),r];
  29. ind = [1:f-1, f+1:length(s)];
  30. s = s(ind);
  31. iter = iter + 1;
  32. end

该程序需要用到以下工具箱:
Libsvm-mat faruto版本下载
libsvm-mat-2.89-3[FarutoUltimate3.0]
http://www.matlabsky.com/thread-9327-1-1.html

===================================================
更多关于SVM的最新整理帖子请看:
关于SVM的那点破事[长期更新整理 by faruto]
http://www.matlabsky.com/thread-10966-1-1.html

相关参考资料:


SVM-RFE相关文献.rar (1.38 MB, 下载次数: 68741)

===================================================
MATLAB 神经网络30个案例分析》视频销售官方地址:
http://video.ourmatlab.com/
视频销售客服QQ:1007911579
===================================================
《MATLAB 神经网络30个案例分析》购买方式:
当当网:
http://product.dangdang.com/prod ... mp;ref=search-1-pub
China-Pub:
http://www.china-pub.com/50688
卓越网:
http://www.amazon.cn/mn/detailAp ... 03HGHB9W&sr=8-1
===================================================

转自http://www.matlabsky.com/forum-viewthread-tid-11568-fromuid-18677.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/444434
推荐阅读
相关标签
  

闽ICP备14008679号