码迷,mamicode.com
首页 > 其他好文 > 详细

xgboost的使用

时间:2019-09-27 01:30:01      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:data   sof   ror   参数说明   als   lin   学习   使用   round   

 

1.首先导入包

import xgboost as xgb

 

 

2.使用以下的函数实现交叉验证训练xgboost。

bst_cvl = xgb.cv(xgb_params, dtrain, num_boost_round=50,
           nfold=3, seed=0, feval=xg_eval_mae, maximize=False, early_stopping_rounds=10)

 

 

3.cv参数说明:函数cv的第一个参数是对xgboost训练器的参数的设置,具体见以下

xgb_params = {
    seed: 0,
    eta: 0.1,
    colsample_bytree: 0.5,
    silent: 1,
    subsample: 0.5,
    objective: reg:linear,
    max_depth: 5,
    min_child_weight: 3
}

参数说明如下:

Xgboost参数

  • ‘booster‘:‘gbtree‘,
  • ‘objective‘: ‘multi:softmax‘, 多分类的问题
  • ‘num_class‘:10, 类别数,与 multisoftmax 并用
  • ‘gamma‘:损失下降多少才进行分裂,gammar越大越不容易过拟合。
  • ‘max_depth‘:树的最大深度。增加这个值会使模型更加复杂,也容易出现过拟合,深度3-10是合理的。
  • ‘lambda‘:2, 控制模型复杂度的权重值的L2正则化项参数,参数越大,模型越不容易过拟合。
  • ‘subsample‘:0.7, 随机采样训练样本
  • ‘colsample_bytree‘:0.7, 生成树时进行的列采样
  • ‘min_child_weight‘:正则化参数. 如果树分区中的实例权重小于定义的总和,则停止树构建过程。
  • ‘silent‘:0 ,设置成1则没有运行信息输出,最好是设置为0.
  • ‘eta‘: 0.007, 如同学习率
  • ‘seed‘:1000,
  • ‘nthread‘:7, cpu 线程数

 

 

4.cv参数说明:dtrain是使用下面的函数DMatrix得到的训练集

dtrain = xgb.DMatrix(train_x, train_y)

 

 

 

5.cv参数说明:feval参数是自定义的误差函数

def xg_eval_mae(yhat, dtrain):
    y = dtrain.get_label()
    return mae, mean_absolute_error(np.exp(y), np.exp(yhat))

 

 

6.cv参数说明:nfold是交叉验证的折数, early_stopping_round是多少次模型没有提升后就结束, num_boost_round是加入的决策树的数目。

 

7. bst_cv是cv返回的结果,是一个DataFram的类型,其列为以下列组成

技术图片

 

xgboost的使用

标签:data   sof   ror   参数说明   als   lin   学习   使用   round   

原文地址:https://www.cnblogs.com/loubin/p/11595348.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!