赞
踩
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回归模型。例如,您可以指定内核功能或训练交叉验证的模型。
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)
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
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,'.')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。