预测

类:RegressionLinear

预测线性回归模型的响应

描述

YHat=预测(MDLX返回预测在预测数据中的每个观测响应X基于训练的线性回归模型MDLYHat包含在每个正规化强度响应MDL

YHat=预测(MDLX名称,值返回与由一个或多个指定的附加选项预测响应名称,值对参数。例如,指定在预测数据对应于观察结果的列。

输入参数

展开全部

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

预测数据,指定为ñ-通过-p全或稀疏矩阵。的这种取向X表明行对应于个人的观察,以及列对应于个体预测变量。

注意

如果你的定位预测矩阵,以便观察对应的列,并指定'ObservationsIn', '列',那么你可能会遇到在计算时间减少显著。

长度ÿ和观察的数量X必须相等。

数据类型:|

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

预测数据观测尺寸,指定为逗号分隔的一对组成的“ObservationsIn”'列'要么“行”

注意

如果你的定位预测矩阵,以便观察对应的列,并指定'ObservationsIn', '列',那么你可能会遇到的优化,执行时间显著减少。

输出参数

展开全部

预计响应,返回为ñ-通过-大号数字矩阵。ñ是观测的数量X大号是正规化的优势在数Mdl.LambdaYHat(一世Ĵ是用于观察响应一世使用具有正则化强度的线性回归模型Mdl.Lambda(Ĵ

使用具有正则化强度模型中的预测响应Ĵ ÿ ^ Ĵ = X β Ĵ + b Ĵ

  • X是从预测数据矩阵观察到的吗X和是行向量。

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

  • b Ĵ 是估计,标量偏差,其软件商店中Mdl.Bias(Ĵ

例子

展开全部

从这个模型模拟10000点意见

ÿ = X 1 0 0 + 2 X 2 0 0 + Ë

  • X = X 1 X 1 0 0 0 是用10%的非零标准正常元件10000通过-1000稀疏矩阵。

  • Ë是均值为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.Trained {1}
MDL = RegressionLinear ResponseName: 'Y' ResponseTransform: '无' 测试版:[1000x1双]偏差:-0.0066 LAMBDA:1.4286e-04学习者: 'SVM' 的属性,方法

CVMdlRegressionPartitionedLinear模型。它包含属性熟练,这是一个1×1单元阵列保持RegressionLinear模型,使用软件中的训练集训练。

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

trainIdx =训练(CVMdl.Partition);testIdx =试验(CVMdl.Partition);

预测训练 - 和测试样品的反应。

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

因为在一个正则强MDLyHatTrainyHatTest是数字载体。

预测从使用套索-罚分和最小二乘效果最佳的,线性回归模型的响应。

模拟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 - 通过 1 0 - 1

波长= LOGSPACE(-5,-1,15);

交叉验证模式。为了提高执行速度,转的预测数据,并指定该观测列。优化利用SpaRSA目标函数。

X = X';CVMdl = fitrlinear(X,Y,“ObservationsIn”'列''KFold'5,“拉姆达”,λ,...'学习者'“最小二乘法”“求解”'sparsa'“正规化”'套索');numCLModels =元素个数(CVMdl.Trained)
numCLModels = 5

CVMdlRegressionPartitionedLinear模型。因为fitrlinear工具5倍交叉验证,CVMdl包含5个RegressionLinear模型上的每个褶皱的软件列车。

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

Mdl1 = CVMdl.Trained {1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15双]Bias: [1x15双]Lambda: [1x15双]Learner: 'least astsquares'属性,方法

Mdl1RegressionLinear模型对象。fitrlinear构造Mdl1通过对前四个褶皱培训。因为LAMBDA你能想到的是正则化强度的序列吗Mdl1作为11个模型,每一个正则化强度在LAMBDA

估计交叉验证MSE。

MSE = kfoldLoss(CVMdl);

值越大,LAMBDA导致预测变量稀疏,这是一个回归模型的优良品质。对于每一个正规化的强度,使用整个数据集和,当您交叉验证模型相同的选项列车线性回归模型。确定每个模型的非零系数的数量。

Mdl = fitrlinear (X, Y,“ObservationsIn”'列'“拉姆达”,λ,...'学习者'“最小二乘法”“求解”'sparsa'“正规化”'套索');numNZCoeff = (Mdl.Beta ~ = 0)之和;

在同一图中,画出交叉验证MSE和每个正则化强度的非零系数的频率。绘制对数刻度的所有变量。

数字;并[h,HL1,HL2] = plotyy(日志10(LAMBDA),日志10(MSE),...日志10(LAMBDA),日志10(numNZCoeff));hL1.Marker =“o”;hL2.Marker =“o”;ylabel(H(1),'LOG_ {10} MSE')ylabel(H(2),“LOG_ {10}的非零系数频率”)xlabel('LOG_ {10} LAMBDA')保持

选择的正则化强度的索引结余预测变量稀疏性和低MSE(例如,λ(10))。

idxFinal = 10;

提取对应于最小MSE模型。

MdlFinal = selectModels(MDL,idxFinal)
MdlFinal = RegressionLinear ResponseName: 'Y' ResponseTransform: '无' 测试版:[1000x1双]偏差:-0.0050 LAMBDA:0.0037学习者: '最小二乘法' 的属性,方法
idxNZCoeff =找到(MdlFinal.Beta〜= 0)
idxNZCoeff =2×1100 200
EstCoeff = Mdl.Beta(idxNZCoeff)
EstCoeff =2×11.0051 - 1.9965

MdlFinalRegressionLinear一个正规化强度模型。非零系数EstCoeff有接近模拟数据的系数。

模拟10个新的观察和预测使用性能最好的机型对应的响应。

XNew = sprandn(d,10,NZ);YHat =预测(MdlFinal,XNew,“ObservationsIn”'列');

扩展功能

也可以看看

|

介绍了在R2016a