文档帮助中心文档
广义线性回归模型的预测响应
ypred=预测(mdl,Xnew)
[ypred,yci]=预测(mdl,Xnew)
[ypred,开办]=预测(mdl Xnew,名称,值)
实例
伊普雷德=预测(mdl,Xnew)返回广义线性回归模型的预测响应值mdl切中要害Xnew.
伊普雷德=预测(mdl,Xnew)
伊普雷德
mdl
Xnew
[伊普雷德,开办) =预测(mdl,Xnew)的响应也返回置信区间Xnew.
[伊普雷德,开办) =预测(mdl,Xnew)
开办
[伊普雷德,开办) =预测(mdl,Xnew,名称、值)使用一个或多个名称-值对参数指定其他选项。例如,可以指定置信区间的置信水平。
[伊普雷德,开办) =预测(mdl,Xnew,名称、值)
名称、值
全部崩溃
创建一个广义线性回归模型,并预测其对新数据的响应。
使用具有两个潜在预测因子的泊松随机数生成样本数据X (: 1)和X (:, 2).
X (: 1)
X (:, 2)
RNG('默认')%的再现性rndvars = randn (100 2);X = [2 + rndvars(:,1),rndvars(:,2)];mu = exp(1 + X*[1;2]);y = poissrnd(μ);
建立Poisson数据的广义线性回归模型。
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®Coder™。
saveLearnerForCoder
loadLearnerForCoder
预测
codegen
此示例简要介绍了用于预测命令行的线性回归模型的代码生成工作流程。有关更多详细信息,请参阅机器学习模型在命令行预测的代码生成. 您还可以使用MATLAB Coder应用程序生成代码。有关详细信息,请参阅基于MATLAB编码器的机器学习模型预测代码生成.
火车模型
创建一个广义线性回归模型。指定响应的泊松分布。
保存模型
将拟合的广义线性回归模型保存到文件中GLMMdl.mat利用saveLearnerForCoder.
GLMMdl.mat
saveLearnerForCoder (mdl“GLMMdl”);
定义入口点函数
在当前文件夹中,定义一个名为mypredictGLM.m这样做的目的如下:
mypredictGLM.m
接受新的预测器输入和有效名称值对参数。
将拟合的广义线性回归模型加载到GLMMdl.mat利用loadLearnerForCoder.
返回预测和置信区间界限。
函数[yhat,ci]=mypredictGLM(x,varargin)% # codegen%MYPREDICTGLM使用GLM模型预测响应% MYPREDICTGLM预测n × 1的n个观察的响应%使用MAT文件GLMMdl.MAT中存储的GLM模型的向量x,%,然后返回n × 1向量yhat中的预测。的置信区间界限%n×2向量ci中的预测。CompactMdl = loadLearnerForCoder (“GLMMdl”);narginchk(正);[yhat, ci] =预测(CompactMdl x,变长度输入宗量{:});终止
添加% # codegen编译器指令(或pragma)到函数签名后的入口点函数,以指示您打算为MATLAB算法生成代码。添加此指令将指示MATLAB代码分析器帮助您诊断和修复在代码生成期间可能导致错误的违规。
% # codegen
生成代码
使用生成入口点函数的代码codegen(MATLAB编码器).因为C和c++都是静态类型语言,所以必须在编译时确定入口点函数中所有变量的属性。要指定数据类型和准确的输入数组大小,请传递一个MATLAB®表达式,该表达式表示具有特定数据类型和数组大小的值集。使用编码器。常数(MATLAB编码器)用于名称-值对参数的名称。
编码器。常数
为预测创建点。
生成代码并指定对预测同时返回90%的置信区间。
codegenMyGLM-args{Xnew,coder.Constant('Alpha'),0.1,coder.Constant('synchronous'),true}
代码生成成功。
codegen生成MEX函数mypredictGLM\u mex与平台相关的扩展。
mypredictGLM\u mex
如果编译时观察值的数量未知,还可以使用coder.typeof(MATLAB编码器).有关详细信息,请参见为代码生成指定可变大小参数和指定入口点函数输入的属性(MATLAB编码器).
coder.typeof
验证生成的代码
比较预测和置信区间使用预测和mypredictGLM\u mex.的顺序指定名称-值对参数-args调用中的参数codegen.
-args
[yhat1, ci1] =预测(mdl Xnew,“α”,0.1,“同时”,真正的);[yhat2, ci2] = mypredictGLM_mex (Xnew,“α”,0.1,“同时”,真正的);
从中返回的值mypredictGLM\u mex可能包括与中的值相比的舍入差异预测.在这种情况下,比较允许小公差的值。
查找(abs(yhat1-yhat2)>1e-6)
Ans = 0x1空双列向量
查找(abs(ci1-ci2)>1e-6)
比较确认返回值在公差内相等1 e-6.
1 e-6
广义线性模型
CompactGeneralizedLinearModel
广义线性回归模型,指定为广义线性模型使用创建的对象fitglm或stepwiseglm,或者一个CompactGeneralizedLinearModel使用创建的对象紧凑的.
fitglm
stepwiseglm
紧凑的
新的预测器输入值,指定为表、数据集数组或矩阵。每一行的Xnew对应一个观察值,每一列对应一个变量。
如果Xnew是表或数据集数组,它必须包含具有与中相同的预测器名称的预测器PredictorNames性质mdl.
PredictorNames
如果Xnew是一个矩阵,它必须有相同数量的变量(列)在相同的顺序,作为预测器输入用于创建mdl.注意Xnew还必须包含在拟合模型中未用作预测器的任何预测器变量。此外,创建过程中使用的所有变量mdl必须是数字。要将数值预测值视为分类预测值,请使用“CategoricalVars”创建时的名称-值对参数mdl.
“CategoricalVars”
数据类型:单|双|表格
单
双
表格
指定可选的逗号分隔的字符对名称、值参数。的名字是参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
的名字
价值
Name1, Value1,…,的家
[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)
α
置信区间的显著性级别,指定为逗号分隔的对,由“α”和一个范围为[0,1]的数值。的置信水平开办等于100(1 –α)%.α为置信区间不包含真值的概率。
“α”
例子:“阿尔法”,0.01
“阿尔法”,0.01
数据类型:单|双
二值化
二项分布的试验次数,指定为逗号分隔对,包括“比诺米阿尔斯”和响应长度相同的标量或向量。预测将标量输入展开为与响应大小相同的常量数组。标量输入意味着所有的观察结果有相同的试验次数。
“比诺米阿尔斯”
中输出值的含义伊普雷德取决于价值“比诺米阿尔斯”.
如果“比诺米阿尔斯”为1(默认值),则输出中的每个值伊普雷德是成功的概率。
如果“比诺米阿尔斯”不是1,那么输出中的每个值伊普雷德是试验成功的预测数字。
抵消
0(大小(Xnew,1))
中每行的偏移值Xnew,指定为逗号分隔对,由“抵消”以及与响应长度相同的标量或向量。预测将标量输入展开为与响应大小相同的常量数组。
“抵消”
注意,此参数的默认值是一个零向量,即使您指定“抵消”当拟合模型时的名称-值对参数。如果您指定“抵消”为了进行拟合,该软件将偏移量作为一个系数值固定为1的附加预测因子。换句话说,拟合公式为
F(μ)=偏移量+X*B,
=偏移量+X*B
在哪里F为链接函数,μ是平均响应,以及X*B是预测因子的线性组合X.的抵消预测器有系数1..
1.
同时的
错误的
真正的
用于计算同时置信限的标志,指定为逗号分隔对,由“同时”或真或假。
“同时”
真正的—预测中所有预测值对应的响应值曲线的置信界限Xnew用谢弗的方法。上界和下界之间的范围包含由100(1 - α)%置信度的真实响应值组成的曲线。
错误的—预测计算每个观测点的响应值的置信范围Xnew.在特定预测值下的响应值的置信区间包含具有100(1 - α)%置信度的真实响应值。
同时的界限比单独的界限更宽,因为要求整个响应值曲线在界限内比要求单个预测值的响应值在界限内更严格。
例子:“同步”,真的
“同步”,真的
预测响应值Xnew,作为数字向量返回。
对于二项式模型,输出值在伊普雷德取决于价值“比诺米阿尔斯”名称-值对的论点。
属性指定有偏移量的模型“抵消”名称-值对的论点。否则,预测用途0作为偏移值。
0
响应的置信区间,以两列矩阵的形式返回,每行提供一个区间。置信区间的含义取决于名称-值对参数的设置“α”和“同时”.
函数宏指令返回与预测.的函数宏指令函数不支持金宝app“抵消”和“比诺米阿尔斯”名称-值对参数。函数宏指令中使用0作为偏移值,输出值为伊普雷德预计概率。的函数宏指令函数可以为新的预测器输入值获取多个输入参数,每个预测器变量一个输入,这对于从表或数据集数组创建的模型来说更简单函数宏指令函数不提供其预测的置信区间。
函数宏指令
随机的返回带有噪声的预测。
随机的
使用注意事项及限制:
使用saveLearnerForCoder,loadLearnerForCoder,codegen(MATLAB编码器)为预测函数。通过使用保存一个训练过的模型saveLearnerForCoder.定义一个入口点函数,通过使用loadLearnerForCoder并调用预测函数。然后使用codegen为入口点函数生成代码。
这个表格包含关于的参数的注释预测.表中未包含的参数完全支持。金宝app
有关模型对象的使用说明和限制,请参见代码生成的CompactGeneralizedLinearModel对象。
Xnew必须是单精度或双精度矩阵,或包含数字变量、分类变量或两者的表。
中的行数或观察值Xnew可以是可变大小,但列的数量Xnew必须是固定的。
如果你想指定Xnew作为表,则必须使用表对模型进行训练,并且必须确保预测的入口点函数:
接受数据为数组
根据数据输入参数创建表,并指定表中的变量名
把桌子传递给预测
有关此表格工作流的示例,请参见生成代码对表中的数据进行分类.有关在代码生成中使用表的更多信息,请参见表的代码生成(MATLAB编码器)和表1代码生成的限制(MATLAB编码器).
名称-值对参数中的名称必须是编译时常量。例如,要在生成的代码中允许用户定义的显著性级别,包括{coder.Constant('Alpha'),0}在-args价值codegen(MATLAB编码器).
{coder.Constant('Alpha'),0}
有关更多信息,请参见代码生成简介.
该功能完全支持GPU阵列。金宝app有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
这个函数支持带有GPU阵列输金宝app入参数的模型对象。
广义线性模型|CompactGeneralizedLinearModel|fitglm|随机的|函数宏指令
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。
与当地办事处联系