预测

预计广义线性回归模型的响应

描述

ypred=预测(MDLXnew返回广义线性回归模型的预测响应值MDL在点Xnew

[ypredYCI] =预测(MDLXnew也返回的响应的置信区间Xnew

[ypredYCI] =预测(MDLXnew名称,值指定使用额外的一个或多个选项的名称 - 值对的参数。例如,您可以指定置信区间的置信水平。

例子

全部收缩

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

使用泊松随机数具有两个潜在的预测因子生成的样本数据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:0.5:3,-2:0.5:2);Xnew = [Xtest1(:),Xtest2(:)];

在预测数据点的响应。

ypred =预测(MDL,Xnew);

画出预测。

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

适合广义线性回归模型,然后通过使用模型保存saveLearnerForCoder。定义一个入口点函数加载模型使用loadLearnerForCoder并调用预测拟合模型的功能。然后用代码生成来生成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,varargin)%#代码生成%MYPREDICTGLM使用GLM模型预测的响应%MYPREDICTGLM预测响应在n乘1的n个观察%矢量x用存储在MAT-文件GLMMdl.mat的GLM模型,%,然后返回在n×1矢量yhat预测。%MYPREDICTGLM也返回的置信区间范围%预测在n通过-2载体Cl。CompactMdl = loadLearnerForCoder('GLMMdl');narginchk(1,Inf文件);[yhat,CI] =预测(CompactMdl中,x,{varargin:});结束

添加%#代码生成编译器指令(或编译)到函数签名后的入口点函数,以表明你打算生成的MATLAB算法代码。添加此指令指示MATLAB代码分析器,以帮助您诊断和解决冲突,将代码生成过程中导致错误。

生成代码

使用生成的入口点函数的代码代码生成。由于C和C ++的静态类型语言,你必须在编译时确定的入口点函数的所有变量的性质。要指定的数据类型和详细的输入数组大小,通过表示与特定的数据类型和阵列尺寸的设定值的MATLAB®表达。用coder.Constant为名称 - 值对参数的名字。

创建预测点。

[Xtest1,Xtest2] = meshgrid(-1:0.5:3,-2:0.5:2);Xnew = [Xtest1(:),Xtest2(:)];

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

代码生成mypredictGLM-args{Xnew,coder.Constant( '阿尔法'),0.1,coder.Constant( '同步'),TRUE}

代码生成生成MEX函数mypredictGLM_mex与平台相关的扩展。

如果观察的数量是在编译时未知的,你还可以通过使用指定的输入作为可变大小coder.typeof。有关详细信息,请参阅指定代码生成可变尺寸参数指定入口点函数输入的属性(编码器MATLAB)。

验证生成的代码

通过比较预测和置信区间预测mypredictGLM_mex。以相同的顺序指定名称 - 值对的参数如-args参数在调用代码生成

[yhat1,CI1] =预测(MDL,Xnew,'Α',0.1%,'同时',真正);[yhat2,Cl 2] = mypredictGLM_mex(Xnew,'Α',0.1%,'同时',真正);

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

找到(ABS(yhat1-yhat2)> 1E-6)
ANS =为0x1空双列向量
找到(ABS(CI1-12)> 1E-6)
ANS =为0x1空双列向量

比较确认,返回的值是公差范围内相等1E-6

输入参数

全部收缩

广义线性回归模型,指定为GeneralizedLinearModel使用对象的创建fitglm要么stepwiseglmCompactGeneralizedLinearModel使用对象的创建紧凑

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

  • 如果Xnew是一个表或数据集阵列,它必须包含具有相同预测器名称作为预测PredictorNames财产MDL

  • 如果Xnew是一个矩阵,它必须具有相同数目的以相同的顺序的变量(列)作为预测输入用来创建MDL。注意Xnew还必须包含未用作拟合模型预测任何预测变量。此外,所有的变量创建使用MDL必须是数字。为了治疗数值预测的分类,确定使用的预测'CategoricalVars'名称 - 值对参数当您创建MDL

数据类型:||

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:[ypred,YCI] =预测(MDL,Xnew, '阿尔法',0.01 '同时',真)返回的置信区间YCI有99%的置信水平,同时计算所有预测值。

为置信区间显着性水平,指定为逗号分隔的一对组成的'Α'和在范围[0,1]的数值。的置信水平YCI等于100(1 -Α)%Α是置信区间不包含真值的概率。

例:'阿尔法',0.01

数据类型:|

为二项式分布试验次数,指定为逗号分隔的一对组成的'BinomialSize'和一个标量或相同的长度的响应矢量。预测扩展标量输入到相同尺寸的响应的恒定阵列。标量输入装置,所有观察有相同数量的试验。

输出值的含义ypred取决于价值'BinomialSize'

  • 如果'BinomialSize'是1(默认值),则每个值在输出ypred是成功的概率。

  • 如果'BinomialSize'不为1,则在输出中每个值ypred是在试验成功的预测数目。

数据类型:|

在每个行偏移值Xnew,指定为逗号分隔的一对组成的'抵消'和一个标量或矢量具有相同的长度作为响应。预测扩展标量输入到相同尺寸的响应的恒定阵列。

请注意,这个参数的默认值是,就算你指定零向量'抵消'拟合模型时名称 - 值对的参数。如果您指定'抵消'用于装配,该软件把偏移与固定在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作为偏移值。

的答复的置信区间,返回为每一行提供一个间隔的两列的矩阵。置信区间的含义取决于的名称 - 值对参数的设置'Α''同时'

另类功能

  • feval返回相同的预测预测。该feval功能不支持万博1manbetx'抵消''BinomialSize'名称 - 值对的参数。feval使用0作为偏移值,并在输出值ypred是预测概率。该feval函数可以接受多个输入参数为新的预测的输入值,对每个预测变量,这是简单的使用与来自表或数据集阵列创建的模型的一个输入。注意,feval功能不上它的预测给予置信区间。

  • 随机收益预测值与添加的噪音。

扩展功能

介绍了在R2012a