消除scikit-learn的警告

时间:2015-09-16 14:57:36

标签: python scikit-learn warnings

我想在教学时忽略所有包装中的警告,但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:

我是否错误地使用了这个模块,或者是否正在做一些不应该做的事情?

2 个答案:

答案 0 :(得分:50)

让我极为烦恼的是forces warnings

我开始在main.py:

的顶部使用它
def warn(*args, **kwargs):
    pass
import warnings
warnings.warn = warn

#... import sklearn stuff...

答案 1 :(得分:45)

他们有changed their warning policy in 2013。您可以使用以下内容忽略警告(也是特定类型):

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

//编辑:在下面的评论中,Reed Richards指出the filterwarnings call needs to be in the file that calls the function that gives the warning. 我希望这可以帮助那些遇到问题的人。