XGBoost全称是eXtreme Gradient Boost,是Gradient Boosting Machine的一个C++实现,由Tianqi Chen设计并开发,系统介绍这一工作的文章XGBoost: A Scalable Tree Boosting System发表在SIGKDD 2016上。现在,XGBoost已完全开源,其Github主页为https://github.com/dmlc/xgboost,项目也有自己的网站http://xgboost.readthedocs.io/en/latest/。如网站介绍所说,XGBoost有以下六大有点:
- Flexible,灵活性。可以用于解决回归问题、分类问题、排名问题,也允许用户定义自己的目标函数,只要能求出目标函数的导数和海塞矩阵。
- Portable,便捷性。XGBoost可以用在Windows,Linux,OS X以及多种云平台上。
- Multiple languages,支持多种语言。目前,XGBoost提供C++、Python、R、Java、Scala、Judia共计六种语言的接口。
- Battle-tested,效果经实战检验。XGBoost赢得了多项数据挖掘或机器学习竞赛,也被很多公司应用于实际产品。
- Distributed on Cloud,支持在多台主机上的分布式训练,可以被应用在 AWS, GCE, Azure, Yarn的集群上,也可以整合入 Flink, Spark及其他分布式数据流系统。
- Performance,XGBoost的后台程序进行了很好的优化,在极大的数据集上也有很好的性能。
下面介绍在Windows平台下的安装。
上面已经介绍了,XGBoost是Gradient Boosting Machine的一个C++实现,因此其源码是一个C++工程。Windows系统上的官方安装指南介绍了如何用MinGW或VS2013来从源码Build并安装。由于我的电脑上没有MinGW,VS版本为2012,尝试Build失败,我从指南中提到的Guido Tapia’s Blog直接下载Build好的Binary文件。
1. 从Guido Tapia’s Blog下载最新版本的xgboost.exe及libxgboost.dll,下载后双击.exe文件运行。
2. 按照Guido Tapia’s Blog的提示安装:1)下载源码,如果已配置了Git,可以通过git clone https://github.com/dmlc/xgboost.git xgboost_install_dir
;如果没有配置Git,可以进入https://github.com/dmlc/xgboost.git,单击Clone or download -> 单击 Download ZIP,从github下载.zip文件并解压到xgboost_install_dir
。2)拷贝dll,将下载的 libxgboost.dll拷贝到xgboost_install_dir\python-package\xgboost\
目录下;3)python接口安装,在命令行中输入cd xgboost_install_dir\python-package\
进入python-package目录下,输入python setup.py install
安装。
搞定。尝试运行xgboost_install_dir\demo\guide-python\
目录下的basic_walkthrough.py,成功。在demo目录下还有很多样例代码,甚至包括kaggle竞赛higgs和otto的代码、如何进行分布式训练、如何利用GPU加速等。最基础的样例在guide-python目录下,参照xgboost的Python API(http://xgboost.readthedocs.io/en/latest/python/python_api.html)通读一遍,就能基本掌握如何使用xgboost了。