使用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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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