文档帮助中心
类:RegressionLinear
预测线性回归模型的响应
YHat =预测(MDL,X)
YHat =预测(MDL,X,名称,值)
例
YHat=预测(MDL,X)返回预测在预测数据中的每个观测响应X基于训练的线性回归模型MDL。YHat包含在每个正规化强度响应MDL。
YHat=预测(MDL,X)
YHat
MDL
X
YHat=预测(MDL,X,名称,值)返回与由一个或多个指定的附加选项预测响应名称,值对参数。例如,指定在预测数据对应于观察结果的列。
YHat=预测(MDL,X,名称,值)
名称,值
展开全部
RegressionLinear
线性回归模型,具体为aRegressionLinear模型对象。您可以创建一个RegressionLinear使用模型对象fitrlinear。
fitrlinear
预测数据,指定为ñ-通过-p全或稀疏矩阵。的这种取向X表明行对应于个人的观察,以及列对应于个体预测变量。
如果你的定位预测矩阵,以便观察对应的列,并指定'ObservationsIn', '列',那么你可能会遇到在计算时间减少显著。
'ObservationsIn', '列'
长度ÿ和观察的数量X必须相等。
ÿ
数据类型:单|双
单
双
指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和值是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家。
名称
值
Name1, Value1,…,的家
“ObservationsIn”
“行”
'列'
预测数据观测尺寸,指定为逗号分隔的一对组成的“ObservationsIn”和'列'要么“行”。
如果你的定位预测矩阵,以便观察对应的列,并指定'ObservationsIn', '列',那么你可能会遇到的优化,执行时间显著减少。
预计响应,返回为ñ-通过-大号数字矩阵。ñ是观测的数量X和大号是正规化的优势在数Mdl.Lambda。YHat(一世,Ĵ)是用于观察响应一世使用具有正则化强度的线性回归模型Mdl.Lambda(Ĵ)。
Mdl.Lambda
YHat(一世,Ĵ)
一世
Ĵ
Mdl.Lambda(Ĵ)
使用具有正则化强度模型中的预测响应Ĵ是 ÿ ^ Ĵ = X β Ĵ + b Ĵ 。
X是从预测数据矩阵观察到的吗X和是行向量。
β Ĵ 是系数的估计的列向量。该软件商店这个载体,Mdl.Beta(:,Ĵ)。
Mdl.Beta(:,Ĵ)
b Ĵ 是估计,标量偏差,其软件商店中Mdl.Bias(Ĵ)。
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' 的属性,方法
CVMdl是RegressionPartitionedLinear模型。它包含属性熟练,这是一个1×1单元阵列保持RegressionLinear模型,使用软件中的训练集训练。
CVMdl
RegressionPartitionedLinear
熟练
提取分区定义的训练和测试数据。
trainIdx =训练(CVMdl.Partition);testIdx =试验(CVMdl.Partition);
预测训练 - 和测试样品的反应。
yHatTrain =预测(MDL,X(trainIdx,:));yHatTest =预测(MDL,X(testIdx,:));
因为在一个正则强MDL,yHatTrain和yHatTest是数字载体。
yHatTrain
yHatTest
预测从使用套索-罚分和最小二乘效果最佳的,线性回归模型的响应。
模拟10000点意见为预测试验样品响应。
创建从一组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
CVMdl是RegressionPartitionedLinear模型。因为fitrlinear工具5倍交叉验证,CVMdl包含5个RegressionLinear模型上的每个褶皱的软件列车。
显示第一个训练好的线性回归模型。
Mdl1 = CVMdl.Trained {1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x15双]Bias: [1x15双]Lambda: [1x15双]Learner: 'least astsquares'属性,方法
Mdl1是RegressionLinear模型对象。fitrlinear构造Mdl1通过对前四个褶皱培训。因为LAMBDA你能想到的是正则化强度的序列吗Mdl1作为11个模型,每一个正则化强度在LAMBDA。
Mdl1
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))。
λ(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
MdlFinal是RegressionLinear一个正规化强度模型。非零系数EstCoeff有接近模拟数据的系数。
MdlFinal
EstCoeff
模拟10个新的观察和预测使用性能最好的机型对应的响应。
XNew = sprandn(d,10,NZ);YHat =预测(MdlFinal,XNew,“ObservationsIn”,'列');
这个函数完全支持高数组。万博1manbetx您可以使用培训了无论是在内存或使用此功能高大的数据模型。
欲了解更多信息,请参阅高大的数组(MATLAB)。
使用注意事项和限制:
您可以生成C / C ++两种代码预测和更新通过使用编码器配置器。或者,生成的代码仅对预测通过使用saveLearnerForCoder,loadLearnerForCoder和代码生成。
预测
更新
saveLearnerForCoder
loadLearnerForCoder
代码生成
代码生成预测和更新- 创建一个编码器使用配置者learnerCoderConfigurer然后通过使用产生的代码generateCode。然后,您可以更新生成的代码中的模型参数,而不必重新生成代码。
learnerCoderConfigurer
generateCode
代码生成预测- 保存训练模型使用saveLearnerForCoder。定义一个入口点函数加载使用保存的模型loadLearnerForCoder并调用预测功能。然后用代码生成生成的入口点函数的代码。
此表包含有关的论点笔记预测。未列入此表的参数都完全支持。万博1manbetx
对于模型对象的使用注意事项和限制,请参见代码生成的RegressionLinear目的。
必须是单精度或双精度矩阵,并且可以是大小可变的。
如果您指定'ObservationsIn', '行'(默认),然后在该列数X一定是元素个数(Mdl.PredictorNames)。行和列必须分别对应于观察和预测。
'ObservationsIn', '行'
元素个数(Mdl.PredictorNames)
如果您指定'ObservationsIn', '列',然后在的行数X一定是元素个数(Mdl.PredictorNames)。行和列必须分别对应于预测和观察。
在名称 - 值对参数的名称必须是编译时间常数。
该值“ObservationsIn”名称-值对参数必须是编译时常量。例如,使用'ObservationsIn', '列'在生成的代码名称 - 值对的参数,包括{coder.Constant( 'ObservationsIn'),coder.Constant( '列')}在-args的价值代码生成。
{coder.Constant( 'ObservationsIn'),coder.Constant( '列')}
-args
欲了解更多信息,请参阅介绍代码生成。
RegressionLinear|fitrlinear
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据你的位置,建议您选择:。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
请联系您当地的办事处