我是靠谱客的博主 幽默煎蛋,最近开发中收集的这篇文章主要介绍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)

输入参数的数目不足。

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

最后

以上就是幽默煎蛋为你收集整理的matlab提示参数不足,输入参数不足怎么解决的全部内容,希望文章能够帮你解决matlab提示参数不足,输入参数不足怎么解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部