【发布时间】:2018-06-14 12:26:37
【问题描述】:
在使用sklearn.neural_network.MLPClassifier 拟合模型时,我有时会收到控制台中打印的警告:
ConvergenceWarning:随机优化器:达到最大迭代次数 (300),优化尚未收敛。
有没有办法在运行时检测到警告以便我可以采取行动?
【问题讨论】:
标签: python python-3.x scikit-learn
在使用sklearn.neural_network.MLPClassifier 拟合模型时,我有时会收到控制台中打印的警告:
ConvergenceWarning:随机优化器:达到最大迭代次数 (300),优化尚未收敛。
有没有办法在运行时检测到警告以便我可以采取行动?
【问题讨论】:
标签: python python-3.x scikit-learn
您可以使用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)
...
【讨论】:
拟合后检查n_iter_属性。如果小于您配置的最大迭代次数 (max_iter),则它收敛。
【讨论】:
n_iter?一些代码会有所帮助。