XGboost作为Kaggle比赛的大杀器,是很牛逼的一个boost实现。能极大提高模
型的预测的准确率,因此使用率极高。我也花了一天简单的接触了下:
- Ensemble原理简述
- XGboost安装
- XGboost案例测试
Ensemble原理简述
模型融合(Ensemble)有三种:Bagging,Stacking,Boosting
Bagging
单个算法角度:不用全部的训练集,每次只取其的一个子集训练模型
多个算法角度:分类情况下对模型结果做投票 ,回归情况下对模型结果做平均
- 关于随机森林:随机森林是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。
Stacking
- 用上一层多个基模型的预测结果作为特征喂给下一层的模型训练
- 关于Blanding:Blanding是弱化的Stacking方式,只是把上层到下层的喂的方式取简单的线性方式
Boosting
- 每次分配给分错样本更高的权重
- 最简单的分类器的叠加
- 关于XGBsoost:想进一步了解XGBoost原理可以翻阅陈天奇大佬的 —— [ ppt]
XGboost安装
安装参考的是—— [链接]
安装环境是Mbp
- 首先安装Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安装最新版本的gcc (gcc-7)
brew install gcc
- 从Git上下载XGBoost源码
git clone --recursive https://github.com/dmlc/xgboost
- 修改对应的gcc和g++版本(去前一步下载好的XGBoost目录下执行)
cp make/config.mk ./config.mk
vi config.mk
- 去掉注释并稍作修改
export CC=/usr/local/bin/gcc-7
export CXX=/usr/local/bin/g++-7
- 编译XGBoost
make -j4
- 如果是利用Python调用,那么还需要
cd python-package; sudo python3 setup.py install
XGboost案例测试
数据源来自出版书籍《An Introduction to Statistical Learning with Applications in R》的简单线性回归案例
可用迅雷下载—— [ 数据源]
上代码(jupiter notebook)
使用前后比较