34 机器学习 调参比赛大杀器XGBoost

为什么要调参

步骤,大家都熟;模型,大家都懂;方法,大家都会

所以,调参很重要!一套不同的参数,最后的结果可能千差万别

 

什么是XGBoost

eXtreme Gradient Boosting,Gradient Boosting算法的一种升级版

 

安装:https://xgboost.readthedocs.io/en/latest/build.html

以mac os为例,找一个地方,例如桌面上

  1. 编译:
    1. git clone --recursive https://github.com/dmlc/xgboost
    2. cd xgboost
    3. cp make/minimum.mk ./config.mk
    4. make -j4
  2. 系统级别安装:
    1. cd python-package
    2. sudo python setup.py install
  3. 删除安装文件

 

XGBoost的参数

  • General Parameters:
    • booster:所使用的模型,gbtree或gblinear
    • silent:1则不打印提示信息,0则打印,默认为0
    • nthread:所使用的线程数量,默认为最大可用数量
  • Booster Parameters(gbtree):
    • eta:学习率,默认初始化为0.3,经多轮迭代后一般衰减到0.01至0.2
    • min_child_weight:每个子节点所需的最小权重和,默认为1
    • max_depth:树的最大深度,默认为6,一般为3至10
    • max_leaf_nodes:叶结点最大数量,默认为2^6
    • gamma:拆分节点时所需的最小损失衰减,默认为0
    • max_delta_step:默认为0
    • subsample:每棵树采样的样本数量比例,默认为1,一般取0.5至1
    • colsample_bytree:每棵树采样的特征数量比例,默认为1,一般取0.5至1
    • colsample_bylevel:默认为1
    • lambda:L2正则化项,默认为1
    • alpha:L1正则化项,默认为1
    • scale_pos_weight:加快收敛速度,默认为1
  • Learning Task Parameters:
    • objective:目标函数,默认为reg:linear,还可取binary:logistic、multi:softmax、multi:softprob
    • eval_metric:误差函数,回归默认为rmse,分类默认为error,其他可取值包括rmse、mae、logloss、merror、mlogloss、auc
    • seed:随机数种子,默认为0

 

来一个XGBoost调参实例

https://github.com/Honlan/fullstack-data-engineer/tree/master/data/Parameter_Tuning_XGBoost_with_Example

 

补充阅读:https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-XGBoost-with-codes-python/

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值