主要内容

预测

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

描述

例子

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

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

例子

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

例子

全部折叠

创建一个广义线性回归模型,并预测其应对新数据。

使用泊松随机数生成样本数据有两个潜在的预测因子X (: 1)X (:, 2)

rng (“默认”)%的再现性rndvars = randn (100 2);X = [2 + rndvars (: 1), rndvars (:, 2)];μ= exp (1 + X * [1, 2]);y = poissrnd(μ);

创建一个广义泊松数据的线性回归模型。

mdl = fitglm (X, y,“y ~ x1 + x2”,“分布”,“泊松”);

创建数据点的预测。

[Xtest1, Xtest2] = meshgrid (1: .5:3, 2: .5:2);Xnew = [Xtest1 (:), Xtest2 (:));

在数据点预测的反应。

Xnew ypred =预测(mdl);

情节的预测。

冲浪(Xtest1 Xtest2,重塑(ypred 9 9))

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的表面。

适合一个广义线性回归模型,然后保存模型通过使用saveLearnerForCoder。定义一个入口点函数,通过使用加载模型loadLearnerForCoder并调用预测拟合的函数模型。然后使用codegen(MATLAB编码器)来生成C / c++代码。注意,生成C / c++代码需要MATLAB®编码器™。

这个例子简要解释了代码生成工作流的线性回归预测模型在命令行。更多细节,请参阅机器学习模型的代码生成预测在命令行。你还可以生成代码使用MATLAB编码器的应用。代码生成的预测使用MATLAB编码器应用机器学习模型

火车模型

使用泊松随机数生成样本数据有两个潜在的预测因子X (: 1)X (:, 2)

rng (“默认”)%的再现性rndvars = randn (100 2);X = [2 + rndvars (: 1), rndvars (:, 2)];μ= exp (1 + X * [1, 2]);y = poissrnd(μ);

创建一个广义线性回归模型。指定响应的泊松分布。

mdl = fitglm (X, y,“y ~ x1 + x2”,“分布”,“泊松”);

保存模型

将拟合广义线性回归模型保存到该文件GLMMdl.mat通过使用saveLearnerForCoder

saveLearnerForCoder (mdl“GLMMdl”);

定义入口点函数

在当前文件夹中,定义一个入口点函数命名mypredictGLM.m做以下几点:

  • 接受新输入和有效的名称-值对预测参数。

  • 加载拟合广义线性回归模型GLMMdl.mat通过使用loadLearnerForCoder

  • 回归预测和置信区间。

函数[yhat, ci] = mypredictGLM (x,变长度输入宗量)% # codegen% MYPREDICTGLM使用GLM模型预测的反应% MYPREDICTGLM预测反应的n n×1的观测%向量x使用的漠视,模型存储在MAT-file GLMMdl.mat,%然后返回yhat n×1的预测向量。% MYPREDICTGLM也返回置信区间的边界% n除以2的预测向量ci。CompactMdl = loadLearnerForCoder (“GLMMdl”);narginchk(正);[yhat, ci] =预测(CompactMdl x,变长度输入宗量{:});结束

添加% # codegen编译器指令(或编译指示)的入口点函数函数签名后,表明您打算为MATLAB算法生成代码。添加这个指令指示MATLAB代码分析器来帮助您诊断和解决违规,将导致错误在代码生成。

生成代码

生成代码的入口点函数使用codegen(MATLAB编码器)。因为C和c++静态类型语言中,您必须确定所有变量的属性在编译时的入口点函数。指定数据类型和准确的输入数组的大小,通过MATLAB®表达式表示的值和特定的数据类型和数组的大小。使用coder.Constant(MATLAB编码器)名称-值对参数的名称。

创建点预测。

[Xtest1, Xtest2] = meshgrid (1: .5:3, 2: .5:2);Xnew = [Xtest1 (:), Xtest2 (:));

同时生成代码并指定返回90%置信区间预测。

codegenmypredictGLMarg游戏{Xnew, coder.Constant(α),0.1,coder.Constant(同步),真正的}
代码生成成功。

codegen生成墨西哥人的功能mypredictGLM_mex与平台相关的扩展。

如果观测的数量在编译时是未知的,您还可以指定输入所适应的使用coder.typeof(MATLAB编码器)。有关详细信息,请参见为代码生成指定适应可变参数指定入口点函数输入的属性(MATLAB编码器)

验证生成的代码

比较预测和置信区间预测mypredictGLM_mex。指定名称-值对参数的顺序arg游戏在调用参数codegen

[yhat1, ci1] =预测(mdl Xnew,“α”,0.1,“同时”,真正的);[yhat2, ci2] = mypredictGLM_mex (Xnew,“α”,0.1,“同时”,真正的);

返回的值mypredictGLM_mex可能包括舍入值相比差异预测。在这种情况下,允许一个小公差比较值。

找到(abs (yhat1-yhat2) > 1 e-6)
ans = 0 x1空双列向量
找到(abs (ci1-ci2) > 1 e-6)
ans = 0 x1空双列向量

比较证实,返回的值相等的宽容1 e-6

输入参数

全部折叠

广义线性回归模型,指定为一个GeneralizedLinearModel对象创建使用fitglmstepwiseglm,或者一个CompactGeneralizedLinearModel对象创建使用紧凑的

新的预测输入值,指定为一个表,数据数组或矩阵。每一行的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

数据类型:|

二项分布的试验数量,指定为逗号分隔组成的“BinomialSize”和一个标量或矢量长度相同的反应。预测扩展了标量输入常数相同大小的数组作为回应。标量输入意味着所有具有相同数量的观测试验。

输出值的意义ypred取决于的价值“BinomialSize”

  • 如果“BinomialSize”是1(默认),然后输出中的每个值ypred是成功的概率。

  • 如果“BinomialSize”不是1,那么每个值在输出ypred成功的预测数量的试验。

数据类型:|

抵消价值为每一行Xnew,指定为逗号分隔两人组成的“抵消”和一个标量或矢量长度相同的反应。预测扩展了标量输入常数相同大小的数组作为回应。

注意,这个参数的默认值是0,即使你指定的向量“抵消”名称-值对参数拟合模型。如果您指定“抵消”拟合软件将抵消额外的预测系数值固定在1。换句话说,拟合的公式

f(μ)=抵消+X*b,

在哪里f是连接函数,μ是平均响应,X*b的线性组合预测吗X。的抵消预测了系数1

数据类型:|

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

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

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

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

例子:“同步”,真的

输出参数

全部折叠

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

二项式模型,输出值的意义ypred取决于的价值“BinomialSize”名称-值对的论点。

  • 如果“BinomialSize”是1(默认),然后输出中的每个值ypred是成功的概率。

  • 如果“BinomialSize”不是1,那么每个值在输出ypred成功的预测数量的试验。

对于一个偏移量的模型,利用指定偏移值“抵消”名称-值对的论点。否则,预测使用0作为偏移量的值。

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

选择功能

  • 函数宏指令返回相同的预测预测。的函数宏指令功能不支持金宝app“抵消”“BinomialSize”名称-值对参数。函数宏指令使用0作为补偿值和输出值ypred预计概率。的函数宏指令函数可以将多个输入参数为新预测输入值,为每个预测变量与一个输入,这是简单的使用一个模型从一个表或数据集创建数组。请注意,函数宏指令函数不给置信区间预测。

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

扩展功能

版本历史

介绍了R2012a