文档帮助中心
预计广义线性回归模型的响应
ypred =预测(MDL,Xnew)
[ypred,YCI] =预测(MDL,Xnew)
[ypred,YCI] =预测(MDL,Xnew,名称,值)
例
ypred=预测(MDL,Xnew)返回广义线性回归模型的预测响应值MDL在点Xnew。
ypred=预测(MDL,Xnew)
ypred
MDL
Xnew
[ypred,YCI] =预测(MDL,Xnew)也返回的响应的置信区间Xnew。
YCI
[ypred,YCI] =预测(MDL,Xnew,名称,值)指定使用额外的一个或多个选项的名称 - 值对的参数。例如,您可以指定置信区间的置信水平。
名称,值
全部收缩
创建广义线性回归模型,并预测其对新数据的反应。
使用泊松随机数具有两个潜在的预测因子生成的样本数据X(:,1)和X(:,2)。
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®编码器™。
saveLearnerForCoder
loadLearnerForCoder
预测
代码生成
本实施例中简要说明了线性回归模型中的命令行预测编码生成的工作流。有关详细信息,请参阅代码生成在命令行机器学习模型预测。您也可以使用MATLAB编码器应用程序生成代码。有关详细信息,请参阅代码生成使用MATLAB编码器应用机器学习模型预测。
火车模型
创建广义线性回归模型。指定响应泊松分布。
保存模型
保存装广义线性回归模型文件GLMMdl.mat通过使用saveLearnerForCoder。
GLMMdl.mat
saveLearnerForCoder(MDL,'GLMMdl');
定义入口点函数
在当前文件夹,定义一个名为入口点函数mypredictGLM.m该执行以下操作:
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为名称 - 值对参数的名字。
coder.Constant
创建预测点。
生成代码,并在指定的预测返回90%同时置信区间。
代码生成mypredictGLM-args{Xnew,coder.Constant( '阿尔法'),0.1,coder.Constant( '同步'),TRUE}
代码生成生成MEX函数mypredictGLM_mex与平台相关的扩展。
mypredictGLM_mex
如果观察的数量是在编译时未知的,你还可以通过使用指定的输入作为可变大小coder.typeof。有关详细信息,请参阅指定代码生成可变尺寸参数和指定入口点函数输入的属性(编码器MATLAB)。
coder.typeof
验证生成的代码
通过比较预测和置信区间预测和mypredictGLM_mex。以相同的顺序指定名称 - 值对的参数如-args参数在调用代码生成。
-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)
比较确认,返回的值是公差范围内相等1E-6。
1E-6
GeneralizedLinearModel
CompactGeneralizedLinearModel
广义线性回归模型,指定为GeneralizedLinearModel使用对象的创建fitglm要么stepwiseglm或CompactGeneralizedLinearModel使用对象的创建紧凑。
fitglm
stepwiseglm
紧凑
新预测器的输入值,指定为表,数据集阵列或矩阵。每行Xnew对应于一个观测,并且每一列对应于一个变量。
如果Xnew是一个表或数据集阵列,它必须包含具有相同预测器名称作为预测PredictorNames财产MDL。
PredictorNames
如果Xnew是一个矩阵,它必须具有相同数目的以相同的顺序的变量(列)作为预测输入用来创建MDL。注意Xnew还必须包含未用作拟合模型预测任何预测变量。此外,所有的变量创建使用MDL必须是数字。为了治疗数值预测的分类,确定使用的预测'CategoricalVars'名称 - 值对参数当您创建MDL。
'CategoricalVars'
数据类型:单|双|表
单
双
表
指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和值是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N。
名称
值
名1,值1,...,NameN,值N
[ypred,YCI] =预测(MDL,Xnew, '阿尔法',0.01 '同时',真)
'Α'
为置信区间显着性水平,指定为逗号分隔的一对组成的'Α'和在范围[0,1]的数值。的置信水平YCI等于100(1 -Α)%。Α是置信区间不包含真值的概率。
Α
例:'阿尔法',0.01
'阿尔法',0.01
数据类型:单|双
'BinomialSize'
为二项式分布试验次数,指定为逗号分隔的一对组成的'BinomialSize'和一个标量或相同的长度的响应矢量。预测扩展标量输入到相同尺寸的响应的恒定阵列。标量输入装置,所有观察有相同数量的试验。
输出值的含义ypred取决于价值'BinomialSize'。
如果'BinomialSize'是1(默认值),则每个值在输出ypred是成功的概率。
如果'BinomialSize'不为1,则在输出中每个值ypred是在试验成功的预测数目。
'抵消'
零(大小(Xnew,1))
在每个行偏移值Xnew,指定为逗号分隔的一对组成的'抵消'和一个标量或矢量具有相同的长度作为响应。预测扩展标量输入到相同尺寸的响应的恒定阵列。
请注意,这个参数的默认值是,就算你指定零向量'抵消'拟合模型时名称 - 值对的参数。如果您指定'抵消'用于装配,该软件把偏移与固定在1。换言之的系数值的另外预测值,用于装配式是
F(μ)=偏移+X*b,
=偏移+X*b
哪里F是的链接功能,μ是平均响应,并且X*b是预测值的线性组合X。该抵消预测器具有系数1。
抵消
1
'同时'
假
真正
标志来计算同步置信区间,指定为逗号分隔的一对组成的'同时'和真或假。
真正-预测计算置信区间为响应值的对应于所有预测器值在曲线Xnew,采用薛费的方法。的上限和下限之间的范围内含有由真实响应值与100(1 - α)曲线%置信。
假-预测计算用于响应值置信边界在各观察Xnew。在一个特定的预测值的响应值的置信区间包含具有100(1 - α)的真实响应值%置信。
同时界限比单独的边界更宽,因为需要响应值的整个曲线为边界内是不是需要在一个单一的预测值的响应值设定为的范围内严格。
例:“同时”,真
“同时”,真
在预测响应值Xnew时,返回作为数字向量。
对于一个二项式模型中,输出值的意ypred要看的价值'BinomialSize'名称 - 值对的参数。
用于具有偏移的模型,通过使用指定的偏移值'抵消'名称 - 值对的参数。除此以外,预测使用0作为偏移值。
0
的答复的置信区间,返回为每一行提供一个间隔的两列的矩阵。置信区间的含义取决于的名称 - 值对参数的设置'Α'和'同时'。
feval返回相同的预测预测。该feval功能不支持万博1manbetx'抵消'和'BinomialSize'名称 - 值对的参数。feval使用0作为偏移值,并在输出值ypred是预测概率。该feval函数可以接受多个输入参数为新的预测的输入值,对每个预测变量,这是简单的使用与来自表或数据集阵列创建的模型的一个输入。注意,feval功能不上它的预测给予置信区间。
feval
随机收益预测值与添加的噪音。
随机
使用注意事项和限制:
用saveLearnerForCoder,loadLearnerForCoder和代码生成以生成用于代码预测功能。通过使用保存训练模型saveLearnerForCoder。定义一个入口点函数加载使用保存的模型loadLearnerForCoder并调用预测功能。然后用代码生成生成的入口点函数的代码。
此表包含有关的论点笔记预测。未列入此表的参数都完全支持。万博1manbetx
对于模型对象的使用注意事项和限制,请参见代码生成的CompactGeneralizedLinearModel目的。
对于一般的代码生成,Xnew必须是单精度或双精度基质或含有表单要么双预测变量。
如果你想指定Xnew作为一个表,那么你的模型必须使用一个表的训练,你必须确保你的预测入口点函数:
接受数据作为阵列
创建来自数据输入参数的表,确定该表中的变量名
通过该表预测
此表的工作流程的一个例子,见生成代码,以表分类数字数据。有关在代码生成使用表的详细信息,请参阅代码生成的表(编码器MATLAB)和表限制代码生成(编码器MATLAB)。
行,或观测的数量,Xnew可以是可变的大小,但列的数Xnew必须是固定的。
在名称 - 值对参数的名称必须是编译时间常数。例如,以允许在所生成的代码中的用户定义的显着性水平,包括{coder.Constant( '阿尔法'),0}在里面-args的价值代码生成。
{coder.Constant( '阿尔法'),0}
欲了解更多信息,请参阅介绍代码生成。
CompactGeneralizedLinearModel|GeneralizedLinearModel|feval|fitglm|随机
这个例子的修改版本的系统上存在。你要打开这个版本呢?
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
选择一个网站,以获得翻译的内容,其中可看到当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。
请联系您当地的办事处