使用GLM模型的问题

我在理解如何使用泊松分布的GLM模型时遇到了一些困难。

import numpy as npimport scikits.statsmodels as smdataset = pd.DataFrame({'A':np.random.rand(100)*1000,                         'B':np.random.rand(100)*100,                          'C':np.random.rand(100)*10,                         'target':np.random.rand(100)})X = dataset.ix[:,['A','B','C']].valuesy = dataset.ix[:,['target']].valuessize = 1e5nbeta = 3fam = sm.families.Poisson()glm = sm.GLM(y,X, family=fam)res = glm.fit()
  • 我使用”target”列作为目标变量,我应该将目标变量标记为0还是1?
  • 谁能解释一下如何获得预测值,因为泊松分布有另一个predict函数?

回答:

Sourceforge目前无法访问。一旦恢复正常,你应该阅读文档示例。其中有大量关于预测和GLM的使用说明。

如何标记你的目标变量取决于你自己,可能需要在cross-validated上提问。泊松分布适用于计数数据,但也可以用于连续数据,不过你应该清楚自己在做什么。

如果你有0/1数据,你需要使用Logit或Probit模型。类似这样的。你不需要将pandas对象转换为numpy。

import numpy as npimport statsmodels.api as smdataset = pd.DataFrame({'A':np.random.rand(100)*1000,                         'B':np.random.rand(100)*100,                          'C':np.random.rand(100)*10,                         'target':np.random.randint(0, 5, 100)})X = dataset[['A','B','C']]X['constant'] = 1y = dataset['target']size = 1e5nbeta = 3fam = sm.families.Poisson()glm = sm.GLM(y,X, family=fam)res = glm.fit()predict = res.predict()

或者你可以直接使用泊松分布的最大似然估计器。

res = sm.Poisson(y, X).fit()predict = res.predict()

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注