【问题标题】:DeprecationWarning with xgboost使用 xgboost 的弃用警告
【发布时间】:2017-05-04 17:44:09
【问题描述】:
我已经使用来自http://www.lfd.uci.edu/~gohlke/pythonlibs 的whl 安装了xgboost
当我尝试过时:
import xgboost
我收到了下一条消息:
d:\程序
文件\python\lib\site-packages\sklearn\cross_validation.py:44:
弃用警告:此模块在 0.18 版中已弃用
支持所有重构的 model_selection 模块
类和函数被移动。还要注意的是界面
新的 CV 迭代器与该模块的不同。这个模块
将在 0.20 中删除。 "此模块将在 0.20 中删除。",
弃用警告)
如果我在import xgboost 之前打印import sklearn,我不会收到任何消息。我假设此消息不会影响结果,但如何避免呢?我还通过 pip 检查了所有软件包是否都是最新的。
【问题讨论】:
标签:
python
scikit-learn
xgboost
【解决方案1】:
第一:
可以,暂时不会影响结果。
接下来,如何避免?
嗯,这不是一个简单的答案。软件不断发展。依赖是不可避免的。 抵抗是徒劳的。由于包和配置管理策略是唯一的方法,如何应对。
什么最适合类似的需求?
隔离您的实验,VM 隔离足以构建
继续使用强大的包管理 - Travis OLIPHANT 的 Anaconda 是一种可行的方法 (+ 3)
强制配置管理以避免在“新”包在阳光下占据一席之地后流血。 Anaconda 允许“冻结”一个受控的 [environment],您可以在其中定义各个软件包的版本/发布号(并且 Anaconda 可以很好地控制那里的事物的交叉依赖关系,所以我们可以从清晰且易于识别的[environment]-s 中受益,其中的代码用于运行并进一步运行)
总是更新到“最新版本”的幼稚建议只会破坏当前工作的玩具并将事情搞砸。最好明确定义/配置/识别/强制执行完全受控的[environment]-s 以使用并保持多年。
如果一个人符合 ISO/EN-9000+、NATO-STANAG AQAP-130+ 等标准,那么就没有比这更好的方法了。
【解决方案2】:
我遇到了同样的问题。我根据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