前言
XGBoost(eXtreme Gradient Boosting)算法,又叫极限梯度提升树,作为集成学习的代表算法之一,不但在学习效率和可扩展性方面展露头角,更在学习精度与鲁棒性方面做出独特贡献;是横扫各大数据挖掘比赛的首选大杀器。本文将从基础知识决策树作为切入点,以决策树到集成学习的发展脉络为线索,着重介绍XGBoost模型解决了哪些问题,如何解决这些问题。
1)本文重点:本文主要研究XGBoost算法,重点关注算法解决的问题及思路,其他相关内容均为知识补充,不做详细介绍;
2)本文缺陷:本文重思路梳理,轻数学推导;由于笔者才疏学浅,如有错误或疏漏敬请批评指正。
目录
1. 决策树
2. 集成学习
3. 随机森林(Random Forest)
4. 自适应提升算法(Adaboost)
5. 梯度提升树算法(GBDT)
6. 极限梯度提升树算法(XGBoost)
7. 总结
8. 基础概念
9. 参考文献
一 决策树
决策树是一种树形结构的机器学习算法,它利用一系列的条件判断,也可以认为是if-then规则的组合,来对数据进行分类或回归预测的过程。这些条件判断通过递归地选择最优特征来构建,形成了一棵由根节点、内部节点和叶节点组成的树状结构。
(一)树结构
1.根节点:是决策树的起始节点,代表整个样本数据集;
2.内部节:点则代表对某个属性特征的一次判断,这些节点根据属性的不同取值将数据集分割成子集;
3.叶节点:则代表分类或回归预测的结果,对于分类问题,叶节点通常是样本所属类别的众数;对于回归问题,叶节点通常是样本值的平均值。
(二)基本思想
由决策树的根节点到叶节点的每一条路径构建一条规则,路径上的内部结点对应决策条件,叶节点的类别或数值对应着规则的结论;下图为西瓜好坏判别的一个简单决策树示例,其中全部西瓜对应整个数据集,是树的根节点,通过内部节点先后判断一个西瓜样本的纹理,根蒂和色泽是否符合相应条件,最终将西瓜样本划分的'好瓜'的叶节点或'坏瓜'的叶节点中,完成西瓜的分类:
在上述示例图中,判断一个西瓜是好瓜还是坏瓜,我们首先判断了纹理,再判断根蒂,最后判断色泽;可以看出当决策树内部节点的特征分裂顺序变换之后,我那将得到一颗完全不同的决策树;当一个新样本进入模型,进行预测,模型的判断结果也会产生差异;因此在多种特征分裂顺序的排列组合中,什么样的分裂顺序是好的,什么样的分裂顺序是不好的,就成为决策树学习的一个关键问题。
(三)分裂算法
一般来说,随着划分过程的不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,即节点的'纯度'越来越高;根据这一准则,决策树发展出三种不同的特征选则算法,分别是ID3算法,C4.5算法和CART算法。
1.ID3算法: 通过引入信息熵的概念来度量特征包含的信息量,即'纯度',通常信息熵越大,代表特征所包含的信息量越大,即纯度较低;反之信息熵越小时表示纯度越高;ID3算法使用信息增益作为特征选择的方法,信息增益是整个数据集熵与根据某特征划分节点后的子数据集信息熵之差,即表示通过该特征的分裂,数据集能够提升多少'纯度'; 但ID3算法倾向于选择具有最高信息增益的属性作为决策树的节点,这也导致其更倾向于选择类别更多的属性优选作为分裂点,这可能导致过度拟合;为了弥补ID3的倾向性,C4.5算法对属性分裂方法进行了改进。
2.C4.5算法:不再单纯使用信息增益进行属性选择,而是使用信息增益率;信息增益率是信息增益除以划分属性的固有信息,即划分属性的类别数;其在信息增益的基础上,使用特征的取值数进行了归一化,这在一定程度上解决了ID3对更多类别属性的倾向性,但也会带来新的问题,C4.5会更倾向于选择更少类别的属性;也会在一定程度上导致过拟合。
3.CART算法:C4.5虽然在ID3的基础上进行了改进,但仍然是基于信息熵对属性进行选择;而CART算法使用基尼系数来衡量属性的不纯度,其值越小表示数据越纯,使用Gini系数可以减少大量的对数运算,从而简化计算过程的同时,也减小了对特征取值的偏好,它更关注于数据集的整体不纯度,从而减少了对取值较多或少的偏好,这有助于构建出更平衡、更泛化的决策树模型。同时与ID3算法和C4.5是多叉树,只适用于分类场景;CART算法则是一种二叉树算法,在分裂过程中,每个节点最多生成两个子节点,这不仅简化了决策树的复杂度,也提升了建树的效率;该算法既可以用于分类,又可以用于回归;
4.三种分裂算法对比:
算法 | 分枝策略 | 任务类型 | 特点 | 连续值处理 | 分裂准则 |
---|---|---|---|---|---|
ID3 | 多叉树 | 二分类 | 无剪枝策略,易过拟合 | 无法处理 | 信息增益 |
C4.5 | 多叉树 | 分类 | 计算复杂度高 | 能够处理 | 信息增益率 |
CART | 二叉树 | 分类\回归 | 适用范围更广 | 能够处理 | 基尼系数 |
尽管决策树算法相较于其他传统机器学习算法具有显著优势,例如其高度的可解释性、清晰的分枝规则、处理非线性关系的能力、自动特征选择的功能以及无需数据标准化的便利性,但它同时也面临一些局限性。首先,决策树对异常值较为敏感,这可能导致模型在含有异常值的数据集上表现不佳。其次,当数据集不平衡时,决策树可能会偏向于预测多数类别,从而影响模型的准确性。此外,如果决策树模型设计得过于简单,可能会引发较大的偏差,即模型无法充分拟合训练数据,导致在训练集和测试集上的性能均不理想,出现欠拟合现象。相反,如果模型过于复杂,由于决策树算法通常采用贪婪策略进行特征选择和分裂,容易在训练数据上产生过拟合,特别是在数据集较小或特征较多的情况下,模型可能会捕捉到噪声信息,从而在测试集上的性能下降,导致预测结果的方差增大。为解决上述问题,集成学习提供了完善的方案。
二 集成学习
集成学习最大的特点,就是使用多个模型解决单个问题,根据集成的逻辑不同,可以大致分为以下三类:</