机器学习基础三:决策树、随机森林与集成学习
机器学习基础三:决策树、随机森林与集成学习
14.1 本章导学:从单模型到集成范式
如果说线性模型是机器学习的基础入门,那么集成学习就是传统机器学习的巅峰。在深度学习普及之前,集成学习几乎包揽了所有表格数据竞赛的冠军方案;直到今天,在金融风控、推荐排序、业务预测等结构化数据场景中,集成树模型依然是工业界的首选方案,效果稳定、调参友好、可解释性优于深度模型。 本章内容打破 “只讲算法步骤” 的单一模式,沿着单模型原理 - 集成范式理论 - 经典算法详解 - 代码实战 - 工程调参 - 行业落地 - 大模型对比的多元脉络展开。你不仅能学会决策树、随机森林、提升树的核心原理,更能理解集成学习的底层逻辑,掌握工业界调参落地的实战经验,明白不同场景下的模型选型逻辑。
14.2 决策树:可解释性最强的机器学习模型
14.2.1 决策树的核心思想
决策树模拟人类做决策的过程,通过一系列层层递进的判断,最终得到结论。它的结构就像一棵倒置的树:最顶端是根节点,包含全部样本;每个内部节点对应一个特征判断,根据判断结果把样本分到不同分支;最末端的叶子节点对应最终的预测结果。 分类任务输出叶子节点中占比最高的类别,回归任务输出叶子节点中样本的均值。 决策树最大的优势是天然可解释。模型训练完成后,可以直接画出完整的决策路径,每一步判断都清晰可见,这在金融、医疗等高监管要求的场景中至关重要。相比之下,深度学习和大模型都是黑盒,很难解释具体决策的依据。
14.2.2 节点分裂准则
决策树生长的核心问题是:每个节点选择哪个特征、用什么阈值来分裂,才能让分裂后的节点 “更纯”,也就是类别更统一。衡量纯度的指标不同,衍生出不同的分裂准则。 第一种是信息增益,对应 ID3 算法。它基于信息熵,衡量分裂后不确定性降低了多少。信息增益越大,说明这个特征分裂效果越好。但信息增益有偏向多值特征的缺陷,取值多的特征天然更容易得到高信息增益。 第二种是信息增益比,对应 C4.5 算法。它在信息增益的基础上除以特征自身的熵,修正了对多值特征的偏好,分裂更合理。 第三种是基尼系数,对应 CART 算法。基尼系数衡量随机抽取两个样本类别不一致的概率,越小代表纯度越高。基尼系数的计算不需要对数运算,速度比熵快很多,是工业界最常用的分裂准则。CART 树既可以做分类也可以做回归,是绝大多数集成树模型的基础树。
14.2.3 树的生长与停止条件
决策树的生长过程就是递归分裂的过程:从根节点开始,遍历所有特征的所有分裂点,找到最优分裂;分裂成两个子节点后,对每个子节点重复操作,直到满足停止条件。 常见的停止条件包括:节点样本数小于阈值;节点纯度达到阈值;树的深度达到上限;分裂后增益小于阈值。 如果不设停止条件,决策树会一直生长到每个叶子节点都只有一个样本,训练集误差为零,但泛化能力极差,严重过拟合。
14.2.4 剪枝策略:抑制过拟合
完全生长的决策树很容易过拟合,剪枝是提升泛化能力的核心手段,分为预剪枝和后剪枝两类。 预剪枝是在生长过程中提前停止,通过限制树深、节点样本数、最小增益等参数,不让树长得太复杂。它实现简单、训练速度快,是工业界最常用的剪枝方式。 后剪枝是先让树完全生长,再从下往上剪掉一些子树,替换为叶子节点。后剪枝效果通常更好,但计算成本更高,需要验证集辅助判断。 实际项目中,预剪枝是性价比最高的方案,通过调整树深、叶子节点样本数等参数,就能有效控制过拟合。
14.2.5 决策树的优缺点分析
决策树的优势非常突出:可解释性强;对数据要求低,不需要归一化,能处理缺失值;既可以做分类也可以做回归;能自动捕捉非线性关系和特征交互;对异常值鲁棒性较好。 它的缺点也很明显:单棵决策树泛化能力弱,很容易过拟合;不稳定,数据微小变化可能导致树结构大幅改变;对类别不均衡数据敏感;难以拟合线性关系,简单线性任务效果不如线性模型。 单棵决策树很少直接用于最终预测,更多是作为集成模型的基学习器,通过集成来弥补缺点、放大优势。
14.3 集成学习三大核心范式
集成学习的核心思想是 “三个臭皮匠,顶个诸葛亮”:把多个弱模型组合起来,得到一个效果远超单个模型的强模型。单个模型可能不准,但多个模型取长补短,综合起来就又准又稳。 从偏差 - 方差分解的视角,模型误差可以分解为偏差、方差和噪声。偏差是模型本身的拟合能力不足,方差是模型在不同数据集上的波动大。不同的集成范式,分别针对性地降低方差或者偏差。
14.3.1 Bagging:并行集成,降低方差
Bagging 的核心逻辑是:并行训练多个相互独立的基模型,最后投票或取平均得到最终结果。 为了让基模型有差异,它采用自助采样法:从原始数据集中有放回地随机采样,得到多个不同的训练集,每个训练集训练一个基模型。因为采样有差异,每个模型学到的侧重点不同,集成之后就能抵消各自的波动,大幅降低方差,提升稳定性。 Bagging 的特点是:基模型可以并行训练,速度快;主要降低方差,对高方差、低偏差的模型效果最好,比如决策树。随机森林就是 Bagging 范式的最典型代表。
14.3.2 Boosting:串行集成,降低偏差
Boosting 的逻辑完全相反,它串行训练模型,每一个新模型都专注于纠正前一个模型的错误。 具体来说,先训练第一个基模型,得到预测结果;把预测错误的样本权重提高,让下一个模型重点关注难分的样本;不断迭代,最后把所有模型加权组合起来。 Boosting 主要降低偏差,能够把多个弱模型提升为强模型。它的代表算法是 AdaBoost、GBDT、XGBoost、LightGBM。因为是串行训练,所以训练速度比 Bagging 慢,但拟合能力更强,在表格数据上效果通常优于随机森林。
14.3.3 Stacking:多层堆叠,融合多模型
Stacking 是更高级的集成范式,分为多层:第一层用多个不同的基模型训练,输出预测结果;第二层把第一层的预测结果作为新特征,训练一个元模型,得到最终输出。 Stacking 可以融合不同类型的模型,比如把线性模型、决策树、SVM 融合在一起,取长补短,效果通常比单一种类的集成更好。但它实现更复杂,调参难度大,容易过拟合,多用于竞赛场景,工业界大规模落地相对少一些。
14.4 随机森林:Bagging 的标杆模型
14.4.1 随机森林的双重随机性
随机森林是以决策树为基学习器的 Bagging 集成,它在样本随机的基础上,又增加了特征随机,形成双重随机性。 普通 Bagging 只随机采样样本,而随机森林在每个节点分裂时,还会随机选出一部分特征,只在这部分特征中找最优分裂。 双重随机性带来了两个好处:一是基模型之间的差异更大,集成后降方差的效果更好,泛化能力更强;二是特征随机降低了每棵树的训练计算量,整体训练速度更快。
14.4.2 袋外估计(OOB)
因为是有放回采样,每个训练集约有三分之一的样本不会被抽到,这些样本叫做袋外样本。随机森林可以直接用袋外样本做验证,评估模型效果,不需要额外划分验证集。 这是随机森林非常实用的一个特性,在数据量小的时候尤其有价值,相当于自带了验证机制。
14.4.3 特征重要性计算
随机森林可以输出每个特征的重要性,衡量特征对预测的贡献大小。计算逻辑很简单:统计每个特征在所有树的分裂中带来的总增益,增益越大重要性越高。 特征重要性是非常实用的业务工具,可以帮助我们理解哪些因素是核心影响因子,也可以用于特征筛选,去掉不重要的特征,简化模型。
14.4.4 随机森林调参指南
随机森林的参数分为两类:树的参数和集成的参数。 树相关参数和单棵决策树一致,包括树深、叶子节点最小样本数、分裂最小增益等,主要控制单棵树的复杂度,防止过拟合。 集成相关参数包括树的数量、最大特征数。树的数量越多,模型越稳定,但到一定数量后提升就很小了,通常设置为 100 到 1000 之间。最大特征数控制特征随机的程度,是随机森林最重要的超参数之一。 随机森林调参相对简单,对参数不敏感,默认参数往往就能得到不错的效果,是工业界快速出基线的首选方案。
14.5 提升树系列:Boosting 的工业落地主力
14.5.1 GBDT:梯度提升决策树
GBDT 是 Boosting 范式的经典实现,核心思想是用梯度来拟合残差。每一轮新的决策树,拟合的是损失函数对当前预测的负梯度,也就是残差的近似。不断迭代,让损失持续下降。 GBDT 的拟合能力很强,在表格数据上效果远超单棵决策树和随机森林。但它也有缺点:串行训练速度慢;对异常值比较敏感;容易过拟合。
14.5.2 XGBoost:工程优化的经典
XGBoost 是 GBDT 的工程优化版,在算法和工程上都做了大量改进。算法层面,加入了正则化项,支持二阶泰勒展开,精度更高;工程层面,支持并行分裂、缺失值自动处理、缓存优化、分布式训练,速度和稳定性都大幅提升。 XGBoost 曾经是数据竞赛的 “大杀器”,几乎所有表格类竞赛的冠军方案都有它的身影,工业界也广泛落地。
14.5.3 LightGBM:高效轻量方案
LightGBM 是微软推出的提升树实现,针对大数据场景做了深度优化。它采用直方图算法,把连续特征分桶,大幅降低计算量;采用叶子生长策略,比层生长更高效;支持单边梯度采样,减少样本量;支持类别特征直接处理,不需要独热编码。 LightGBM 在保持精度的同时,训练速度比 XGBoost 快数倍,内存占用更低,是当前工业界大规模数据场景的首选提升树模型。
14.5.4 三类提升树的对比
从精度上看,三者差距不大,调参得当都能达到很高水平;从速度上看,LightGBM > XGBoost > GBDT;从易用性看,LightGBM 参数更少,默认效果好,上手最快。 新手入门推荐从 LightGBM 开始,效率最高;对精度要求极致、算力充足的场景,可以尝试 XGBoost。
14.6 代码实战:决策树与集成模型落地
14.6.1 决策树分类与回归实现
使用 Scikit-learn 可以快速实现决策树分类和回归,调整分裂准则、树深等参数即可。训练完成后可以输出特征重要性,也可以导出树结构可视化,直观理解决策逻辑。
14.6.2 随机森林与特征重要性分析
随机森林的调用和单棵树几乎一致,只需要设置树的数量。训练完成后提取特征重要性,排序后绘制柱状图,可以非常直观地看到各个特征的影响程度,是业务分析的有力工具。
14.6.3 LightGBM 快速上手
LightGBM 有专门的 Python 库,接口和 sklearn 兼容。它支持直接传入 DataFrame 训练,自动处理类别特征,训练速度极快。工业界落地的标准流程是:先用 LightGBM 快速跑出基准效果,再做精细化调优。
14.7 集成学习的工程经验与适用场景
14.7.1 表格数据的 “王者” 方案
在结构化表格数据场景下,集成树模型是当之无愧的首选。相比深度学习,它有几个不可替代的优势:对数据量要求低,小样本下效果稳定;对数据预处理要求低,不需要归一化;调参简单,默认效果就很好;可解释性强,能输出特征重要性;训练速度快,成本低。 只有当数据量极大、特征非常多时,深度学习的优势才会体现出来。绝大多数业务场景的表格数据,集成树模型都是性价比最高的方案。
14.7.2 集成模型的调参优先级
很多人调参漫无目的地乱试,效率很低。正确的调参优先级是:先调影响最大的核心参数,再调细节参数。 对于提升树,优先级最高的是学习率和迭代次数,二者共同决定收敛程度;其次是树深、叶子节点数,控制模型复杂度;然后是采样率、特征采样率,增加随机性防过拟合;最后是正则化参数、直方图桶数等细节参数。 调参方法推荐使用网格搜索、随机搜索,或者贝叶斯优化,配合交叉验证,保证结果可靠。
14.7.3 工业界典型落地场景
集成树模型在各行各业都有广泛落地:金融领域的信用评分、风控反欺诈,几乎都是树模型的天下,因为效果稳定、可解释、符合监管要求;互联网领域的推荐排序、广告点击率预估,LightGBM 是基线方案;运营领域的用户流失预测、销量预测、故障预警,树模型都是首选。 可以说,只要是结构化数据的预测任务,集成树都是第一优先级的选型方案。
14.8 集成模型与大模型的互补关系
大模型时代,很多人觉得传统机器学习已经过时了,实际上二者是互补关系,而非替代关系。 第一,场景互补。非结构化的文本、图像、语音任务,大模型有绝对优势;结构化表格数据、小样本、高解释性要求的场景,集成树模型依然是最优解。 第二,能力互补。大模型擅长理解、生成、推理,树模型擅长精准数值预测、可解释分析。很多业务场景是二者结合:大模型做文本特征提取,把提取的结构化特征输入树模型做最终预测,效果优于单一方案。 第三,成本互补。大模型训练和推理成本高,树模型成本极低。简单任务用树模型,复杂任务用大模型,分层落地才能实现收益最大化。 成熟的 AI 工程师,不会只懂大模型,而是能根据场景选择最合适的技术方案,用最低的成本解决问题。
14.9 本章小结
本章系统讲解了决策树与集成学习的完整体系,从单模型到集成范式,从理论到工程落地,覆盖多个维度。核心知识点回顾:
- 决策树通过递归分裂节点实现预测,可解释性强,单棵树容易过拟合;
- 集成学习分为 Bagging、Boosting、Stacking 三大范式,分别侧重降方差、降偏差、多模型融合;
- 随机森林是 Bagging 标杆,双重随机性带来强泛化能力,自带袋外估计和特征重要性;
- GBDT、XGBoost、LightGBM 是 Boosting 系列代表,拟合能力强,是表格数据的工业标准;
- 集成树模型和大模型场景互补,是结构化数据场景的首选方案。
课后实践任务:在公开分类数据集上,分别训练决策树、随机森林、LightGBM,对比三者的准确率、训练速度;输出 LightGBM 的特征重要性并排序;调整学习率和树深,观察模型效果的变化。
更多推荐
所有评论(0)