预测
线性回归模型的预测的反应
描述
例子
预测响应值
创建一个二次模型的汽车里程作为权重的函数carsmall
数据集。
负载carsmallX =重量;y = MPG;mdl = fitlm (X, y,“二次”);
创建预测响应数据。
ypred =预测(mdl X);
情节原反应和预测反应,看看他们是不同的。
情节(X, y,“o”,X, ypred“x”)传说(“数据”,“预测”)
为预测生成C / c++代码
适合一个线性回归模型,然后保存模型通过使用saveLearnerForCoder
。定义一个入口点函数,通过使用加载模型loadLearnerForCoder
并调用预测
拟合的函数模型。然后使用codegen
(MATLAB编码器)来生成C / c++代码。注意,生成C / c++代码需要MATLAB®编码器™。
这个例子简要解释了代码生成工作流的线性回归预测模型在命令行。更多细节,请参阅机器学习模型的代码生成预测在命令行。你还可以生成代码使用MATLAB编码器的应用。代码生成的预测使用MATLAB编码器应用机器学习模型。
火车模型
加载carsmall
数据集,然后符合二次回归模型。
负载carsmallX =重量;y = MPG;mdl = fitlm (X, y,“二次”);
保存模型
将安装二次模型保存到该文件QLMMdl.mat
通过使用saveLearnerForCoder
。
saveLearnerForCoder (mdl“QLMMdl”);
定义入口点函数
定义一个入口点函数命名mypredictQLM
做以下几点:
接受相应的测量X和可选的,有效的参数名称-值对。
加载安装二次模型
QLMMdl.mat
。回归预测和置信区间。
函数[yhat, ci] = mypredictQLM (x,变长度输入宗量)% # codegen% MYPREDICTQLM使用线性模型预测的反应% MYPREDICTQLM预测反应的n n×1的观测使用线性模型存储在%向量x MAT-file QLMMdl。垫,%然后返回yhat n×1的预测向量。MYPREDICTQLM%也返回置信区间边界的预测% n除以2向量ci。CompactMdl = loadLearnerForCoder (“QLMMdl”);[yhat, ci] =预测(CompactMdl x,变长度输入宗量{:});结束
添加% # codegen
编译器指令(或编译指示)的入口点函数函数签名后,表明您打算为MATLAB算法生成代码。添加这个指令指示MATLAB代码分析器来帮助您诊断和解决违规,将导致错误在代码生成。
注意:如果单击按钮位于右上角的这个例子和开放的MATLAB®中的示例,然后用MATLAB打开示例文件夹。这个文件夹包含的入口点函数文件。
生成代码
生成代码的入口点函数使用codegen
(MATLAB编码器)。因为C和c++静态类型语言中,您必须确定所有变量的属性在编译时的入口点函数。指定数据类型和准确的输入数组的大小,通过MATLAB®表达式表示的值和特定的数据类型和数组的大小。使用coder.Constant
(MATLAB编码器)名称-值对参数的名称。
如果观测的数量在编译时是未知的,您还可以指定输入所适应的使用coder.typeof
(MATLAB编码器)。有关详细信息,请参见为代码生成指定适应可变参数和指定入口点函数输入的属性(MATLAB编码器)。
codegenmypredictQLMarg游戏{X, coder.Constant(α),0.1,coder.Constant(同步),真正的}
代码生成成功。
codegen
生成墨西哥人的功能mypredictQLM_mex
与平台相关的扩展。
验证生成的代码
比较预测和置信区间预测
和mypredictQLM_mex
。指定名称-值对参数的顺序arg游戏
在调用参数codegen
。
Xnew = (X)进行排序;[yhat1, ci1] =预测(mdl Xnew,“α”,0.1,“同时”,真正的);[yhat2, ci2] = mypredictQLM_mex (Xnew,“α”,0.1,“同时”,真正的);
返回的值mypredictQLM_mex
可能包括舍入值相比差异预测
。在这种情况下,允许一个小公差比较值。
找到(abs (yhat1-yhat2) > 1 e-6)
ans = 0 x1空双列向量
找到(abs (ci1-ci2) > 1 e-6)
ans = 0 x1空双列向量
比较证实,返回的值相等的宽容1 e-6
。
情节的返回值比较。
h1 =情节(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)),…{“数据”,预测估计的,“墨西哥人估计”,“预测独联体”,“墨西哥人独联体”});包含(“重量”);ylabel (“英里”);
输入参数
mdl
- - - - - -线性回归模型对象
LinearModel
对象|CompactLinearModel
对象
线性回归模型对象,指定为一个LinearModel
创建的对象使用fitlm
或stepwiselm
,或者一个CompactLinearModel
创建的对象使用紧凑的
。
Xnew
- - - - - -新的预测输入值
表|数据集的数组|矩阵
新的预测输入值,指定为一个表,数据数组或矩阵。每一行的Xnew
对应于一个观察,每一列对应一个变量。
如果
Xnew
是一个数据集表或数组,它必须包含相同的预测,预测名字的PredictorNames
的属性mdl
。如果
Xnew
是一个矩阵,它必须有相同数量的变量(列)在同一顺序的预测输入用于创建mdl
。请注意,Xnew
还必须包含任何不作为预测变量预测的拟合模型。此外,所有变量用于创建mdl
必须是数值。治疗数值预测分类,识别预测使用“CategoricalVars”
当您创建名称-值对的论点mdl
。
数据类型:单
|双
|表
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)
返回置信区间开办
99%的置信水平,同时计算预测的值。
α
- - - - - -显著性水平
0.05(默认)|数值范围在[0,1]
预测
- - - - - -预测类型
“曲线”
(默认)|“观察”
预测类型,指定为逗号分隔组成的“预测”
,要么“曲线”
或“观察”
。
预测变量的回归模型X和响应变量y的形式
y=f(X)+ε,
在哪里f拟合回归函数,ε是一个随机噪声项。
如果
“预测”
是“曲线”
,然后预测
预测置信界限f(Xnew),安装反应Xnew
。如果
“预测”
是“观察”
,然后预测
预测置信界限y反应观察Xnew
。
的界限y比范围更广泛f(X)因为噪声项的额外的可变性。
例子:“预测”,“观察”
同时
- - - - - -国旗来计算同时信心
假
(默认)|真正的
国旗来计算同时置信界限),指定为逗号分隔组成的“同时”
,或真或假。
真正的
- - - - - -预测
计算信任边界曲线的响应值对应的预测价值Xnew
,使用矫正的方法。上下界之间的范围包含曲线组成的真正的响应值与100年(1 -α)%的信心。假
- - - - - -预测
计算置信界限)的响应值在每个观测Xnew
。响应值在一个特定的置信区间预测价值包含真正的响应值与100年(1 -α)%的信心。
同时范围比单独的范围更广泛,因为要求的整个曲线响应值范围内比要求更严格的响应值在一个单一的预测价值范围内。
例子:“同步”,真的
输出参数
选择功能
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
使用
saveLearnerForCoder
,loadLearnerForCoder
,codegen
(MATLAB编码器)生成的代码预测
函数。通过使用保存训练模型saveLearnerForCoder
。定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder
并调用预测
函数。然后使用codegen
入口点函数来生成代码。此表包含的参数
预测
。参数不包括在这个表是完全支持。金宝app论点 笔记和局限性 mdl
假设你训练一个线性模型通过使用
fitlm
并指定“RobustOpts”
作为一个结构和一个匿名函数处理RobustWgtFun
字段中,使用saveLearnerForCoder
保存模型,然后使用loadLearnerForCoder
加载模型。在这种情况下,loadLearnerForCoder
不能恢复健壮的属性到MATLAB®工作区。然而,loadLearnerForCoder
可以加载模型在一个入口点函数在编译时代码生成。使用笔记和限制的模型对象,明白了代码生成的
CompactLinearModel
对象。
Xnew
Xnew
必须包含数字单精度和双精度矩阵或表变量,分类变量,或两者兼而有之。的行数,或观察
Xnew
可以一个变量的大小,但列的数量Xnew
必须是固定的。如果你想指定
Xnew
作为一个表,那么您的模型必须被训练使用一个表,你必须确保你的入口点函数预测:接受数据数组
创建一个表的数据输入参数并指定表中的变量名
通过表
预测
这个表的一个示例工作流,请参阅生成代码对数据表进行分类。在代码生成中使用表格的更多信息,见代码生成表(MATLAB编码器)和表限制代码生成(MATLAB编码器)。
名称-值对的观点 名字必须编译时常量参数名称-值对。例如,允许一个用户定义的显著性水平在生成的代码中,包括
{coder.Constant(α),0}
在arg游戏
的价值codegen
(MATLAB编码器)。
有关更多信息,请参见介绍代码生成。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。