BP神经网络非线性回归研究.doc_第1页
BP神经网络非线性回归研究.doc_第2页
BP神经网络非线性回归研究.doc_第3页
BP神经网络非线性回归研究.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(声明:此程序为GreenSim团队的原创作品,我们删除了程序中的若干行,一般人是难以将其补充完整并正确运行的,如果有意购买此程序,请与我们联系,Email:)function Alpha1,Alpha2,Alpha,Flag,B=SVMNR(X,Y,Epsilon,C,TKF)% SVMNR.m% Support Vector Machine for Nonlinear Regression% ChengAihua,PLA Information Engineering University,ZhengZhou,China% Email:% All rights reserved% 支持向量机非线性回归通用程序% 程序功能:% 使用支持向量机进行非线性回归,得到非线性函数y=f(x1,x2,xn)的支持向量解析式,% 求解二次规划时调用了优化工具箱的quadprog函数。本函数在程序入口处对数据进行了% -1,1的归一化处理,所以计算得到的回归解析式的系数是针对归一化数据的,仿真测% 试需使用与本函数配套的Regression函数。% 主要参考文献:% 朱国强,刘士荣等.支持向量机及其在函数逼近中的应用.华东理工大学学报% 输入参数列表% X 输入样本原始数据,nl的矩阵,n为变量个数,l为样本个数% Y 输出样本原始数据,1l的矩阵,l为样本个数% Epsilon 不敏感损失函数的参数,Epsilon越大,支持向量越少% C 惩罚系数,C过大或过小,泛化能力变差% TKF Type of Kernel Function 核函数类型% TKF=1 线性核函数,注意:使用线性核函数,将进行支持向量机的线性回归% TKF=2 多项式核函数% TKF=3 径向基核函数% TKF=4 指数核函数% TKF=5 Sigmoid核函数% TKF=任意其它值,自定义核函数% 输出参数列表% Alpha1 系数% Alpha2 *系数% Alpha 支持向量的加权系数(*)向量% Flag 1l标记,0对应非支持向量,1对应边界支持向量,2对应标准支持向量% B 回归方程中的常数项%-%-数据归一化处理-nntwarn offX=premnmx(X);Y=premnmx(Y);%-核函数参数初始化-switch TKFcase 1%线性核函数 K=sum(x.*y)%没有需要定义的参数case 2%多项式核函数 K=(sum(x.*y)+c)pc=0.1;p=2;case 3%径向基核函数 K=exp(-(norm(x-y)2/(2*sigma2)sigma=10;case 4%指数核函数 K=exp(-norm(x-y)/(2*sigma2)sigma=10;case 5%Sigmoid核函数 K=1/(1+exp(-v*sum(x.*y)+c)v=0.5;c=0;otherwise%自定义核函数,需由用户自行在函数内部修改,注意要同时修改好几处!%暂时定义为 K=exp(-(sum(x-y).2)/(2*sigma2)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*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-%支持向量机非线性回归,回归函数的系数,要通过求解一个二次规划模型得以确定Beq=0;lb=eps.*ones(2*l,1);ub=C*ones(2*l,1);%-调用优化工具箱quadprog函数求解二次规划-OPT=optimset;OPT.LargeScale=off;OPT.Display=off;%-整理输出回归方程的系数-Alpha1=(Gamma(1:l,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)&(abs(BB-0)Err)&(AAC-Err)&(abs(BB-0)=Err)Flag(i)=2;%标准支持向量endif (abs(AA-0)Err)&(BBC-Err)Flag(i)=2;%标准支持向量endif (abs(AA-C)=Err)&(abs(BB-0)=Err)Flag(i)=1;%边界支持向量endif (abs(AA-0)=Err)&(abs(BB-C)Err)&(AAC-Err)&(abs(BB-0)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(:,i)+c);otherwiseSUM=SUM+Alpha(j)*exp(-(sum(X(:,j)-X(:,i).2)/(2*sigma2);endendendB=B+b;counter=counter+1;endif (abs(AA-0)Err)&(BB0switch 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(:,i)+c);otherwiseSUM=SUM+Alpha(j)*exp(-(sum(X(:,j)-X(:,i).2)/(2*sigma2);endendendb=Y(i)-SUM+Epsilon;counter=counter+1;endendif counter=0B=0;elseB=B/counter;end 为检验支持向量机非线性回归的泛化能力,本文做了如下实验:把第i(i=1,2,21)组原始数据样本抽取出来,把剩下的20组数据作为学习样本,输入支持向量机非线性回归的程序,计算相应的非线性回归方程,并把抽取出来的那一组数据作为测试数据,计算输出值,并与其原始值做比较,计算绝对误差和相对误差。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21绝对误差 -0.02 0.04 0.05 0.10 0.00 -0.03 -0.05 -0.03 -0.03 -0.08 0.07 -0.09 -0.01 -0.01 -0.02 0.03 -0.02 0.00 0.18 0.13 -0.12相对误差 -0.05 0.06 0.09 0.17 0.00 -0.04 -0.08 -0.04 -0.05 -0.11 0.16 -0.16 -0.01 -0.02 -0.04 0.04 -0.02 0.00 0.51 0.26 -0.14平均相对误差为0.0978 BP神经网络有着很强的非线性拟合能力,能以任意精度逼近任意非线性连续函数,当然其前提条件是神经网络构造适当并且训练充分。对于本文的19维的输入变量,而只有少量的20组训练样本的情况下,其泛化能力表现如何呢?我们使用Matlab自带的神经网络工具箱,构造并训练了一个BP神经网络,其仿真误差如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21绝对误差 0.04 0.13 0.38 0.09 -0.27 0.18 -0.04 0.31 -0.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论