忽略来自Python模块(seaborn,sklearn)的警告

时间:2019-05-23 12:52:07

标签: python scikit-learn warnings seaborn

与上面的问题标题相关的问题很多,所有这些基本上都告诉您要做:

import warnings
warnings.filterwarnings('ignore')

并确保将其放置在 首次导入之前。

但是,即使这样做了,我仍然收到seabornsklearn的警告。我得到UserWarningDataConversionWarningRuntimeWarning,根据文档,它们都继承自Warning,应该包含在上面的代码中。

还有另一种隐藏这些警告的方法吗? (我还是不能解决大多数问题)

编辑

示例1:

C:\Anaconda3\lib\site-packages\sklearn\preprocessing\data.py:645: DataConversionWarning: Data with input dtype int32, int64 were all converted to float64 by StandardScaler.
  return self.partial_fit(X, y)

示例2

C:\Anaconda3\lib\site-packages\seaborn\distributions.py:340: UserWarning: Attempted to set non-positive bottom ylim on a log-scaled axis.
Invalid limit will be ignored.
  ax.set_ylim(0, auto=None)

1 个答案:

答案 0 :(得分:1)

Example2

很难追踪; seaborn进口统计模型。然后在statsmodels/tools/sm_exceptions.py中找到this line

warnings.simplefilter('always', category=UserWarning)

,其中可逆转以前的任何用户警告设置。

目前的解决方案是删除该行或者在导入seaborn之后(因此是statsmodels)设置警告状态 。在将来的statsmodels版本中,此问题将由PR 4712修复,因此也可以选择使用statsmodels的开发版本。

示例1

我找不到从sklearn复制第一个示例的方法;因此,可能有或没有不同的原因。