2025年matlab函数输入参数不足(matlab说输入参数不足)

matlab函数输入参数不足(matlab说输入参数不足)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

大家好,我是讯享网,很高兴认识大家。



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)

输入参数的数目不足。

是什么问题,可以帮忙解决吗?非常感谢!

小讯
上一篇 2025-06-07 13:47
下一篇 2025-05-01 18:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/186385.html