网站大量收购独家精品文档,联系QQ:2885784924

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

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

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
支持向量机非线性回归通用MATLAB源码

支持向量机非线性回归通用MATLAB源码 支持向量机和BP神经网络都可以用来做非线性回归拟合,但它们的原理是不相同的,支持向量机基于结构风险最小化理论,普遍认为其泛化能力要比神经网络的强。大量仿真证实,支持向量机的泛化能力强于BP网络,而且能避免神经网络的固有缺陷——训练结果不稳定。本源码可以用于线性回归、非线性回归、非线性函数拟合、数据建模、预测、分类等多种应用场合,GreenSim团队推荐您使用。 function [Alpha1,Alpha2,Alpha,Flag,B]=SVMNR(X,Y,Epsilon,C,TKF,Para1,Para2) %% % SVMNR.m % Support Vector Machine for Nonlinear Regression % All rights reserved %% % 支持向量机非线性回归通用程序 % GreenSim团队原创作品,转载请注明 % GreenSim团队长期从事算法设计、代写程序等业务 % 欢迎访问GreenSim——算法仿真团队→/greensim % 程序功能: % 使用支持向量机进行非线性回归,得到非线性函数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=任意其它值,自定义核函数 % Para1 核函数中的第一个参数 % Para2 核函数中的第二个参数 % 注:关于核函数参数的定义请见Regression.m和SVMNR.m内部的定义 % 输出参数列表 % 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=Para1;%c=0.1; p=Para2;%p=2; case 3 %径向基核函数 K=exp(-(norm(x-y))^2/(2*sigma^2)) sigma=Para1;%sigma=6; case 4 %指数核函数 K=exp(-norm(x-y)/(2*sigma^2)) 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=exp(-(sum((x-y).^2)/(2*sigma^2))) sigma=Para1;%sigma=8; end %% %% %-----------------------构造K矩阵------------------------------------------- l=size(X,2); K=zeros(l,l);%K矩阵初始化 for i=1:l

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档