statsmodel.api.Logit:valueerror数组不能包含infs或nans

时间:2013-10-07 11:16:17

标签: python pandas statsmodels

我正在尝试使用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]是要素列表。 任何人都可以给我一些提示来解决这个问题吗?

1 个答案:

答案 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。)