1. Bagging与Boosting [7]
(1)Bagging算法:每个分类器都随机从原样本中做有放回的采样,然后分别在这些采样后的样本上训练分类器,然后再把这些分类器组合起来。简单的多数投票一般就可以。其代表算法是Random Forest。Bagging主要关注降低方差,因此它在不剪枝的决策树、神经网络等学习器上效用更为明显。
(2)Boosting算法:通过迭代地训练一系列的分类器,每个分类器采用的样本分布都和上一轮的学习结果有关。其代表算法是AdaBoost,GBDT。Boosting主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成。
(3)Bootstrapping算法:利用有限的样本经由多次重复放回抽样,重新建立起足以代表母体样本分布的新样本。[13]
(4)Permutation Test(非参数检验):Permutation Test是Fisher于20世纪30年代提出的一种基于大量计算利用样本数据的全(或随机)排列,进行统计推断的方法。特别适用于总体分布未知的小样本资料,以及某些难以用常规方法分析资料的假设检验问题。在具体使用上,它通过对样本进行顺序上的置换,重新计算检验统计量,构造经验分布,然后在此基础上求出P-value进行推断。[14]
2. XGBoost
XGBoost:eXtreme Gradient Boosting,它是Gradient Boosting Machine的一个C++实现。XGBoos最大的特点就是通过OpenMP能够自动利用单机CPU的多核进行并行计算,并且支持 Python,R,Java,Scala,C++等多种编程接口。提起XGBoost,不能不提的是DMLC深盟分布式深度机器学习开源平台,目前该平台已有的组件覆盖三类最常用的机器学习算法,包括被广泛用于排序的GBDT,用于点击预测的稀疏线性模型,以及目前的研究热点深度学习。
3. XGBoost的Python版本编译和安装 [11]
编译和安装工作均在Windows上面进行,需要提前安装Python,easy_install,wheel,Numpy,Scipy,Matplotlib,Scikit-Learn。主要介绍XGBoost的 编译和安装,如下所示:
用VS 2013打开xgboost-master\windows\xgboostl.sln,分别编译工程rabit,xgboost,xgboost_wrapper。
接下来就是Python包的安装了,进入目录xgboost-master\python-package,然后python setup.py install。安装完毕之后就是测试了,自己使用的Spyder这个IDE,如下所示:
导入xgboost类库没有报错,说明该类库安装成功。最后在目录xgboost-master\demo\guide-python下面有很多基于Python学习XGBoost的代码。
说明:
如果使用IDLE这个IDE,需要指明wrapper文件夹路径,如下所示:
import sys
sys.path.append('XXX:\\YYY\\xgboost-master\\wrapper')
import xgboost as xgb
4. XGBoost自带例子
参考文献:
[1] xgboost 0.4a30:https://pypi.python.org/pypi/xgboost
[2] 在Python中使用XGBoost:https://pypi.python.org/pypi/xgboost
[3] xgboost速度快效果好的boosting模型:http://cos.name/2015/03/xgboost/?replytocom=6610
[4] Scalable and Flexible Gradient Boosting:http://xgboost.readthedocs.io/en/latest/
[5] xgboost:https://github.com/dmlc/xgboost/
[6] San-Francisco-crimes/XGBoost_model.py:https://github.com/MichaelPluemacher/San-Francisco-crimes
[7] xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度:https://www.zhihu.com/question/45487317
[8] 64位Windows 10下安装xgboost python包的教程:http://www.th7.cn/system/win/201603/157092.shtml
[9] xgboost的使用简析:http://blog.csdn.net/john159151/article/details/45549143
[10] DMLC深盟分布式深度机器学习开源平台解析:http://www.csdn.net/article/2015-05-21/2824742
[11] xgboost在windows上的安装:http://www.bubuko.com/infodetail-1154682.html
[12] 统计学习方法——CART,Bagging,Random Forest,Boosting:http://blog.csdn.net/abcjennifer/article/details/8164315
[13] Bootstrapping算法:http://baike.baidu.com/link?url=ZmJ8zYeBXdju7FRSAesyW_0jup9zT7jVtH-0Ymn6MUMIY5_qAgxxom-mV378CqRls3nn8jxofaWeo-0Z9atJXq
[14] Permutation Test:http://www.plob.org/2012/12/19/3176.html