请问如何计算现在这个问题
应该是个二次规划问题吧。见附件吧
回复 #1 jytan 的帖子
公式最好直接用图片的形式上传。 接受楼上的意见,现在帖个图。
应该是可以用matlab的qp命令求解,
但约束条件不知道该如何表达了。。
请教各位。
[ 本帖最后由 jytan 于 2007-11-23 11:04 编辑 ] n- 表示所有负例样本的个数。也就是y=-1的个数。
(xi,yi)表示一个训练样本。
我的解法,请大家指教
以下算法是matlab写的:for i=1:n
for j=1:n
H(i,j) = Y(i)*Y(j)*svkernel(ker,X(i,:),X(j,:));
end
end
H = H+1e-10*eye(size(H));
f=zeros(n,1);%%因为quadprog解的是问题:min 0.5*x'*H*x + f'*x。此处只有前一部分,因此f设为0
Aeq=zeros(1,n);
for i=1:n
Aeq(i)=(Y(i)==1); %%%当yi=-1的时候,alphai=1;
end
beq=n_minus;%%Aeq*x=beq.完成最后一个约束。它和倒数第二个约束是重复的。
vlb = zeros(n,1); % Set the bounds: alphas >= 0
vub =ones(n,1); % alphas <= 1
A = [];
b = [];
% Aeq=Y';
% beq=0;
alpha=quadprog(H,f,A,b,Aeq,beq,vlb,vub);
出现错误如下:
Warning: Large-scale method does not currently solve this problem formulation,
using medium-scale method instead.
> In quadprog at 264
In main_svcpath at 57
Maximum number of iterations exceeded; increase options.MaxIter.
To continue solving the problem with the current solution as the
starting point, set x0 = x before calling quadprog. 错误提示你说你用的解法不适合求解你的问题,建议你使用中等规模的求解方法
二次规划问题我没有接触过,不好意思帮不了你!
页:
[1]