隐藏 scikit-learn ConvergenceWarning:“增加迭代次数 (max_iter) 或缩放数据”

asm*_*mgx 3 python scikit-learn

我正在使用 Python 来预测值并收到许多警告,例如:

增加迭代次数 (max_iter) 或缩放数据,如下所示:https : //scikit-learn.org/stable/modules/preprocessing.html另请参阅替代求解器选项的文档: https://scikit- learn.org/stable/modules/linear_model.html#logistic-regression n_iter_i = _check_optimize_result( C:\Users\ASMGX\anaconda3\lib\site-packages\sklearn\linear_model_logistic.py:762: ConvergenceWarning: lbfgs 未能收敛 (状态=1): 停止:迭代总数达到限制。

这使我无法看到自己打印的结果。

有什么办法可以阻止显示这些警告吗?

Seb*_*ser 5

您可以使用warnings-module 暂时抑制警告。所有警告或特定警告。

在这种情况下,scikit-learn 会引发一个ConvergenceWarning警告,因此我建议完全抑制此类警告。该警告类位于sklearn.exceptions.ConvergenceWarning所以预先导入它并使用上下文管理器catch_warnings和函数simplefilter忽略警告,即不将其打印到屏幕上:

import warnings
from sklearn.exceptions import ConvergenceWarning

with warnings.catch_warnings():
    warnings.simplefilter("ignore", category=ConvergenceWarning)
    
    optimizer_function_that_creates_warning()

Run Code Online (Sandbox Code Playgroud)

您还可以全局忽略该特定警告,以避免使用上下文管理器:

import warnings
warnings.simplefilter("ignore", category=ConvergenceWarning)

optimizer_function_that_creates_warning()
Run Code Online (Sandbox Code Playgroud)

我建议使用上下文管理器,因为您确定在哪里抑制警告。这样您就不会抑制来自意外地方的警告。