function [Alpha1,Alpha2,Alpha,Flag,B]=SVMNR3(x,y,Epsilon,C,D)
nntwarn off
[X,XS]=premnmx(x);
[Y,YS]=premnmx(y);
%第一步:构造K矩阵
l=size(X,2);
K=zeros(l,l);
for i=1:l
for j=1:l
xi=X(:,i);
xj=X(:,j);
%K(i,j)=sum(xi.*xj);
%K(i,j)=(sum(xi.*xj)+1)^20;%注意:核函数在此定义!
K(i,j)=exp(-(norm((xi-xj).^2)/D));
%K(i,j)=exp(-(sum((xi-xj))/100));
end
end
%第二步:构造二次规划模型参数H,Ft,Aeq,Beq,lb,ub
H=[K,-K;-K,K];
H=(H+H')/2;
Ft=[Epsilon*ones(1,l)-Y,Epsilon*ones(1,l)+Y];
Aeq=[ones(1,l),-ones(1,l)];
Beq=0;
lb=eps.*ones(2*l,1);
ub=C*ones(2*l,1);
%第三步:调用优化工具箱quadprog函数求解二次规划
OPT=optimset;
OPT.LargeScale='off';
OPT.Display='off';
[Gamma,Obj]=quadprog(H,Ft,[],[],Aeq,Beq,lb,ub,[],OPT);
%[Gamma,Obj]=fmincon('myfun',5.*ones(18,1),[],[],Aeq,Beq,lb,ub);
%第四步:整理输出参数
Alpha1=(Gamma(1:l,1))';
Alpha2=(Gamma((l+1):end,1))';
Alpha=Alpha1-Alpha2;
Flag=2*ones(1,l);
%第五步:支持向量的分类
Err=0.0000000000001;
for i=1:l
AA=Alpha1(i);
BB=Alpha2(i);
if (abs(AA-0)<=Err)&&(abs(BB-0)<=Err)
Flag(i)=0;
end
if (AA>Err)&&(AA
Flag(i)=2;
end
if (abs(AA-0)<=Err)&&(BB>Err)&&(BB
Flag(i)=2;
end
if (abs(AA-C)<=Err)&&(abs(BB-0)<=Err)
Flag(i)=1;
end
if (abs(AA-0)<=Err)&&(abs(BB-C)<=Err)
Flag(i)=1;
end
end
%第六步:计算B
B=0;
counter=0;
for i=1:l
AA=Alpha1(i);
BB=Alpha2(i);
if (AA>Err)&&(AA
%计算支持向量加权值
SUM=0;
for j=1:l
if Flag(j)>0
%SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i));
%SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i))+1)^20;
SUM=SUM+Alpha(j)*exp(-(norm((X(:,j)-X(:,i)).^2)/D));
%SUM=SUM+Alpha(j)*exp(-(sum((X(:,j)-X(:,i)))/100));
end
end
b=Y(i)-SUM-Epsilon;
B=B+b;
counter=counter+1;
end
if (abs(AA-0)<=Err)&&(BB>Err)&&(BB
SUM=0;
for j=1:l
if Flag(j)>0
%SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i));
%SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i))+1)^20;
SUM=SUM+Alpha(j)*exp(-(norm((X(:,j)-X(:,i)).^2)/D));
%SUM=SUM+Alpha(j)*exp(-(sum((X(:,j)-X(:,i)))/100));
end
end
b=Y(i)-SUM+Epsilon;
B=B+b;
counter=counter+1;
end
end
B=B/counter;
end
这是我在网上搜的利用SVM进行非线性回归的函数,运行总是报错
>> SVMNR3
错误使用 SVMNR3 (line 18)
输入参数的数目不足。
是什么问题,可以帮忙解决吗?非常感谢!
到此这篇matlab函数输入参数不足(matlab说输入参数不足)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/matlabbc/19607.html