资源简介
该代码实现了一对一的SVMRFE算法 主要是用于特征选择 算法速度快 是SVMRFE的改进版本
代码片段和文件信息
function r = SVM_RFE(label data)
% SVM-RFE
% SVM Recursive Feature Elimination (SVM RFE)
% by liyang @BNU Math
% Email:patrick.lee@foxmail.com
% last modified 2010.09.18
numclass=size(unique(label)1);
n = size(data2);
s = 1:n;
r = [];
iter = 1; % 删除的特征个数
if numclass==2
%% 两类SVM-RFE
while ~isempty(s)
% if mod(iter 10) == 0
% str = [‘===‘num2str(iter)‘===‘];
% disp(str);
% disp(‘processing .....‘);
% end
X = data(:s);
model = libsvmtrain(label X);
w = model.SVs‘ * model.sv_coef;%%求权重 nSV 是各个类的支持向量数量 在sv_coef中每一行存放该支持向量与其它各类(n-1类)进行一对一训练时系数
c = w.^2;
[~ f] = min(c);
r = [s(f)r];
ind = [1:f-1 f+1:length(s)];
s = s(ind);
iter = iter + 1;
end
else
%% OVOSVM-RFE
while ~isempty(s)
% if mod(iter 10) == 0
% str = [‘===‘num2str(iter)‘===‘];
- 上一篇:SVM-RFE算法
- 下一篇:libsvm 编译后的工具包
评论
共有 条评论