python - 将 Patsy 用于 Logistic 回归模型的值错误
问题描述
为了我的问题,我制作了一个非常简单的逻辑模型。这是下面的代码;
import patsy
import pandas as pd
import statsmodels.api as sm
df = pd.DataFrame()
for i in range(5):
df.at[i, 'response'] = 1
if i == 3:
df.at[i,'response'] = 0
df['x'] = range(5)
y, X = patsy.dmatrices('response ~ x', df,return_type = 'dataframe')
logit_model=sm.Logit(y,X)
result=logit_model.fit()
ypred = logit_model.predict(X)
print(ypred)
请原谅我蹩脚的代码,我正在匆忙写这个 - 需要去工作哈哈。这段代码抛出了一个值错误 - ValueError: shape (5,2) and (5,2) not aligned: 2 (dim 1) != 5 (dim 0) about line 18。
我真的不明白这些是如何不对齐的,因为我只是使用 predict() 将训练数据 X 传递回模型。我的感觉是我错过了关于 patsy.dmatrices 的一些东西。
有人有想法吗?
解决方案
您将拟合对象分配给result
,因此您应该使用它来预测:
result.predict(X)
要获得拟合值,您还可以执行以下操作:
result.fittedvalues
推荐阅读
- bash - 从数组中提取值
- django - 如何在我的 Django 应用程序的“评论”视图中修复此错误?
- c# - 如何将 CultureInfo 的实例从 Angular 传递到 Web API?
- c# - 为什么我在 asp.net 的 POST 中得到空值
- python - urwid 或 curses 中的颜色传递
- java - postForEntity 的 Mockito 测试不起作用
- sql - SQL 查询 - 仅获取价格变化
- javascript - 无法将 XMLHttpRequest 设置为 3 个单独的 API url
- java - CSS 没有找到 JavaFX 规则
- laravel - Laravel 重定向问题