dav*_*ave 10 python warnings statsmodels anaconda logistic-regression
我正在使用 Anaconda 并且我正在尝试逻辑回归。加载训练数据集并执行回归后。然后我收到以下警告消息。
train_cols = data.columns[1:]
logit = sm.Logit(data['harmful'], data[train_cols])
result = logit.fit()
Warning: Maximum number of iterations has been exceeded.
Current function value: 0.000004
Iterations: 35
C:\Users\dell\Anaconda\lib\site-packages\statsmodels\base\model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals"Check mle_retvals", ConvergenceWarning)
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此警告以及如何解决此问题?谢谢!
Jos*_*sef 10
有两种可能
1)困难优化问题:通常Logit收敛很快,默认迭代次数设置的很低。在大多数情况下,在对先前结果maxiter的调用fit或重新拟合中添加更大的关键字是有start_params帮助的。
2)既然是Logit,就有可能存在完全分离,或者准完全分离。在这种情况下,某些参数可能会变为无穷大,并且优化会在某个收敛或停止标准处停止。Logit 检测完全分离的简单情况并引发异常,但可能存在未检测到的部分分离。通过完美分离,您可以对某些或所有情况获得完美的可预测性,这对预测很有用,但会导致估计和识别参数时出现问题。更多信息例如在这里https://stats.stackexchange.com/questions/11109/how-to-deal-with-perfect-separation-in-logistic-regression 还有几个关于角落的 statsmodels github 问题的常见问题解答像这样的案例和问题。
| 归档时间: |
|
| 查看次数: |
25201 次 |
| 最近记录: |