主要内容

预测

类别:RegressionLinear

预测线性回归模型的响应

描述

实例

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

实例

YHat=预测(Mdl,X“ObservationsIn”,)指定预测器数据观察维度“行”(默认)或“专栏”.例如,指定“ObservationsIn”、“列”指示预测器数据中的列与观测值相对应。

输入参数

全部展开

线性回归模型,指定为RegressionLinear模型对象。您可以创建RegressionLinear模型对象使用菲特利恩

用于生成响应的预测器数据,指定为完整或稀疏数值矩阵或表。

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

  • 对于数值矩阵:

    • 的列中的变量X必须与训练的预测变量具有相同的顺序Mdl

    • 如果你训练Mdl使用表格(例如,资源描述),资源描述那么,只包含数值预测变量X可以是一个数值矩阵。处理数值预测资源描述作为培训期间的分类预测,使用CategoricalPredictors的名称-值对参数菲特利恩.如果资源描述包含异构预测变量(例如,数字和分类数据类型)和X是一个数值矩阵,那么预测抛出一个错误。

  • 一个表:

    • 预测除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。

    • 如果你训练Mdl使用表格(例如,资源描述),然后所有预测变量X必须具有与训练的变量相同的变量名和数据类型Mdl(存储在Mdl.1名称).但是,的列顺序X不需要对应于的列顺序资源描述而且资源描述X可以包含额外的变量(响应变量、观察权重等),但是预测忽视他们。

    • 如果你训练Mdl使用一个数字矩阵,然后预测器命名Mdl.1名称必须与中对应的预测器变量名相同X.要在训练期间指定预测器名称,请使用PredictorNames的名称-值对参数菲特利恩.所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量、观察权重等),但是预测忽视他们。

笔记

如果调整预测矩阵的方向,使观测值与列相对应,并指定“ObservationsIn”、“列”,则您可能会体验到优化执行时间的显著减少。不能指定“ObservationsIn”、“列”对于表中的预测数据。

数据类型:||桌子

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

笔记

如果调整预测矩阵的方向,使观测值与列相对应,并指定“ObservationsIn”、“列”,则您可能会体验到优化执行时间的显著减少。不能指定“ObservationsIn”、“列”对于表中的预测数据。

输出参数

全部展开

预测的响应,返回为N——- - - - - -L数字矩阵。N是中的观察数XL正规化强度的数量在吗Mdl。LambdaYHat (,J)这是观察的反应使用具有正则化强度的线性回归模型兰姆达(J)

使用具有正则化强度的模型预测响应J Y ^ J = x β J + B J

  • x是来自预测数据矩阵的观察吗X,是行向量。

  • β J 为估计的系数列向量。软件将这个向量存储在其中Mdl。β(:,J)

  • B J 软件存储在其中的估计的标量偏差偏误(J)

例子

全部展开

从这个模型中模拟10000次观测

Y = x 1. 0 0 + 2. x 2. 0 0 + E

  • X = x 1. , , x 1. 0 0 0 是具有10%非零标准法线元素的10000 x 1000稀疏矩阵。

  • E为随机正态误差,均值为0,标准差为0.3。

rng (1)%的再现性n=1e4;d=1e3;nz=0.1;X=sprandn(n,d,nz);Y=X(:,100)+2*X(:,200)+0.3*randn(n,1);

训练线性回归模型。保留30%的观察结果作为坚持样本。

CVMdl = fitrlinear (X, Y,“坚持”, 0.3);Mdl = CVMdl。训练有素的{1}
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0066 Lambda: 1.4286e-04 Learner: 'svm'属性,方法

CVMdl是一个回归分段线性模型。它包含属性训练有素的,这是一个1 × 1单元格数组RegressionLinear软件使用训练集进行训练的模型。

从分区定义中提取训练和测试数据。

trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);

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

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

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

预测最佳表现,线性回归模型,使用套索惩罚和最小二乘。

模拟10000个观察值,如预测测试样本响应

rng (1)%的再现性n=1e4;d=1e3;nz=0.1;X=sprandn(n,d,nz);Y=X(:,100)+2*X(:,200)+0.3*randn(n,1);

从中创建一组15个对数间隔的正则化强度 1. 0 - 5. 通过 1. 0 - 1.

λ=对数空间(-5,-1,15);

旨在模型。要提高执行速度,可以调换预测器数据并指定观察结果在列中。利用SpaRSA优化目标函数。

X = X ';CVMdl = fitrlinear (X, Y,“ObservationsIn”,“专栏”,“KFold”5,“拉姆达”λ,...“学习者”,“租赁广场”,“规划求解”,“斯巴萨”,“正规化”,“套索”);numCLModels =元素个数(CVMdl.Trained)
numCLModels = 5

CVMdl是一个回归分段线性模特,因为菲特利恩实现5倍交叉验证,CVMdl包含5RegressionLinear软件在每个折叠上训练的模型。

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

Mdl1 = CVMdl。训练有素的{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15 double] Bias:[-0.0049 -0.0049 -0.0049 -0.0049 -0.0048…[1.0000e-05 1.9307e-05 3.7276e-05 7.1969e-05…]最小二乘的性质,方法

Mdl1是一个RegressionLinear模型对象。菲特利恩构造Mdl1通过前四次的训练,因为兰姆达你能想到一个正规化强度的序列吗Mdl1作为11个模型,每个正规化强度在兰姆达

估计交叉验证的MSE。

mse=kfoldLoss(CVMdl);

更高的兰姆达导致预测变量的稀疏性,这是回归模型的一个很好的品质。对于每个正则化强度,使用整个数据集和交叉验证模型时相同的选项来训练线性回归模型。确定每个模型的非零系数的数目。

Mdl = fitrlinear (X, Y,“ObservationsIn”,“专栏”,“拉姆达”λ,...“学习者”,“租赁广场”,“规划求解”,“斯巴萨”,“正规化”,“套索”);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}Lambda”)举行

图中包含2个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含一个类型为line的对象。

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

idxFinal = 10;

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

idxFinal MdlFinal = selectModels (Mdl)
MdlFinal = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0050 Lambda: 0.0037初学者:'最小二乘'属性,方法
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,nz);YHat=predict(mdl最终,XNew,“ObservationsIn”,“专栏”);

扩展功能

R2016a中引入