资源XGBoost中文文档开放上去就是一把梭

[~~☛关于启用赞助会员☚~~]

<
style="max-width: 100%;box-sizing: border-box !important;word-wrap:
eak-word !important;">

近日,ApacheCN开放了XGBoost中文文档项目,该项目提供了XGBoost相关的安装步骤、使用教程和调参技巧等中文内容。该项目目前已完成原英文文档90%的内容,机器之心简要介绍了该文档并希望各位读者共同完善它。


  • 中文文档地址:http://xgboost.apachecn.org/cn/latest/

  • 英文文档地址:http://xgboost.apachecn.org/en/latest/

  • 中文文档GitHub地址:https://github.com/apachecn/xgboost-doc-zh


梯度提升树已经在实践中证明可以有效地用于分类和回归任务的预测挖掘。之前我们所选择的提升树算法一直都是MART(multipleadditiveregressiontree)。但从2015年开始,一种新的且总是获胜的算法浮出了水面:XGBoost。这种算法重新实现了树提升,并在Kaggle和其它数据科学竞赛中屡获佳绩,因此受到了人们的欢迎。


在介绍陈天奇等人提出的XGBoost之前,我们需要先了解一些关于提升方法的概念。首先提升方法是一种使用多个更简单的模型来拟合数据的学习算法,它所用的这些更简单的模型也被称为基本学习器(baselearner)或弱学习器(weaklearner)。它通过改变训练样本的权重而学习多个分类器,并将这些分类器进行线性组合以提升分类性能。


对于AdaBoost算法来说,提高那些被前一轮弱分类器错误分类样本的权重,而降低那些被正确分类样本的全职。这样,那些没有得到正确分类的数据,由于权重的加大而受到后一轮的弱分类器的更大关注,因此分类问题就被一些列弱分类器分而治之。


若我们将提升算法与树方法结合起来,就能构建提升树算法,它在很多Kaggle竞赛中都能得到十分优秀的结果。提升后的树模型可以看作是自适应基函数模型,其中的基函数是分类回归树。提升树模型是多个树模型的和,所以也被称为树集成或加性树模型(additivetreemodel)。一般来说,提升树往往使用很浅的分类回归树,即仅有少数叶结点的回归树。相对于更深度的树,这样的方差较低,但偏差更大。


因此,在提升树模型(即自适应的确定邻域)的帮助下,MART和XGBoost一般可以比其它方法实现更好的拟合。它们可以执行自动特征选择并且获取高阶交互,而不会出现崩溃。


通过比较MART和XGBoost,尽管MART确实为所有树都设置了相同数量的叶结点,但XGBoost通过设置Tmax和一个正则化参数而使树变得更深,且同时仍然让方差保持很低。相比于MART的梯度提升,XGBoost所使用的牛顿提升很有可能能够学习到更好的结构。XGBoost还包含一个额外的随机化参数,即列子采样,这有助于进一步降低每个树的相关性。


因此总而言之,XGBoost在很多方面都优于一般的MART算法,它带来了一种改进提升树的新方法。


在最近的ApacheCN项目中,他们开放了一份XGBoost中文文档:可伸缩且灵活的梯度提升。




该项目不仅包含完整的安装指南:


安装页面提供了有关如何在各种操作系统上构建和安装xgboost软件包的说明.由如下两个步骤组成:


1.首先,从C++代码中构建共享库(针对linux/osx的是libxgboost.so然后针对windows的是libxgboost.dll)。


  • Exception:针对R软件包的安装请直接参考R软件包的部分。


2.然后,安装相关的编程语言软件包(例如.Python软件包)。

<
style="font-size: 15px;">

重要提示:最新版本的xgboost使用子模块来维护软件包,所以当你clonerepo时,记得按如下方式使用递归选项。


  1. git clone --recursive https://github.com/dmlc/xgboost


针对使用github工具的windows用户,可以打开gitshell,然后输入以下命令。


  1. git submodule init

  2. git submodule update


如果你在安装期间有任何问题,请首先参考故障排除部分.如果其中的说明不适合你,请放心的到xgboost-doc-zh/issues上提问题,或者如果你能解决该问题,最好发起一个pullrequest。


安装页面内容目录


  • 构建共享库


  1. 在Ubuntu/Debian上构建

  2. 在OSX上构建

  3. 在Windows上构建

  4. 自定义构建


  • Python软件包安装

  • R软件包安装

  • 故障排查


除了安装外,学习教程页面还介绍了提升树、AWS上的分布式XGBoostYARN和DARTBooster。这三个教程都有详细的推导或实现步骤,是XGBoost包中的官方教程。


在我们正式使用XGBoost时,还有很重要的步骤就是参数调整。该文档的参数调整部分介绍了如何理解Bias-Variance(偏差-方差)权衡、控制过拟合和处理不平衡的数据集等方面。


此外,本文档还提供了非常重要的XGBoost运行过程,包括libsvm文本格式、Numpy2维数组和xgboost二进制缓存文件等数据接口,参数设置、训练过程、预测和绘图等方法。以下是使用Python的概要:


  1. import xgboost as xgb

  2. # 读取数据

  3. dtrain = xgb.DMatrix('demo/data/agaricus.txt.train')

  4. dtest = xgb.DMatrix('demo/data/agaricus.txt.test')

  5. # 通过 map 指定参数

  6. param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic' }

  7. num_round = 2

  8. bst = xgb.train(param, dtrain, num_round)

  9. # 预测

  10. preds = bst.predict(dtest)



本文为机器之心整理,<
style="max-width: 100%;box-sizing: border-box !important;word-wrap:
eak-word !important;">

版权免责声明

卡卡教学资源网所有资源全部来源于网络整理,本站目地只是为了提供给网友学习研究任何人以任何方式架设运营或出现任何法律问题都与本站无关,如同意观点请下载,如不同意请离开!卡卡教学资源网特此声明!

分享:

扫一扫在手机阅读、分享本文

本站资源所有内容免费,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号
×