24小时热门版块排行榜    

查看: 650  |  回复: 1

stonechao1

金虫 (著名写手)

[求助] 关于SVM拉哥朗日乘子对应的的支持向量问题?用cvx_box设计SVM

load FV600
% FV600是一个数据集,X1对应特征向量,y对应标签,是个两类问题

%下面一段是打乱样本集
[N,m1]=size(X1);
[qs,qi]=sort(rand(N,1));
X1=X1(qi,;
y=y(qi,;

%十倍交叉验证
indices = crossvalind('Kfold',N,10);
  for F = 1:10
           test = (indices == F); train = ~test;
                   Test1=X1(test,;
                   Train1=X1(train,;
                   ytrain=y(train);ytest=y(test);
                   [n,m1]=size(Train1);
                  D1=Train1*Train1';
                 e=ones(n,1);
        for c=1:10
                C=2^c;
                O=zeros(n,1);
                cvx_begin
                        variable lambda1(n);
                        maximize(lambda1'*e-0.5*(lambda1.*ytrain)'*D1*(lambda1.*ytrain));
                        lambda1>=O;
                        lambda1<=C*e;
                        lambda1'*ytrain==0;
                cvx_end
%下面一段是求偏置b,取拉哥朗日乘子最大的10个支持向量来求平均。
                [max,ind]=sort(lambda1);
                for j=1:10
                        bb(j)=(ytrain(ind(n-j+1))-(lambda1.*ytrain)'*Train1*Train1(ind(n-j+1),');
                end
                b{c}=mean(bb);
                ypredict1{F,c}=Test1*Train1'*(lambda1.*ytrain)+b{c};
                acc1(F,c)=accuracy(ytest,sign(ypredict1{F,c}+10e-10));
                aveacc1=mean(acc1);
               
               
        end
       

end
回复此楼

» 猜你喜欢

每天进步一点点
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

orcimbalance

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
你把SVM原理都弄清楚了?强!
2楼2012-11-13 15:47:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 stonechao1 的主题更新
信息提示
请填处理意见