Matlab fitrsvm自带支持向量回归[通俗易懂]

Matlab fitrsvm自带支持向量回归[通俗易懂]简介fitrsvm在中低维预测变量数据集上训练或交叉验证支持向量机(SVM)回归模型。fitrsvm支持使用内核函数映射预测变量数据,并支持通过二次编程实现目标函数最小化。要在高维数据集(即包含许多预测变量的数据集)上训练线性SVM回归模型,请改用fitrlinear。用法Mdl=fitrsvm(Tbl,ResponseVarName)返回使用表Tbl中的自变量值和表中对应变量名…

大家好,又见面了,我是你们的朋友全栈君。

简介

Matlab可以使用fitrsvm创建回归支持向量机模型。fitrsvm在中低维预测变量数据集上训练或交叉验证支持向量机(SVM)回归模型。 fitrsvm支持使用内核函数映射预测变量数据,并支持通过二次编程实现目标函数最小化。要在高维数据集(即包含许多预测变量的数据集)上训练线性SVM回归模型,请改用fitrlinear。

关键步骤

步骤一:使用fitrsvm构建(训练)回归模型,模型存储数据、参数值、支持向量和算法实现信息;
步骤二:使用训练的模型可以进行,估计resubstitution预测、预测新数据的值、计算resubstitution损失、计算均方误差或不敏感损失。

(1)估计resubstitution预测:

yfit = resubPredict (mdl)

使用存储在mdl. x中的预测器数据,为训练好的支持向量机回归模型mdl返回一个预测对应值的向量yfit。

输入参数:
mdl -完整的、经过训练的SVM回归模型,指定为fitrsvm返回的回归SVM模型。

输出参数:
yfit -预测数值向量。yfit的长度等于训练数据mdl.NumObservations中的观察次数。

(2)预测新数据

yfit = predict(Mdl,X)

描述
基于训练好的支持向量机回归模型Mdl,返回矩阵X中预测数据的预测对应向量。

输入参数
Mdl – SVM回归模型,由fitrsvm返回。

X -用于生成对应的预测数据

(3)计算resubstitution损失

L = resubLoss (mdl)
L = resubLoss (mdl, name, value)

描述
L = resubLoss(mdl)返回支持向量机回归模型mdl的再替换损失,使用存储在mdl中的训练数据。X和对应值存储在mdl.Y中。

L = resubLoss(mdl,Name,Value)返回重新替换丢失,以及由一个或多个名称、值对参数指定的附加选项。例如,您可以指定损失函数或观测权值。

实例用法

Mdl = fitrsvm(Tbl,ResponseVarName)

返回使用表Tbl中的自变量值和表中对应变量名Tbl.ResponseVarName中的因变量值训练得到回归模型Mdl。

Mdl = fitrsvm(Tbl,formula)

返回使用表Tbl中的预测值训练的完整SVM回归模型。公式是响应的解释模型,也是Tbl中预测变量的子集,用于拟合Mdl。

Mdl = fitrsvm(Tbl,Y)

返回经过训练的SVM回归模型,该模型使用表Tbl中的自变量值和向量Y中的因变量值进行训练。

Mdl = fitrsvm(X,Y)

返回一个完整的,经过训练的SVM回归模型,该模型使用矩阵X中的预测值和向量Y中的响应值进行训练。

Mdl = fitrsvm(___,Name,Value)

返回带有一个或多个名称-值对参数指定的其他选项的SVM回归模型。例如,您可以指定内核功能或训练交叉验证的模型。

例子1-默认参数(线性核函数)

clc
clear all
close all

% 加载数据
load carsmall
rng 'default'  % For reproducibility

% 马力和重量作为自变量,MPG作为因变量
X = [Horsepower,Weight];
Y = MPG;

% 返回一个默认的回归支持向量模型
Mdl = fitrsvm(X,Y)

MdlStd = fitrsvm(X,Y,'Standardize',true)
l = resubLoss(Mdl)
lStd = resubLoss(MdlStd)

例子2-高斯核函数

clc
clear all
close all

% 加载数据
% 使用UCI机器学习存储库中的abalone数据训练支持向量机回归模型
% 下载数据,并将其保存在当前文件夹中,名称为“ abalone.csv”
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data';
websave('abalone.csv',url);

% 将数据读入表。指定变量名称
varnames = { 
   'Sex'; 'Length'; 'Diameter'; 'Height'; 'Whole_weight';...
    'Shucked_weight'; 'Viscera_weight'; 'Shell_weight'; 'Rings'};
Tbl = readtable('abalone.csv','Filetype','text','ReadVariableNames',false);
Tbl.Properties.VariableNames = varnames;

% 样本数据包含4177个观测值。除性别外,所有预测变量都是连续的,这是一个类别变量,
% 其可能值为“ M”(对于男性),“ F”(对于女性)和“ I”(对于婴儿)。
% 目的是预测abalone的环数(存储在“环”中)并使用物理测量确定其年龄。

rng default  % For reproducibility
Mdl = fitrsvm(Tbl,'Rings','KernelFunction','gaussian','KernelScale','auto',...
    'Standardize',true)

% 使用点表示法显示Mdl的属性。 例如,检查以确认模型是否收敛以及完成了多少次迭代。
conv = Mdl.ConvergenceInfo.Converged
iter = Mdl.NumIterations

例子3-交叉验证和自动优化

clc
clear all
close all

% 加载数据
load carsmall
rng 'default'  % For reproducibility

X = [Horsepower Weight];
Y = MPG;

% 使用5-fold交叉验证对两个SVM回归模型进行交叉验证。 
% 对于这两种模型,请指定以标准化预测变量。 对于其中一个模型,
% 指定使用默认线性核进行训练,而对于另一个模型,则指定使用高斯核。
MdlLin = fitrsvm(X,Y,'Standardize',true,'KFold',5)
MdlGau = fitrsvm(X,Y,'Standardize',true,'KFold',5,'KernelFunction','gaussian')

mseLin = kfoldLoss(MdlLin)
mseGau = kfoldLoss(MdlGau)


% 使用fitrsvm自动优化超参数。通过使用自动超参数优化,找到使交叉验证损失减少五倍的超参数。
rng default
Mdl = fitrsvm(X,Y,'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName',...
    'expected-improvement-plus'))
% 预测
fit = predict(Mdl,X)
% plot(Y,fit,'.')

Matlab fitrsvm自带支持向量回归[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141016.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 焦点科技怎么老是招人_苹果链,蓝思科技,歌尔股份,立讯精密,欧菲光,谁是老大?…

    焦点科技怎么老是招人_苹果链,蓝思科技,歌尔股份,立讯精密,欧菲光,谁是老大?…苹果链在6月初到7月中旬走了一波行情,目前又到了反复阶段,在大盘逐步整理,又回到结构性的状态的弱势时期,在资金在板块之间游离的情况下,不少投资者把目光关注到近期没有震荡,保持一定平稳的板块,不少投资者就注意到了苹果链板块上,那么这几只个股,究竟谁是老大?蓝思科技大家好,我是蓝思科技,我主营中高端视窗防护玻璃面板、外观防护新材料的研发、生产。不忙,这只我基本的操作,算不上什么,仔细看着大家,我有玻璃…

  • 从零开始学android编程之表格布局管理器(2-1)

    从零开始学android编程之表格布局管理器(2-1)表格布局管理器用TableLayout类表示,该类派生自LinearLayout类,所以TableLayout类也具有LinearLayout类的方法和属性。线性布局管理器LinearLayout将在其中的“组件群”进行横向或者纵向的一字排列。而表格布局管理器TableLayout主要将“组件群”进行表格式的排列,即将“组件群”排列成指定行数和指定列数。1在表格布局管理器中插入行在表

  • PHP fread_php读取文件内容的方法和函数

    PHP fread_php读取文件内容的方法和函数phpfread函数与fread函数用法php教程fread函数与fread函数用法/*fread语法:stringfread(resource$handle,int$length)fread()读取到的字节长度由处理引用的文件指针。读尽快停止对符合下列条件之一:已经读取的字节长度!eof(文件结束)达到一包可用网络(流)已阅读8192字节(打开后用户空间流)*///fread…

  • Vuex入门(3)—— getters,mapGetters,…mapGetters详解[通俗易懂]

    Vuex入门(3)—— getters,mapGetters,…mapGetters详解[通俗易懂]Vuex提供了state这样的状态统一管理树,你可以在vue中用computed计算属性接收这些公共状态,以便使用,当然你也可以在接收原值的基础上对这个值做出一些改造,如computed:{sex:function(){returnthis.$store.state.sex+’加个字符串,算是改造’}}但是如果你的其他组件也要使用这…

  • 怎样防止苹果系统更新_苹果手机屏蔽系统更新描述文件链接,可屏蔽ios12更新…「建议收藏」

    https://beta.thuthuatios.com/tvos/tvOS_12_Beta_Profile.mobileconfig苹果手机屏蔽系统更新描述文件,屏蔽最新ios12版本更新!安装方法:长按复制上面链接,复制到safari浏览器打开浏览,再安装即可,会提示重启!手机重启后,去手机删除已下载的系统更新包ios12.1文件!删除更新包操作:设置-通用-储存空间与iclo…

  • 访问服务器出现406问题[通俗易懂]

    解决方式1、查看Jackson包是否存在2、如果url后缀是.html是不能响应json数据的,需要修改后缀名

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号