clc
clear
%close all
% ------------------------------------------------------------%
% 定义核函数及相关参数
C = 100; % 拉格朗日乘子上界
e = 0.2; % 不敏感损失函数的参数,Epsilon越大,支持向量越少
%ker = struct('type','linear');
%ker = struct('type','ploy','degree',5,'offset',1);
ker = struct('type','gauss','width',0.6);
%ker = struct('type','tanh','gamma',1,'offset',0);
% ker - 核参数(结构体变量)
% the following fields:
% type - linear : k(x,y) = x'*y
% poly : k(x,y) = (x'*y+c)^d
% gauss : k(x,y) = exp(-0.5*(norm(x-y)/s)^2)
% tanh : k(x,y) = tanh(g*x'*y+c)
% degree - Degree d of polynomial kernel (positive scalar).
% offset - Offset c of polynomial and tanh kernel (scalar, negative for tanh).
% width - Width s of Gauss kernel (positive scalar).
% gamma - Slope g of the tanh kernel (positive scalar).
% ------------------------------------------------------------%
% 构造两类训练样本
n = 50;
rand('state',42);
X = linspace(-4,4,n); % 训练样本,d×n的矩阵,n为样本个数,d为样本维数,这里d=1
Ys = (1-X+2*X.^2).*exp(-.5*X.^2);
f = 0.2; % 相对误差
Y = Ys+f*max(abs(Ys))*(2*rand(size(Ys))-1)/2; % 训练目标,1×n的矩阵,n为样本个数,值为期望输出
figure;
plot(X,Ys,'b-',X,Y,'b*');
title('\epsilon-SVR');
hold on;
% ------------------------------------------------------------%
% 训练支持向量机
tic
svm = svmTrain('svr_epsilon',X,Y,ker,C,e);
t_train = toc
% svm 支持向量机(结构体变量)
% the following fields:
% type - 支持向量机类型 {'svc_c','svc_nu','svm_one_class','svr_epsilon','svr_nu'}
% ker - 核参数
% x - 训练样本,d×n的矩阵,n为样本个数,d为样本维数
% y - 训练目标,1×n的矩阵,n为样本个数
% a - 拉格朗日乘子,1×n的矩阵
% ------------------------------------------------------------%
% 寻找支持向量
a = svm.a;
epsilon = 1e-8; % 如果"绝对值"小于此值则认为是0
i_sv = find(abs(a)>epsilon); % 支持向量下标,这里对abs(a)进行判定
plot(X(i_sv),Y(i_sv),'ro');
% ------------------------------------------------------------%
% 测试输出
tic
Yd = svmSim(svm,X); % 测试输出
t_sim = toc
plot(X,Yd,'r--');
hold off;
Main_SVR_Epsilon.rar_littleg3t_svr matlab_svr matlab程序_svr 回归_支持
版权申诉
135 浏览量
2022-07-14
21:09:25
上传
评论
收藏 1KB RAR 举报
JonSco
- 粉丝: 66
- 资源: 1万+
最新资源
- JavaScript《基于自动分析数据并给出营业建议的餐厅管理系统(接入AI) 》+源代码+项目说明及资料
- 355670834783295707ad04e-427f-4cde-9589-e578224a8459.zip
- 动态sql解析引擎,类似mybatis动态sql的功能
- EDA365-Skill-V2.5安装包,支持Allegro17.x版本
- C# 常用单词汇总,常用单词汇总
- 【ERP标准流程-标准流程-库内业务管理】(DOC 14页).doc
- Python《数据库期末作业-餐厅点单系统 》+源代码+设计资料
- 学生成绩管理系统(C++课程设计
- 双指针法判断链表有环-go语言实现
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0