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,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)

输入参数的数目不足。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值