sklearn与XGBoost库xgboost算法参数总结

本文介绍了XGBoost的核心参数,包括n_estimators、subsample、eta等,阐述了它们在梯度提升树中的作用。重点讨论了如何防止过拟合,如通过gamma和max_depth进行剪枝。还提到了XGBoost中booster和objective参数,以及正则化参数alpha和lambda对模型复杂度的影响。
摘要由CSDN通过智能技术生成

前言

  1. 本文是自学课程 菜菜的机器学习,从课件总结的一下部分内容,讲的细致并且适合初学者,确实感觉不错推荐给大家
    2.本文主要内容是sklearn与XGBoost库使用xgboost的参数讲解,重点关注XGBoost库的使用即可,sklearn知识起到引申的作用

1 sklearn与XGBoost

1.1 xgboost库

在这里插入图片描述
其中最核心的,是DMtarix这个读取数据的类,以及train()这个用于训练的类。与sklearn把所有的参数都写在类中的方式不同,xgboost库中必须先使用字典设定参数集,再使用train来将参数及输入,然后进行训练。会这样设计的原因,是因为XGB所涉及到的参数实在太多,全部写在xgb.train()中太长也容易出错。在这里,我为大家准备了
params可能的取值以及xgboost.train的列表,给大家一个印象。

params {
   eta, gamma, max_depth, min_child_weight, max_delta_step, subsample, colsample_bytree,
colsample_bylevel, colsample_bynode, lambda, alpha, tree_method string, sketch_eps, 
scale_pos_weight, updater,refresh_leaf, process_type, grow_policy, max_leaves,
 max_bin, predictor, num_parallel_tree}

xgboost.train (params, dtrain, num_boost_round=10, evals=(), obj=None, feval=None, 
maximize=False,early_stopping_rounds=None, evals_result=None, verbose_eval=True, 
xgb_model=None, callbacks=None,learning_rates=None)

1.2 sklearn中XGB的 API

我们也可以选择第二种方法,使用xgboost库中的sklearn的API。这是说,我们可以调用如下的类,并用我们sklearn当中惯例的实例化,fit和predict的流程来运行XGB,并且也可以调用属性比如coef_等等。当然,这是我们回归的类,我们也有用于分类,用于排序的类。他们与回归的类非常相似,因此了解一个类即可。

class xgboost.XGBRegressor (max_depth=3, learning_rate=0.1, n_estimators=100, silent=True,
objective='reg:linear', booster='gbtree', n_jobs=1, nthread=None, gamma=0, min_child_weight=1, 
max_delta_step=0,subsample=1, colsample_bytree=1, colsample_bylevel=1, reg_alpha=0,
reg_lambda=1, scale_pos_weight=1,base_score=0.5, random_state=0, seed=None,
missing=None, importance_type='gain', **kwargs)

调用xgboost.train和调用sklearnAPI中的类XGBRegressor,需要输入的参数是不同的,而且看起来相当的不同。但其实,这些参数只是写法不同,功能是相同的。比如说,我们的params字典中的第一个参数eta,其实就是我们XGBRegressor里面的参数learning_rate,他们的含义和实现的功能是一模一样的。只不过在sklearnAPI中,开发团队友好地帮助我们将参数的名称调节成了与sklearn中其他的算法类更相似的样子。所以对我们来说,使用xgboost中设定的建模流程来建模,和使用sklearnAPI中的类来建模,模型效果是比较相似的,但是xgboost库本身的运算速度(尤其是交叉验证)以及调参手段比sklearn要简单

1.3 XGBoost的三大板块

在这里插入图片描述

2 梯度提升树

class xgboost.XGBRegressor (max_depth=3, learning_rate=0.1, n_estimators=100, silent=True,
objective='reg:linear', booster='gbtree', n_jobs=1
  • 8
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值