sklearn中的xgboost_XGBoost的介绍、应用、调参、知识点

XGBoost

7600e679fefee2bec5594ff53d0282b2.png
XGBoost是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。

安装

python库文件安装:pip install xgboost

高阶安装可以参考:

这里​xgboost.apachecn.org

简介

XGBoost,Extreme Gradient Boosting。其基于梯度提升决策树 gradient boosted tree(GBDT/GBRT/GBM)。主要应用于监督学习中,是数据比赛中常用的大杀器。

CART,分类与回归树 Classification and Regression Tree,从名字就可以看出既可以处理分类也可以处理回归问题。CART能够通过对变量进行划分来不断分裂生成一个二叉树,首先对一维数据排序,然后对排序的特征进行切分,最终的切分点由评估指标确定,分类指标为基尼指数,回归指标是最小平方和,找到切分点后生成左右子树。

基尼指数 Gini指数

基尼值用来描述数据集的纯度,当这个值越小的时候说明整个数据集的纯度越高。直观的说,就是随机从数据集中抽两个样本,它们的标记不一致的概率。

60c59acb214b6bfd3cdcdceb6d7dea3b.png

我们就可以计算基尼指数:

711e7261993f971b650071a6d7955d23.png

在整个属性集合中,会选择使得划分后基尼指数最小的那个属性作为最优的分割属性。

梯度提升树

Boosting的思想即是“三个臭皮匠赛过一个诸葛亮”,将多个弱分类器转化为强分类器。这需要怎么做呢?最简单的方法就是将多个分类器的结果进行加权。再结合到决策树就得到了提升数Boosting Tree。

以损失函数MSE为例,

,对于过个不同参数的弱分类器,无法使用传统的梯度下降直接优化,故有

对于第一个弱分类器,我们的目标是

对于第二个弱分类器,我们的目标是

对于第t个弱分类器,我们的目标是

那么,对于第t+1个弱分类器,我们的目标是

为r,则有

即,

这就得到了提升树算法。

虽然这样能解决优化问题,但是对于其他一些损失函数,这种方法并不是很友好,有些情况下很难再去进行残差拟合了,所以就有了梯度提升树。重新回到我们的目标,最小化

,似乎我们只要
小就可以了。那么就可以重新定义损失函数为:

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值