• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: OVO  

资源简介

该代码实现了一对一的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)‘===‘];
 

评论

共有 条评论