ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:50.50KB ,
资源ID:10001094      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10001094.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(支持向量机非线性回归通用MATLAB源码.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

支持向量机非线性回归通用MATLAB源码.doc

1、支持向量机非线性回归通用 MATLAB 源码支持向量机和 BP 神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强。大量仿真证实,支持向量机的泛化能力强于 BP 网络,而且能避免神经网络的固有缺陷 训练结果不稳定。本源码可以用于线性回归、非线性回归、非线性函数拟合、数据建模、预测、分类等多种应用场合,GreenSim 团队推荐您使用。function Alpha1,Alpha2,Alpha,Flag,B=SVMNR(X,Y,Epsilon,C,TKF,Para1,Para2)% SVMNR.m% Support Ve

2、ctor Machine for Nonlinear Regression% All rights reserved% 支持向量机非线性回归通用程序% GreenSim 团队原创作品,转载请注明% GreenSim 团队长期从事算法设计、代写程序等业务% 欢迎访问 GreenSim算法仿真团队http:/ 程序功能:% 使用支持向量机进行非线性回归,得到非线性函数 y=f(x1,x2,xn)的支持向量解析式,% 求解二次规划时调用了优化工具箱的 quadprog 函数。本函数在程序入口处对数据进行了% -1,1的归一化处理,所以计算得到的回归解析式的系数是针对归一化数据的,仿真测% 试需使用与

3、本函数配套的 Regression 函数。% 主要参考文献:% 朱国强,刘士荣等.支持向量机及其在函数逼近中的应用.华东理工大学学报% 输入参数列表% X 输入样本原始数据,nl 的矩阵,n 为变量个数,l 为样本个数% Y 输出样本原始数据,1l 的矩阵,l 为样本个数% Epsilon 不敏感损失函数的参数,Epsilon 越大,支持向量越少% C 惩罚系数,C 过大或过小,泛化能力变差% TKF Type of Kernel Function 核函数类型% TKF=1 线性核函数,注意:使用线性核函数,将进行支持向量机的线性回归% TKF=2 多项式核函数% TKF=3 径向基核函数%

4、TKF=4 指数核函数% TKF=5 Sigmoid 核函数% TKF=任意其它值,自定义核函数% Para1 核函数中的第一个参数% Para2 核函数中的第二个参数% 注:关于核函数参数的定义请见 Regression.m 和 SVMNR.m 内部的定义% 输出参数列表% Alpha1 系数% Alpha2 *系数% Alpha 支持向量的加权系数(*)向量% Flag 1l 标记,0 对应非支持向量,1 对应边界支持向量,2 对应标准支持向量% B 回归方程中的常数项%-%-数据归一化处理-nntwarn offX=premnmx(X);Y=premnmx(Y);%-核函数参数初始化-s

5、witch TKFcase 1%线性核函数 K=sum(x.*y)%没有需要定义的参数case 2%多项式核函数 K=(sum(x.*y)+c)pc=Para1;%c=0.1;p=Para2;%p=2;case 3%径向基核函数 K=exp(-(norm(x-y)2/(2*sigma2)sigma=Para1;%sigma=6;case 4%指数核函数 K=exp(-norm(x-y)/(2*sigma2)sigma=Para1;%sigma=3;case 5%Sigmoid 核函数 K=1/(1+exp(-v*sum(x.*y)+c)v=Para1;%v=0.5;c=Para2;%c=0;o

6、therwise%自定义核函数,需由用户自行在函数内部修改,注意要同时修改好几处!%暂时定义为 K=exp(-(sum(x-y).2)/(2*sigma2)sigma=Para1;%sigma=8;end%-构造 K 矩阵-l=size(X,2);K=zeros(l,l);%K 矩阵初始化for i=1:lfor j=1:lx=X(:,i);y=X(:,j);switch TKF%根据核函数的类型,使用相应的核函数构造 K 矩阵case 1K(i,j)=sum(x.*y);case 2K(i,j)=(sum(x.*y)+c)p;case 3K(i,j)=exp(-(norm(x-y)2/(2*

7、sigma2);case 4K(i,j)=exp(-norm(x-y)/(2*sigma2);case 5K(i,j)=1/(1+exp(-v*sum(x.*y)+c);otherwiseK(i,j)=exp(-(sum(x-y).2)/(2*sigma2);endendend%-构造二次规划模型的参数 H,Ft,Aeq,Beq,lb,ub-%支持向量机非线性回归,回归函数的系数,要通过求解一个二次规划模型得以确定Ft=Epsilon*ones(1,l)-Y,Epsilon*ones(1,l)+Y;Aeq=ones(1,l),-ones(1,l);Beq=0;ub=C*ones(2*l,1);

8、%-调用优化工具箱 quadprog 函数求解二次规划 -OPT=optimset;OPT.LargeScale=off;OPT.Display=off;%-整理输出回归方程的系数 -Alpha1=(Gamma(1:l,1);Alpha2=(Gamma(l+1):end,1);Alpha=Alpha1-Alpha2;Flag=2*ones(1,l);%-支持向量的分类 -Err=0.000000000001;for i=1:lAA=Alpha1(i);BB=Alpha2(i);if (abs(AA-0)Err)%标准支持向量endif (abs(AA-0)Err)%标准支持向量endif (a

9、bs(AA-C)Err)for j=1:lif Flag(j)0switch TKFcase 1SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i);case 2SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i)+c)p;case 3SUM=SUM+Alpha(j)*exp(-(norm(X(:,j)-X(:,i)2/(2*sigma2);case 4SUM=SUM+Alpha(j)*exp(-norm(X(:,j)-X(:,i)/(2*sigma2);case 5SUM=SUM+Alpha(j)*1/(1+exp(-v*sum(X(:,j).*X(:,

10、i)+c);otherwiseSUM=SUM+Alpha(j)*exp(-(sum(X(:,j)-X(:,i).2)/(2*sigma2);endendendb=Y(i)-SUM-Epsilon;B=B+b;counter=counter+1;endif (abs(AA-0)Err)for j=1:lif Flag(j)0switch TKFcase 1SUM=SUM+Alpha(j)*sum(X(:,j).*X(:,i);case 2SUM=SUM+Alpha(j)*(sum(X(:,j).*X(:,i)+c)p;case 3SUM=SUM+Alpha(j)*exp(-(norm(X(:,j

11、)-X(:,i)2/(2*sigma2);case 4SUM=SUM+Alpha(j)*exp(-norm(X(:,j)-X(:,i)/(2*sigma2);case 5SUM=SUM+Alpha(j)*1/(1+exp(-v*sum(X(:,j).*X(:,i)+c);otherwiseSUM=SUM+Alpha(j)*exp(-(sum(X(:,j)-X(:,i).2)/(2*sigma2);endendendb=Y(i)-SUM+Epsilon;B=B+b;counter=counter+1;endendif counter=0B=0;elseB=B/counter;end欢迎访问 Gr

12、eenSim 团队主页:http:/ GreenSim算法仿真团队http:/ y=Regression(Alpha,Flag,B,X,Y,TKF,Para1,Para2,x)%-% Regression.m% 与 SVMNR.m 函数配套使用的仿真测试函数% 函数功能:% 本函数相当于支持向量得到的回归方程的解析方程,输入一个待测试的列向量 x,得到一% 个对应的输出值 y% GreenSim 团队原创作品,转载请注明% GreenSim 团队长期从事算法设计、代写程序等业务% 欢迎访问 GreenSim算法仿真团队http:/ 输入参数列表% Alpha 支持向量的加权系数(*)向量% F

13、lag 1l 标记,0 对应非支持向量,1 对应边界支持向量,2 对应标准支持向量% B 回归方程中的常数项% X 输入样本原始数据,nl 的矩阵,n 为变量个数,l 为样本个数% Y 输出样本原始数据,1l 的矩阵,l 为样本个数% Para1 核函数中的第一个参数% Para2 核函数中的第二个参数% 注:关于核函数参数的定义请见 Regression.m 和 SVMNR.m 内部的定义% x 待测试的原始数据,n 1 的列向量% 输出参数列表% y 仿真测试的输出值%-核函数参数初始化-switch TKFcase 1%线性核函数 K=sum(x.*y)%没有需要定义的参数case 2%

14、多项式核函数 K=(sum(x.*y)+c)pc=Para1;%c=0.1;p=Para2;%p=2;case 3%径向基核函数 K=exp(-(norm(x-y)2/(2*sigma2)sigma=Para1;%sigma=6;case 4%指数核函数 K=exp(-norm(x-y)/(2*sigma2)sigma=Para1;%sigma=3;case 5%Sigmoid 核函数 K=1/(1+exp(-v*sum(x.*y)+c)v=Para1;%v=0.5;c=Para2;%c=0;otherwise%自定义核函数,需由用户自行在函数内部修改,注意要同时修改好几处!%暂时定义为 K=

15、exp(-(sum(x-y).2)/(2*sigma2)sigma=Para1;%sigma=8;end%-数据归一化处理 -X,minX,maxX=premnmx(X);x=2*(x-minX)./(maxX-minX)-1;Y,minY,maxY=premnmx(Y);%-计算仿真测试的输出值-l=length(Alpha);SUM=0;for i=1:lif Flag(i)0switch TKFcase 1SUM=SUM+Alpha(i)*sum(x.*X(:,i);case 2SUM=SUM+Alpha(i)*(sum(x.*X(:,i)+c)p;case 3SUM=SUM+Alpha(i)*exp(-(norm(x-X(:,i)2/(2*sigma2);case 4SUM=SUM+Alpha(i)*exp(-norm(x-X(:,i)/(2*sigma2);case 5SUM=SUM+Alpha(i)*1/(1+exp(-v*sum(x.*X(:,i)+c);otherwiseSUM=SUM+Alpha(i)*exp(-(sum(x-X(:,i).2)/(2*sigma2);endendendy=SUM+B;%-反归一化处理 -y=postmnmx(y,minY,maxY);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报