主要内容

预测

类:RegressionLinear

线性回归模型的预测反应

描述

例子

YHat=预测(Mdl,X)回报预测响应预测中的每个观测数据X基于线性回归模型的训练MdlYHat包含每个正则化强度的反应Mdl

例子

YHat=预测(Mdl,X“ObservationsIn”,)指定了预测数据观察维度“行”(默认)或“列”。例如,指定“ObservationsIn”、“列”预测数据表明列对应于观测。

输入参数

全部展开

线性回归模型,指定为一个RegressionLinear模型对象。您可以创建一个RegressionLinear模型对象使用fitrlinear

预测数据用于生成反应,指定为一个完整的或稀疏的数字矩阵或表。

默认情况下,每一行X对应于一个观察,每一列对应一个变量。

  • 一个数字矩阵:

    • 变量的列X必须有相同的订单预测变量,训练吗Mdl

    • 如果你训练Mdl使用一个表(例如,资源描述),资源描述只包含数字预测变量,然后X可以是一个数字矩阵。将数值预测资源描述分类在训练、识别分类预测使用CategoricalPredictors名称-值对的观点fitrlinear。如果资源描述包含了异构预测变量(例如,数字和分类数据类型)X是一个数字矩阵,然后呢预测抛出一个错误。

  • 一个表:

    • 预测不支持多列变量或细金宝app胞数组以外的细胞阵列的特征向量。

    • 如果你训练Mdl使用一个表(例如,资源描述),那么所有的预测变量X必须有相同的变量名和数据类型的变量训练吗Mdl(存储在Mdl.PredictorNames)。然而,列的顺序X不需要对应的列顺序资源描述。同时,资源描述X可以包含额外的变量(响应变量,观察体重、等等),但预测忽略了它们。

    • 如果你训练Mdl使用一个数字矩阵,然后预测名称Mdl.PredictorNames必须与相应的预测变量的名字X。使用指定预测名称在训练PredictorNames名称-值对的观点fitrlinear。所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量,观察体重、等等),但预测忽略了它们。

请注意

如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少优化执行时间。你不能指定“ObservationsIn”、“列”预测数据表。

数据类型:||

预测数据观察维度,指定为“列”“行”

请注意

如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少优化执行时间。你不能指定“ObservationsIn”、“列”预测数据表。

输出参数

全部展开

预测反应,作为一个返回n——- - - - - -l数字矩阵。n观察的数量吗Xl正规化的数量优势在吗Mdl.LambdaYHat (,j)是观察的反应吗使用线性回归模型的正则化的力量Mdl.Lambda (j)

预测响应使用模型和正则化的力量j y ^ j = x β j + b j

  • x矩阵是一个观察的预测数据X,是行向量。

  • β j 是估计的列向量的系数。软件商店这个向量Mdl.Beta (:,j)

  • b j 估计,标量偏见,软件商店Mdl.Bias (j)

例子

全部展开

从这个模型模拟10000年观测

y = x 1 0 0 + 2 x 2 0 0 + e

  • X = x 1 , , x 1 0 0 0 是一个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);

训练和测试样本预测的反应。

yHatTrain =预测(Mdl X (trainIdx:));yHatTest =预测(Mdl X (testIdx:));

因为有一个正规化的力量Mdl,yHatTrainyHatTest是数字向量。

预测反应的表现最好,线性回归模型使用lasso-penalty和最小二乘法。

在模拟10000次观测结果测试样本预测的反应

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对数间隔正则化的优势 1 0 - - - - - - 5 通过 1 0 - - - - - - 1

λ= logspace (5、1、15);

旨在模型。提高执行速度,转置预测数据和指定列的观测。使用SpaRSA优化目标函数。

X = X ';CVMdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“KFold”5,“λ”λ,“学习者”,“leastsquares”,“规划求解”,“sparsa”,“正规化”,“套索”);numCLModels =元素个数(CVMdl.Trained)
numCLModels = 5

CVMdl是一个RegressionPartitionedLinear模型。因为fitrlinear实现5倍交叉验证,CVMdl包含5RegressionLinear火车在每个折叠模型软件。

显示第一个训练有素的线性回归模型。

Mdl1 = CVMdl.Trained {1}
Mdl1 = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x15双]偏见:[-0.0049 -0.0049 -0.0049 -0.0049 -0.0049 -0.0048……λ:[1.0000 7.1969 3.7276 1.9307 e-05 e-05 e-05 e-05……学生:“leastsquares”属性,方法

Mdl1是一个RegressionLinear模型对象。fitrlinear构造Mdl1通过培训第一个4折。因为λ是一个序列的正则化的优势,你能想到什么Mdl111岁的模型,每个正规化的力量在一个λ

估计旨在MSE。

mse = kfoldLoss (CVMdl);

更高的值λ导致预测变量稀疏,这是一个好质量的回归模型。对于每一个正规化的力量,训练一个线性回归模型使用整个数据集和旨在模型时相同的选项。确定数量的非零系数模型。

Mdl = fitrlinear (X, Y,“ObservationsIn”,“列”,“λ”λ,“学习者”,“leastsquares”,“规划求解”,“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}λ的)举行

图包含2轴对象。坐标轴对象1包含一个类型的对象。坐标轴对象2包含一个类型的对象。

选择平衡的正则化强度指数预测变量稀疏和低MSE(例如,λ(10))。

idxFinal = 10;

提取模型与相应的均方误差最小。

idxFinal MdlFinal = selectModels (Mdl)
MdlFinal = RegressionLinear ResponseName:‘Y’ResponseTransform:“没有一个”测试:[1000 x1双]偏见:-0.0050λ:0.0037学习者:“leastsquares”属性,方法
idxNZCoeff =找到(MdlFinal.Beta ~ = 0)
idxNZCoeff =2×1100 200
EstCoeff = Mdl.Beta (idxNZCoeff)
EstCoeff =2×11.0051 - 1.9965

MdlFinal是一个RegressionLinear模型与一个正规化的力量。非零系数EstCoeff接近系数,模拟数据。

模拟10个新观察,并使用表现最佳的模型预测相应的反应。

XNew = sprandn (d, 10日,新西兰);YHat =预测(MdlFinal XNew,“ObservationsIn”,“列”);

扩展功能

介绍了R2016a