【问题标题】:statsmodel.api.Logit: valueerror array must not contain infs or nansstatsmodel.api.Logit:valueerror 数组不得包含 infs 或 nans
【发布时间】:2013-10-13 22:36:29
【问题描述】:

我正在尝试使用 statsmodel.api.Logit 在 Python 中应用逻辑回归。 我遇到了错误 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 行。 其中 data['admit'] 是目标值, data[train_cols] 是特征列表。 谁能给我一些提示来解决这个问题?

【问题讨论】:

    标签: python pandas statsmodels


    【解决方案1】:

    默认情况下,Logit 不会检查您的数据是否存在不可处理的无穷大 (np.inf) 或 NaN (np.nan)。在 pandas 中,后者通常表示缺少条目。

    要忽略缺少数据的行并继续其余部分,请使用missing='drop',如下所示:

    sm.Logit(data['admit'], data[train_cols], missing='drop')
    

    请参阅Logit docs 了解其他选项。

    如果您不希望您的数据包含任何丢失的条目或无穷大,则可能是您错误地加载了它。查看data[data.isnull()] 看看问题出在哪里。 (注:Read this 了解如何使 infs 注册为 null。)

    【讨论】:

      猜你喜欢
      • 2021-03-17
      • 2016-06-20
      • 2013-01-06
      • 2021-02-14
      • 2021-05-28
      • 2017-12-25
      • 2016-03-09
      • 2016-01-31
      • 2021-07-07
      相关资源
      最近更新 更多