python 分类变量xgboost_XGBoost的介绍、应用、调参、知识点

本文详细介绍了XGBoost的概念、安装、原理及应用,包括梯度提升树、基尼指数和XGBoost的二阶梯度、正则项。还探讨了XGBoost与其他库如GBDT、LightGBM的比较,并提供了参数调优的步骤和示例,是深入理解XGBoost的实用指南。

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

XGBoost

4b73f57ef69354e5c3443821fd6ec1ed.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指数

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

9defe022dfbbe565b19da0af6e7590d6.png

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

a6b4378beab8e329cfcfc9107a1aadcf.png

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

梯度提升树

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

以损失函数MSE为例,

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

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

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

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

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

为r,则有

即,

这就得到了提升树算法。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值