xgboost出现DeprecationWarning警告

5
我已经使用从http://www.lfd.uci.edu/~gohlke/pythonlibs下载的whl安装了xgboost。
当我尝试以下操作时:
import xgboost

我收到了以下信息:

d:\program files\python\lib\site-packages\sklearn\cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20. "This module will be removed in 0.20.", DeprecationWarning)

如果我在导入xgboost之前打印import sklearn,就不会出现这个消息。我认为这个消息不会影响结果,但怎样避免它呢?我也通过pip检查了所有软件包是否最新。

2个回答

0

首先:

是的,它暂时不会影响结果。

接下来,如何避免这种情况?

嗯,这不是一个简单的答案。软件在不断发展,依赖关系是不可避免的。抵抗是徒劳的。由于包和配置管理政策是唯一的方法,因此我们必须应对它。

什么对类似需求最有效?

  1. 隔离你的实验,VM 隔离足以构建

  2. 继续使用强大的包管理 - Travis OLIPHANT 的 Anaconda 是一个好选择(+3)

  3. 强制执行配置管理,以避免“新”包占据主导地位后出现问题。Anaconda 允许您“冻结”受控[环境],在其中定义所保留的各个软件包的版本/发布号(并且 Anaconda 可以很好地控制这些软件包之间的交叉依赖关系,因此我们可以从清晰和易于识别的[环境]中受益,在其中运行代码并继续运行)

天真的建议总是更新到“最新版本”,可能会破坏当前工作的玩具并使事情陷入混乱。更好的方法是明确定义/配置/识别/强制执行完全受控制的[环境],并将其保留多年。

如果一个人处于ISO/EN-9000+、NATO-STANAG AQAP-130+等级别下,没有比这更好的方法来保持前进。


0

我也遇到了同样的问题。根据xgboost安装指南,我使用了以下命令,而不是pip install,警告就消失了:

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
make -j4
cd python-package
python setup.py install

请务必通过以下方式卸载之前安装的xgboost:

pip uninstall xgboost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接