文档帮助中心文档
预测线性回归模型的响应
Xnew ypred =预测(mdl)
[ypred,开办]=预测(mdl Xnew)
[ypred,开办]=预测(mdl Xnew,名称,值)
例子
ypred=预测(mdl,Xnew)返回线性回归模型的预测响应值mdl到了点Xnew.
ypred=预测(mdl,Xnew)
ypred
mdl
Xnew
[ypred,开办] =预测(mdl,Xnew)的响应也返回置信区间Xnew.
[ypred,开办] =预测(mdl,Xnew)
开办
[ypred,开办] =预测(mdl,Xnew,名称,值)使用一个或多个名称-值对参数指定其他选项。例如,可以指定置信区间的置信级别和预测类型。
[ypred,开办] =预测(mdl,Xnew,名称,值)
名称,值
全部折叠
创建一个二次模型的汽车里程,作为重量的函数carsmall数据集。
carsmall
负载carsmallx =重量;y = mpg;mdl = fitlm(x,y,'二次');
创建对数据的预测响应。
ypred =预测(mdl X);
绘制原始响应和预测的响应,以了解它们的不同。
情节(X, y,'o', X, ypred“x”)传说('数据','预测')
此示例使用:
拟合线性回归模型,使用保存模型Savelarnerforcoder..定义一个入口点函数,通过使用loadLearnerForCoder并致电预测拟合模型的函数。然后使用codegen(MATLAB编码器)要生成C / C ++代码。请注意,生成C / C ++代码需要MATLAB®Coder™。
Savelarnerforcoder.
loadLearnerForCoder
预测
codegen
此示例简要介绍了用于预测命令行的线性回归模型的代码生成工作流程。有关更多详细信息,请参阅机器学习模型在命令行预测的代码生成.您也可以使用MATLAB Coder应用程序生成代码基于MATLAB编码器的机器学习模型预测代码生成.
火车模型
加载carsmall数据集,然后拟合二次回归模型。
保存模型
将拟合的二次模型保存到文件中qlmmdl.mat.通过使用Savelarnerforcoder..
qlmmdl.mat.
SavelAlnerForCoder(MDL,“QLMMdl”);
定义入口点函数
定义一个入口点函数名为mypredictqlm.它的作用如下:
mypredictqlm.
接受对应于x和可选的有效名称值对参数的测量值。
加载拟合的二次模型qlmmdl.mat..
返回预测和置信区间界限。
函数[yhat,ci] = mypredictqlm(x,varargin)% # codegen使用线性模型预测响应% MYPREDICTQLM预测n × 1的n个观察的响应%向量x,使用存储在mat文件QLMMdl中的线性模型。垫,%然后返回n × 1向量yhat中的预测。MYPREDICTQLM中的预测也返回置信区间界限% n × 2向量ci。CompactMdl = loadLearnerForCoder (“QLMMdl”);[yhat, ci] =预测(CompactMdl x,变长度输入宗量{:});结束
添加% # codegen编译器指令(或Pragma)到函数签名后的入门点函数,表示您打算为Matlab算法生成代码。添加此指令指示MATLAB代码分析仪帮助您诊断和修复将在代码生成中导致错误的违规。
% # codegen
注意:如果您点击位于此示例右上角部分的按钮,并在MATLAB®中打开示例,则MATLAB将打开示例文件夹。这个文件夹包括入口点函数文件。
生成代码
生成用于入口点函数的代码codegen(MATLAB编码器).因为C和c++都是静态类型语言,所以必须在编译时确定入口点函数中所有变量的属性。要指定数据类型和准确的输入数组大小,请传递一个MATLAB®表达式,该表达式表示具有特定数据类型和数组大小的值集。使用编码器。常数(MATLAB编码器)对于名称值对参数的名称。
编码器。常数
如果在编译时观察值的数量未知,还可以使用coder.typeof(MATLAB编码器).有关详细信息,请参阅为代码生成指定可变大小参数和指定入口点功能输入的属性(MATLAB编码器).
coder.typeof
codegenmypredictqlm.arg游戏{X, coder.Constant(α),0.1,coder.Constant(同步),真正的}
代码生成成功。
codegen生成MEX函数mypredictQLM_mex具有平台依赖的扩展。
mypredictQLM_mex
验证生成的代码
比较预测和置信区间使用预测和mypredictQLM_mex.以与相同的顺序指定名称值对参数arg游戏参数codegen.
arg游戏
xnew = sort(x);[Yhat1,CI1] =预测(MDL,XNew,“α”, 0.1,'同时',真正的);[yhat2,ci2] = mypredictqlm_mex(xnew,“α”, 0.1,'同时',真正的);
的返回值mypredictQLM_mex可能包括与来自的值的舍入差异预测.在这种情况下,比较允许小公差的值。
找到(abs (yhat1-yhat2) > 1 e-6)
Ans = 0x1空双列向量
找到(abs (ci1-ci2) > 1 e-6)
比较确认返回值在公差内相等1E-6.
1E-6
绘制返回值以供比较。
h1 = plot(x,y,“k”。);持有在h2 =情节(Xnew yhat1,“罗”Xnew yhat2,'gx');h3 =情节(Xnew ci1,的r -,'行宽'4);h4 =情节(Xnew ci2,'G - ','行宽'2);传奇([h1;h2;h3 (1);h4 (1)),...{'数据',预测估计的,“墨西哥人估计”,“预测独联体”,'mex cis'});包含(“重量”);ylabel (“英里”);
linearmodel.
CompactLinearModel
线性回归模型对象,指定为alinearmodel.使用的对象fitlm或步骤行程,或者一个CompactLinearModel使用的对象袖珍的.
fitlm
步骤行程
袖珍的
新的预测值输入值,指定为表,数据集数组或矩阵。每一排Xnew对应于一个观察,并且每列对应于一个变量。
如果Xnew是表还是数据集数组,它必须包含与预测的属性mdl.
如果Xnew是矩阵,它必须具有相同数量的变量(列),以与用于创建的预测器输入相同的顺序mdl.注意Xnew还必须包含在拟合模型中未用作预测因子的任何预测因子变量。此外,创建时使用的所有变量mdl必须是数值。要将数值预测器视为分类预测器,请使用'pationalvars'创建时的名称-值对参数mdl.
'pationalvars'
数据类型:单|双倍的|表格
单
双倍的
表格
指定可选的逗号分隔的对名称,值论点。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen.
的名字
价值
name1,value1,...,namen,valuen
[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)
“α”
置信区间的显著性级别,指定为逗号分隔的对,由“α”和范围内的数值[0,1]。置信水平开办等于100 (1 -Α) %.Α置信区间不包含真实值的概率。
Α
例子:“阿尔法”,0.01
“阿尔法”,0.01
数据类型:单|双倍的
'预言'
“曲线”
'观察'
预测类型,指定为逗号分隔对组成'预言'和任何一种“曲线”或'观察'.
预测变量的回归模型X以及响应变量y有形式
y=f(X)+ε.,
在哪里f是一个拟合的回归功能和ε.为随机噪声项。
如果'预言'是“曲线”,然后预测预测置信区间f(Xnew)时的拟合反应Xnew.
如果'预言'是'观察',然后预测预测置信区间y,反应观察在Xnew.
界限y比界限更宽吗f(X)由于噪声术语的额外可变性。
例子:“预测”,“观察”
“预测”,“观察”
'同时'
假
真正的
标志来计算同时置信边界,指定为逗号分隔的对,由'同时'或真或假。
真正的- - - - - -预测中所有预测值对应的响应值曲线的置信界限Xnew,使用Scheffe的方法。上限和下限之间的范围包含由具有100(1 - α)%置信度的真正响应值组成的曲线。
假- - - - - -预测计算每个观察中的响应值的信心范围Xnew.特定预测值值处的响应值的置信区间包含具有100(1 - α)%置信度的真实响应值。
同时的界限比单独的界限更宽,因为要求整个响应值曲线在界限内比要求单个预测值的响应值在界限内更严格。
例子:'同时',真实
'同时',真实
预测响应值评估在Xnew,作为数字向量返回。
响应的置信区间,以两列矩阵的形式返回,每行提供一个区间。置信区间的含义取决于名称-值对参数的设置“α”,'预言','同时'.
Feval.返回与此相同的预测预测.这Feval.函数可以接受多个输入参数,每个预测器变量都有一个输入,这更容易用于从表或数据集数组创建的模型。请注意,Feval.函数不给出其预测的置信区间。
Feval.
随机返回带有噪声的预测。
随机
使用plotSlice为了创建包含一系列绘图的图,每个图通过预测的回归表面表示切片。每个曲线显示拟合响应值作为单个预测变量的函数,其中其他预测变量保持恒定。
plotSlice
使用说明和限制:
使用Savelarnerforcoder.,loadLearnerForCoder,codegen(MATLAB编码器)生成的代码预测功能。使用培训模型Savelarnerforcoder..定义一个入口点函数,通过使用loadLearnerForCoder并致电预测功能。然后使用codegen为入口点函数生成代码。
这个表格包含关于的参数的注释预测.表中未包含的参数完全支持。万博1manbetx
假设你用fitlm并指定“RobustOpts”作为具有匿名功能手柄的结构RobustWgtFun字段中,使用Savelarnerforcoder.保存模型,然后使用loadLearnerForCoder加载模型。在这种情况下,loadLearnerForCoder不能恢复强壮的属性导入MATLAB®工作区。然而,loadLearnerForCoder可以在编译时在入口点函数中加载模型以进行代码生成。
“RobustOpts”
RobustWgtFun
有关模型对象的使用说明和限制,请参见代码生成的CompactLinearModel对象。
Xnew必须是单精度或双精度矩阵,或包含数字变量、分类变量或两者的表。
中的行数或观察值Xnew可以是可变大小,但列的数量Xnew必须是固定的。
如果要指定Xnew作为一个表,那么你的模型必须使用一个表训练,你必须确保你的入口点函数的预测:
接受数据作为阵列
从数据输入参数中创建表,并指定表中的变量名称
把桌子传递给预测
有关此表格工作流的示例,请参见生成代码对表中的数据进行分类.有关在代码生成中使用表的更多信息,请参见表的代码生成(MATLAB编码器)和代码生成的表限制(MATLAB编码器).
名称值对参数中的名称必须是编译时常量。例如,为了允许生成的代码中的用户定义的显着级别包括{coder.Constant(α),0}在里面arg游戏的价值codegen(MATLAB编码器).
{coder.Constant(α),0}
有关更多信息,请参阅代码生成简介.
此功能完全支持GPU阵列。万博1manbetx有关更多信息,请参阅在GPU上运行MATLAB函数(并行计算工具箱).
此功能支持拟合GPU数组输入万博1manbetx参数的模型对象。
CompactLinearModel|Feval.|linearmodel.|plotSlice|随机
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系您当地的办公室