主要内容

预测

线性回归模型的预测的反应

描述

例子

ypred=预测(mdl,Xnew)返回预测响应值的线性回归模型mdl点的Xnew

(ypred,开办)=预测(mdl,Xnew)还返回响应的置信区间Xnew

例子

(ypred,开办)=预测(mdl,Xnew,名称,值)使用一个或多个指定附加选项名称-值对参数。例如,您可以指定置信区间的置信水平和预测类型。

例子

全部折叠

创建一个二次模型的汽车里程作为权重的函数carsmall数据集。

负载carsmallX =重量;y = MPG;mdl = fitlm (X, y,“二次”);

创建预测响应数据。

ypred =预测(mdl X);

情节原反应和预测反应,看看他们是不同的。

情节(X, y,“o”,X, ypred“x”)传说(“数据”,“预测”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象表示数据,预测。

适合一个线性回归模型,然后保存模型通过使用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 (“英里”);

图包含一个坐标轴对象。坐标轴对象包含7线类型的对象。这些对象表示数据,预测估计,墨西哥人估计,预测CIs,墨西哥人CIs。

输入参数

全部折叠

线性回归模型对象,指定为一个LinearModel创建的对象使用fitlmstepwiselm,或者一个CompactLinearModel创建的对象使用紧凑的

新的预测输入值,指定为一个表,数据数组或矩阵。每一行的Xnew对应于一个观察,每一列对应一个变量。

  • 如果Xnew是一个数据集表或数组,它必须包含相同的预测,预测名字的PredictorNames的属性mdl

  • 如果Xnew是一个矩阵,它必须有相同数量的变量(列)在同一顺序的预测输入用于创建mdl。请注意,Xnew还必须包含任何不作为预测变量预测的拟合模型。此外,所有变量用于创建mdl必须是数值。治疗数值预测分类,识别预测使用“CategoricalVars”当您创建名称-值对的论点mdl

数据类型:||

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)返回置信区间开办99%的置信水平,同时计算预测的值。

显著性水平的置信区间,指定为逗号分隔组成的“α”和数值区间[0,1]。的置信水平开办等于100 (1 -α)%α置信区间的概率是不包含的真正价值。

例子:“阿尔法”,0.01

数据类型:|

预测类型,指定为逗号分隔组成的“预测”,要么“曲线”“观察”

预测变量的回归模型X和响应变量y的形式

y=f(X)+ε,

在哪里f拟合回归函数,ε是一个随机噪声项。

  • 如果“预测”“曲线”,然后预测预测置信界限f(Xnew),安装反应Xnew

  • 如果“预测”“观察”,然后预测预测置信界限y反应观察Xnew

的界限y比范围更广泛f(X)因为噪声项的额外的可变性。

例子:“预测”,“观察”

国旗来计算同时置信界限),指定为逗号分隔组成的“同时”,或真或假。

  • 真正的- - - - - -预测计算信任边界曲线的响应值对应的预测价值Xnew,使用矫正的方法。上下界之间的范围包含曲线组成的真正的响应值与100年(1 -α)%的信心。

  • - - - - - -预测计算置信界限)的响应值在每个观测Xnew。响应值在一个特定的置信区间预测价值包含真正的响应值与100年(1 -α)%的信心。

同时范围比单独的范围更广泛,因为要求的整个曲线响应值范围内比要求更严格的响应值在一个单一的预测价值范围内。

例子:“同步”,真的

输出参数

全部折叠

预测响应值评估Xnew,作为一个数字返回向量。

置信区间的反应,作为一个两列返回矩阵的每一行提供一个时间间隔。置信区间的意义取决于名称-值对参数的设置“α”,“预测”,“同时”

选择功能

  • 函数宏指令返回相同的预测预测。的函数宏指令函数可以将多个输入参数,为每个预测变量与一个输入,这是简单的使用一个模型从一个表或数据集创建数组。请注意,函数宏指令函数不给置信区间预测。

  • 随机返回与添加噪声预测。

  • 使用plotSlice创建一个图,其中包含一系列的情节,每个代表一个片通过预测回归表面。每一个图显示了安装响应值作为一个预测变量的函数,与其他预测变量保持不变。

扩展功能

版本历史

介绍了R2012a