我正在尝试使用statsmodel.api.Logit在Python中应用Logistic回归。 我遇到了错误 ValueError:数组不得包含infs或NaN。
当我执行时:
data['intercept'] = 1.0
train_cols = data.columns[1:]
logit = sm.Logit(data['admit'], data[train_cols])
result = logit.fit(start_params=None, method='bfgs', maxiter=20, full_output=1, disp=1, callback=None)
数据包含超过15000列和2000行。 哪个数据['admit']是目标值,data [train_cols]是要素列表。 任何人都可以给我一些提示来解决这个问题吗?
答案 0 :(得分:3)
默认情况下,Logit
不会检查您的数据是否存在无法处理的无效(np.inf
)或NaN(np.nan
)。在熊猫中,后者通常表示缺少条目。
要忽略缺少数据的行并继续其余行,请使用missing='drop'
,如下所示:
sm.Logit(data['admit'], data[train_cols], missing='drop')
有关其他选项,请参阅Logit docs。
如果您不希望您的数据包含任何丢失的条目或无穷大,可能是您错误地加载了它。查看data[data.isnull()]
以查看问题所在。 (N.B。Read this看看如何使infs注册为null。)