【发布时间】:2018-06-23 09:26:31
【问题描述】:
我想使用 python3 来构建 zeroinflatedpoisson 模型。我在库statsmodel 中找到了函数statsmodels.discrete.count_model.ZeroInflatePoisson。
我只是想知道如何使用它。看来我应该这样做:ZIFP(Y_train,X_train).fit().
但是当我想使用X_test进行预测时。
它告诉我X_test 的长度不适合X_train。
或者是否有适合此模型的其他软件包?
这是我使用的代码:
X1 = [random.randint(0,1) for i in range(200)]
X2 = [random.randint(1,2) for i in range(200)]
y = np.random.poisson(lam = 2,size = 100).tolist()
for i in range(100):y.append(0)
df['x1'] = x1
df['x2'] = x2
df['y'] = y
df_x = df.iloc[:,:-1]
x_train,x_test,y_train,y_test = train_test_split(df_x,df['y'],test_size = 0.3)
clf = ZeroInflatedPoisson(endog = y_train,exog = x_train).fit()
clf.predict(x_test)
ValueError:operands could not be broadcat together with shapes (140,)(60,)
也试过了:
clf.predict(x_test,exog = np.ones(len(x_test)))
ValueError: shapes(60,) and (1,) not aligned: 60 (dim 0) != 1 (dim 0)
【问题讨论】:
-
显示您尝试过的实际代码。模型名称为
ZeroInflatedPoisson和fit和predict的工作方式与 statsmodels 中的其他模型相同,但添加了零通胀部分的选项。 -
train_x,test_x,train_y,test_y = train_test_split(data_x,data['y'],test_size = 0.3) clf = ZeroInflatedPoisson(endog = train_x, exog = train_y).fit() clf.predict (test_x) ValueError: 操作数不能与形状 (140,) (60,) 一起广播
标签: python-3.x data-analysis statsmodels