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

本文介绍了XGBoost的基本概念、安装方法、工作原理,特别是二阶梯度和正则项的改进。通过实例展示了XGBoost在iris分类和Boston房价回归问题中的应用,并探讨了参数调优的策略。文章还比较了XGBoost与其他梯度提升算法,如GBDT和LightGBM的差异,并解答了XGBoost防止过拟合的方法及其树的剪枝策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,则有

即,

这就得到了提升树算法。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值