损失
回归线性回归模型的损失
描述
返回MSE的预测数据l
=损失(Mdl
,资源描述
,ResponseVarName
)资源描述
和真实的反应Tbl.ResponseVarName
。
请注意
如果预测数据X
或预测变量资源描述
包含任何缺失值,损失
函数可以返回NaN。更多细节,请参阅损失可以返回NaN预测数据缺失值。
输入参数
Mdl
- - - - - -线性回归模型
RegressionLinear
模型对象
线性回归模型,指定为一个RegressionLinear
模型对象。您可以创建一个RegressionLinear
模型对象使用fitrlinear
。
X
- - - - - -预测数据
完整的矩阵|稀疏矩阵
预测数据,指定为一个n——- - - - - -p完整的或稀疏矩阵。这个方向的X
表明行对应于个人观察,和列对应于个人预测变量。
请注意
如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”
,那么你可能会经历显著减少计算时间。
的长度Y
和观察的数量X
必须是相等的。
数据类型:单
|双
资源描述
- - - - - -样本数据
表
样本数据用于训练模型,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含额外的列和观察权重。资源描述
必须包含所有的预测用于火车Mdl
。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
如果资源描述
包含响应变量用于火车Mdl
,那么你不需要指定ResponseVarName
或Y
。
如果你训练Mdl
使用样本数据包含在一个表中,然后输入数据损失
也必须在一个表中。
ResponseVarName
- - - - - -响应变量名
变量的名字资源描述
响应变量名称,指定为一个变量的名字资源描述
。响应变量必须是一个数字向量。
如果您指定ResponseVarName
,那么你必须指定它作为特征向量或字符串标量。例如,如果响应变量是存储为Tbl.Y
,然后指定ResponseVarName
作为“Y”
。否则,软件将所有列资源描述
,包括Tbl.Y
预测因子。
数据类型:字符
|字符串
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
LossFun
- - - - - -损失函数
mse的
(默认)|“epsiloninsensitive”
|函数处理
损失函数,指定为逗号分隔组成的“LossFun”
和一个内置的损失函数名或函数句柄。
下表列出了可用的损失函数。指定一个使用其相应的价值。表中,
β是一个向量的p系数。
x是一个观察从p预测变量。
b是标量的偏见。
价值 描述 “epsiloninsensitive”
Epsilon-insensitive损失: mse的
均方误差: “epsiloninsensitive”
只适合SVM的学习者。指定你自己的函数使用函数处理符号。
让n被观察的数量
X
。你的函数必须有这个签名lossvalue =
lossfun
(Y, Yhat W)输出参数
lossvalue
是一个标量。你选择函数名(
lossfun
)。Y
是一个n维向量观察到的反应。损失
通过输入参数Y
在Y
。Yhat
是一个n维向量预测的反应,这是类似的输出预测
。W
是一个n1数字的观察向量权重。
指定你的函数使用
“LossFun”@
。lossfun
数据类型:字符
|字符串
|function_handle
ObservationsIn
- - - - - -预测数据观察维度
“行”
(默认)|“列”
预测数据观察维度,指定为“行”
或“列”
。
请注意
如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”
,那么你可能会经历显著减少计算时间。你不能指定“ObservationsIn”、“列”
预测数据表。
数据类型:字符
|字符串
输出参数
请注意
如果Mdl.FittedLoss
是mse的
在目标函数,那么损失项MSE的一半。损失
默认返回MSE。因此,如果您使用损失
错误检查resubstitution(训练),然后有一个MSE和优化结果之间的差异fitrlinear
的回报。
例子
估计测试样本的均方误差
从这个模型模拟10000年观测
是一个10000 - 10% - 1000稀疏矩阵非零标准正态元素。
e是随机的正常误差均值为0和标准偏差0.3。
rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X (:, 100) + 2 * (:, 200) + 0.3 * randn (n, 1);
火车一个线性回归模型。储备的30%作为抵抗样本观察。
CVMdl = fitrlinear (X, Y,“坚持”,0.3);Mdl = CVMdl.Trained {1}
Mdl = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x1双]偏见:-0.0066λ:1.4286 e-04学习者:“支持向量机”属性,方法
CVMdl
是一个RegressionPartitionedLinear
模型。它包含属性训练有素的
,这是一个1×1单元阵列举行RegressionLinear
使用训练集模型的软件培训。
从分区中提取的训练和测试数据的定义。
trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);
训练和测试样本估计均方误差。
mseTrain =损失(Mdl X (trainIdx:), Y (trainIdx))
mseTrain = 0.1496
mseTest =损失(Mdl X (testIdx:), Y (testIdx))
mseTest = 0.1798
因为有一个正规化的力量Mdl
,mseTrain
和mseTest
是数字标量。
指定自定义回归损失
从这个模型模拟10000年观测
是一个10000 - 10% - 1000稀疏矩阵非零标准正态元素。
e是随机的正常误差均值为0和标准偏差0.3。
rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X (:, 100) + 2 * (:, 200) + 0.3 * randn (n, 1);X = X ';%将观测列速度训练
火车一个线性回归模型。储备的30%作为抵抗样本观察。
CVMdl = fitrlinear (X, Y,“坚持”,0.3,“ObservationsIn”,“列”);Mdl = CVMdl.Trained {1}
Mdl = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x1双]偏见:-0.0066λ:1.4286 e-04学习者:“支持向量机”属性,方法
CVMdl
是一个RegressionPartitionedLinear
模型。它包含属性训练有素的
,这是一个1×1单元阵列举行RegressionLinear
使用训练集模型的软件培训。
从分区中提取的训练和测试数据的定义。
trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);
创建一个匿名函数,措施Huber损失( = 1),
在哪里
观察剩余吗j。定制的损失函数必须用特定的形式。编写一个定制的损失函数规则,请参阅“LossFun”
名称-值对的论点。
huberloss = @ (Y, Yhat, W)和(W . * ((0.5 * (abs (Y-Yhat) < = 1)。* (Y-Yhat) ^ 2) +…((abs (Y-Yhat) > 1)。* abs (Y-Yhat) -0.5))) / (W)之和;
估计训练集和测试集使用Huber损失函数回归损失。
eTrain =损失(Mdl X (:, trainIdx), Y (trainIdx),“LossFun”huberloss,…“ObservationsIn”,“列”)
eTrain = -0.4186
基线测试=损失(Mdl X (:, testIdx), Y (testIdx),“LossFun”huberloss,…“ObservationsIn”,“列”)
基线测试= -0.4010
找到好的套索惩罚使用回归损失
从这个模型模拟10000年观测
是一个10000 - 10% - 1000稀疏矩阵非零标准正态元素。
e是随机的正常误差均值为0和标准偏差0.3。
rng (1)%的再现性n = 1 e4;d = 1 e3;新西兰= 0.1;X = sprandn (n, d,新西兰);Y = X (:, 100) + 2 * (:, 200) + 0.3 * randn (n, 1);
创建一组15对数间隔正则化的优势 通过 。
λ= logspace (4 1、15);
坚持30%的数据进行测试。识别测试样本指标。
本量利= cvpartition(元素个数(Y),“坚持”,0.30);idxTest =测试(cvp);
火车一个线性回归模型使用套索处罚的优势λ
。指定正则化的优点,使用SpaRSA优化目标函数,数据分区。提高执行速度,转置预测数据和指定列的观测。
X = X ';CVMdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“λ”λ,…“规划求解”,“sparsa”,“正规化”,“套索”,“CVPartition”、本量利);Mdl1 = CVMdl.Trained {1};元素个数(Mdl1.Lambda)
ans = 15
Mdl1
是一个RegressionLinear
模型。因为λ
是15维向量的正则化优势,你能想到什么Mdl1
15训练模型,每个正则化的力量。
估计每个正规化的试样均方误差模型。
mse =损失(Mdl1 X (:, idxTest), Y (idxTest),“ObservationsIn”,“列”);
更高的值λ
导致预测变量稀疏,这是一个好质量的回归模型。重新培训模型使用整个数据集和所有选择以前,除了数据分区规范。确定数量的非零系数模型。
Mdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“λ”λ,…“规划求解”,“sparsa”,“正规化”,“套索”);numNZCoeff = (Mdl.Beta ~ = 0)之和;
在同一人物,情节的MSE和频率非零系数为每个正则化的力量。所有变量在对数尺度的阴谋。
图;[h, hL1, hL2] = plotyy (log10(λ)log10 (mse),…log10(λ)log10 (numNZCoeff));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_ {10} MSE的)ylabel (h (2),“log_ {10} nonzero-coefficient频率”)包含(“log_{10}λ的)举行从
选择的指数或指数λ
平衡最小分类误差和预测变量稀疏(例如,λ(11)
)。
idx = 11;idx MdlFinal = selectModels (Mdl);
MdlFinal
是一个培训RegressionLinear
模型对象,使用λ(11)
作为一个正规化的力量。
扩展功能
高大的数组
计算和数组的行比装入内存。
版本历史
介绍了R2016aR2022a:损失
可以返回NaN和缺失值预测数据
的损失
函数不再省略了一个观察南预测计算加权平均回归时的损失。因此,损失
现在可以返回NaN当预测数据X
或预测变量资源描述
包含任何缺失值。在大多数情况下,如果测试集观测不含缺失的预测,损失
函数不返回NaN。
这一变化提高了回归模型的自动选择,当你使用fitrauto
。这种变化之前,软件可能会选择一个模型(将最好的预测新数据)的反应与一些non-NaN预测。
如果损失
在您的代码返回NaN,你可以更新你的代码来避免这一结果。通过删除或替换缺失值rmmissing
或fillmissing
,分别。
下表显示的回归模型损失
目标函数可以返回NaN。更多细节,请参见兼容性的考虑损失
函数。
模型类型 | 全部或紧凑的模型对象 | 损失 目标函数 |
---|---|---|
高斯过程回归(GPR)模型 | RegressionGP ,CompactRegressionGP |
损失 |
高斯核函数回归模型 | RegressionKernel |
损失 |
线性回归模型 | RegressionLinear |
损失 |
神经网络回归模型 | RegressionNeuralNetwork ,CompactRegressionNeuralNetwork |
损失 |
万博1manbetx支持向量机(SVM)回归模型 | RegressionSVM ,CompactRegressionSVM |
损失 |
另请参阅
Beispiel offnen
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
MATLAB-Befehl
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。