预测
广义线性回归模型的预测的反应
描述
例子
预测响应值
创建一个广义线性回归模型,并预测其应对新数据。
使用泊松随机数生成样本数据有两个潜在的预测因子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))
为预测生成C / c++代码
适合一个广义线性回归模型,然后保存模型通过使用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
。
输入参数
mdl
- - - - - -广义线性回归模型
GeneralizedLinearModel
对象|CompactGeneralizedLinearModel
对象
广义线性回归模型,指定为一个GeneralizedLinearModel
对象创建使用fitglm
或stepwiseglm
,或者一个CompactGeneralizedLinearModel
对象创建使用紧凑的
。
Xnew
- - - - - -新的预测输入值
表|数据集的数组|矩阵
新的预测输入值,指定为一个表,数据数组或矩阵。每一行的Xnew
对应于一个观察,每一列对应一个变量。
如果
Xnew
是一个数据集表或数组,它必须包含相同的预测,预测名字的PredictorNames
的属性mdl
。如果
Xnew
是一个矩阵,它必须有相同数量的变量(列)在同一顺序的预测输入用于创建mdl
。请注意,Xnew
还必须包含任何不作为预测变量预测的拟合模型。此外,所有变量用于创建mdl
必须是数值。治疗数值预测分类,识别预测使用“CategoricalVars”
当您创建名称-值对的论点mdl
。
数据类型:单
|双
|表
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:[ypred,开办]=预测(Mdl Xnew,“阿尔法”,0.01,“同时”,真的)
返回置信区间开办
99%的置信水平,同时计算预测的值。
α
- - - - - -显著性水平
0.05(默认)|数值范围在[0,1]
BinomialSize
- - - - - -试验二项分布
1(默认)|标量|向量
二项分布的试验数量,指定为逗号分隔组成的“BinomialSize”
和一个标量或矢量长度相同的反应。预测
扩展了标量输入常数相同大小的数组作为回应。标量输入意味着所有具有相同数量的观测试验。
输出值的意义ypred
取决于的价值“BinomialSize”
。
如果
“BinomialSize”
是1(默认),然后输出中的每个值ypred
是成功的概率。如果
“BinomialSize”
不是1,那么每个值在输出ypred
成功的预测数量的试验。
数据类型:单
|双
抵消
- - - - - -偏移值
0(大小(Xnew,1))
(默认)|标量|向量
抵消价值为每一行Xnew
,指定为逗号分隔两人组成的“抵消”
和一个标量或矢量长度相同的反应。预测
扩展了标量输入常数相同大小的数组作为回应。
注意,这个参数的默认值是0,即使你指定的向量“抵消”
名称-值对参数拟合模型。如果您指定“抵消”
拟合软件将抵消额外的预测系数值固定在1。换句话说,拟合的公式
f(μ)=抵消+X*b
,
在哪里f是连接函数,μ是平均响应,X*b的线性组合预测吗X。的抵消
预测了系数1
。
数据类型:单
|双
同时
- - - - - -国旗来计算同时信心
假
(默认)|真正的
国旗来计算同时置信界限),指定为逗号分隔组成的“同时”
,或真或假。
真正的
- - - - - -预测
计算信任边界曲线的响应值对应的预测价值Xnew
,使用矫正的方法。上下界之间的范围包含曲线组成的真正的响应值与100年(1 -α)%的信心。假
- - - - - -预测
计算置信界限)的响应值在每个观测Xnew
。响应值在一个特定的置信区间预测价值包含真正的响应值与100年(1 -α)%的信心。
同时范围比单独的范围更广泛,因为要求的整个曲线响应值范围内比要求更严格的响应值在一个单一的预测价值范围内。
例子:“同步”,真的
输出参数
选择功能
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
使用
saveLearnerForCoder
,loadLearnerForCoder
,codegen
(MATLAB编码器)生成的代码预测
函数。通过使用保存训练模型saveLearnerForCoder
。定义一个入口点函数,通过使用加载保存模型loadLearnerForCoder
并调用预测
函数。然后使用codegen
入口点函数来生成代码。生成单精度C / c++代码
预测
,指定名称参数“数据类型”、“单身”
当你打电话给loadLearnerForCoder
函数。此表包含的参数
预测
。参数不包括在这个表是完全支持。金宝app论点 笔记和局限性 mdl
使用笔记和限制的模型对象,明白了代码生成的
CompactGeneralizedLinearModel
对象。Xnew
Xnew
必须包含数字单精度和双精度矩阵或表变量,分类变量,或两者兼而有之。的行数,或观察
Xnew
可以一个变量的大小,但列的数量Xnew
必须是固定的。如果你想指定
Xnew
作为一个表,那么您的模型必须被训练使用一个表,你必须确保你的入口点函数预测:接受数据数组
创建一个表的数据输入参数并指定表中的变量名
通过表
预测
这个表的一个示例工作流,请参阅生成代码对数据表进行分类。在代码生成中使用表格的更多信息,见代码生成表(MATLAB编码器)和表限制代码生成(MATLAB编码器)。
名称-值对的观点 名字必须编译时常量名称参数。例如,允许一个用户定义的显著性水平在生成的代码中,包括
{coder.Constant(α),0}
在arg游戏
的价值codegen
(MATLAB编码器)。
有关更多信息,请参见介绍代码生成。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
介绍了R2012a
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。