使用 sklearn.neural_network.MLPClassifier
拟合模型时我有时会收到打印在控制台中的警告:
ConvergenceWarning: Stochastic Optimizer: Maximum iterations (300) reached and the optimization hasn't converged yet.
有没有办法在运行时检测警告以便我可以采取行动?
最佳答案
您可以使用 warnings.catch_warnings
实时捕获警告
import warnings
with warnings.catch_warnings()
warnings.filterwarnings('error')
try:
model.fit(X, y)
except Warning:
# do something in response
此结构将捕获任何在线警告,并允许您以您认为合适的方式对其做出响应。在这种情况下,可能会修改一些超参数以使模型更容易收敛。
您也可以使用 warnings.filterwarnings
忽略警告并且可以指定要忽略的警告类型。
忽略ConvergenceWarning
:
from sklearn.execpetions import ConvergenceWarning
warnings.filterwarnings('ignore', category=ConvergenceWarning)
...
关于python - 如何以编程方式检测 Scikit-learn 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100939/