- 13
- 0
- 约5.09千字
- 约 5页
- 2016-11-04 发布于重庆
- 举报
svm程序
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团队原创作品,转载请注明
% Email:greensim@163.com
% 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矩阵----------------
原创力文档

文档评论(0)