BP神经网络非线性回归研究

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(声明:此程序为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 输入样本原始数据,n×l的矩阵,n为变量个数,l为样本个数

% Y 输出样本原始数据,1×l的矩阵,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 1×l标记,0对应非支持向量,1对应边界支持向量,2对应标准支持向量

% B 回归方程中的常数项

%--------------------------------------------------------------------------

%%

%-----------------------数据归一化处理--------------------------------------

nntwarn off

X=premnmx(X);

Y=premnmx(Y);

%%

%%

%-----------------------核函数参数初始化------------------------------------ switch TKF

case 1

%线性核函数K=sum(x.*y)

%没有需要定义的参数

case 2

%多项式核函数K=(sum(x.*y)+c)^p

c=0.1;

p=2;

case 3

%径向基核函数K=exp(-(norm(x-y))^2/(2*sigma^2))

sigma=10;

case 4

%指数核函数K=exp(-norm(x-y)/(2*sigma^2))

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*sigma^2)))

sigma=8;

end

%%

%%

%-----------------------构造K矩阵------------------------------------------- l=size(X,2);

K=zeros(l,l);%K矩阵初始化

for i=1:l

for j=1:l

x=X(:,i);

y=X(:,j);

switch TKF%根据核函数的类型,使用相应的核函数构造K矩阵

case 1

K(i,j)=sum(x.*y);

case 2

K(i,j)=(sum(x.*y)+c)^p;

case 3

K(i,j)=exp(-(norm(x-y))^2/(2*sigma^2));

case 4

K(i,j)=exp(-norm(x-y)/(2*sigma^2));

case 5

相关文档
最新文档