【发布时间】:2015-12-13 06:02:06
【问题描述】:
我想在教学时忽略所有包的警告,但 scikit-learn 似乎可以使用 warnings 包来控制它。例如:
with warnings.catch_warnings():
warnings.simplefilter("ignore")
from sklearn import preprocessing
/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:66: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
if 'order' in inspect.getargspec(np.copy)[0]:
/usr/local/lib/python3.5/site-packages/sklearn/utils/fixes.py:358: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() instead
if 'exist_ok' in inspect.getargspec(os.makedirs).args:
是我错误地使用了这个模块,还是 sklearn 做了一些不该做的事情?
【问题讨论】:
-
这个问题与@San 提到的帖子中的问题不同,它不是 上面标记的重复问题@joshterrell805 在下面给出了正确答案 - 它是
sklearn问题:他们强制弃用警告 -
@suever:这不是重复的。这确实是一个 scikit-learn 特定的问题。在 scikit-learn 0.22 中,该问题将得到修复,因为 scikit-learn 将不再重新配置警告过滤器,而是始终发出可以被自定义过滤器覆盖的 FutureWarnings:github.com/scikit-learn/scikit-learn/pull/15080
-
正如@ogrisel 所提到的,这里的答案现在从版本 0.22(2019 年 12 月)开始已经过时。 Scikit-learn 现在使用 FutureWarning,您可以在上面的链接和here 中阅读更多详细信息
-
从警告导入 filterwarnings filterwarnings("ignore")
-
我考虑的是使用你的执行环境来重定向警告。例如,如果我从 Eclipse 开始,只需将 stderr 发送到其他地方,也许是一个文件,然后我就不必处理它了。与 scikit-learn 战斗对我来说似乎是一场失败的战斗
标签: python scikit-learn warnings