10 集成学习 - XGBoost的学习策略

简介:

09 集成学习 - XGBoost公式推导

当树的结构确定的时候,我们可以得到最优的叶子点分数以及对应的最小损失值,问题在于如何确定树结构?
1、暴力穷举所有可能的结构,选择损失值最小的;(很难求解)
2、贪心法,每次尝试选择一个分裂点进行分裂,计算操作前后的增益,选择增益最大的方式进行分。

决策树相关算法计算指标:
1、ID3算法:信息增益
2、C4.5算法:信息增益率
3、CART算法:Gini系数

XGBoost目标函数

从目标函数中,我们希望损失函数越小越好,那就是 G2/(H+λ) 越大越好;从而,
对于一个叶子节点的分裂的分裂,分裂前后的信息增益定义为:

Gain值越大,分裂后减少的损失值越大。所以对于一个叶子节点分割时,计算
所有候选的(feature,value)对应的gain,选择gain最大特征进行分割。


树节点分裂方法

__精确算法:__遍历所有特征的所有可能的分割点,计算gain值,选择最大的gain值对应的(feature,value)进行分割。

近似算法: 对于每个特征,只考虑分位点,减少计算复杂度。

近似算法案例:三分位数

XGBoost不是简单的按照样本个数进行分位的,而是按照二阶导数值作为权重
来进行划分的:


XGBoost的其它特性

1、列采样(column subsampling):借鉴随机森林的做法,支持列抽样,不仅可以降低过拟合,还可以减少计算量。
2、支持对缺失值的自动处理。对于特征的值有缺失的样本,XGBoost可以自动学习分裂方向;
3、XGBoost支持并行。XGBoost的并行是特征粒度上的,在计算特征的Gain的时候,会并行执行,但是在树的构建过程中,还是串行构建的。
4、XGBoost算法中加入正则项,用于控制模型的复杂度,最终模型更加不容易过拟合。
5、XGBoost基学习器支持CART、线性回归、逻辑回归。
6、XGBoost支持自定义损失函数(要求损失函数二阶可导)。

相关文章
|
1月前
|
机器学习/深度学习 Python
CatBoost高级教程:深度集成与迁移学习
CatBoost高级教程:深度集成与迁移学习【2月更文挑战第17天】
27 1
|
1月前
|
机器学习/深度学习 算法 Python
CatBoost中级教程:集成学习与模型融合
CatBoost中级教程:集成学习与模型融合【2月更文挑战第13天】
40 3
|
2月前
|
机器学习/深度学习 算法 Python
LightGBM高级教程:深度集成与迁移学习
LightGBM高级教程:深度集成与迁移学习【2月更文挑战第6天】
95 4
|
3月前
|
存储 Go
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。
93 0
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
|
3月前
|
机器学习/深度学习 算法
集成学习发展史
集成学习发展史
93 0
|
3月前
|
机器学习/深度学习 算法 Python
集成学习(上):机器学习基础task1-熟悉机器学习的三大主要任务
集成学习(上):机器学习基础task1-熟悉机器学习的三大主要任务
34 0
|
3月前
|
机器学习/深度学习 算法
机器学习 - [集成学习]Bagging算法的编程实现
机器学习 - [集成学习]Bagging算法的编程实现
32 1
|
26天前
|
机器学习/深度学习 算法
大模型开发:描述集成学习以及它如何工作。
集成学习通过结合多个模型预测提升性能,减少偏差和方差。分为Bagging和Boosting:Bagging使用数据子集并行训练模型,如随机森林;Boosting则顺序训练,聚焦前一轮错误,如AdaBoost。Stacking利用模型输出训练新模型。多样性是关键,广泛应用于分类、回归等任务,能有效提高泛化能力和防止过拟合。
14 0
|
2天前
|
机器学习/深度学习 算法 前端开发
Scikit-learn进阶:探索集成学习算法
【4月更文挑战第17天】本文介绍了Scikit-learn中的集成学习算法,包括Bagging(如RandomForest)、Boosting(AdaBoost、GradientBoosting)和Stacking。通过结合多个学习器,集成学习能提高模型性能,减少偏差和方差。文中展示了如何使用Scikit-learn实现这些算法,并提供示例代码,帮助读者理解和应用集成学习提升模型预测准确性。
|
3天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
15 0