当前位置: 首页 > news >正文

【机器学习11】决策树进阶、随机森林、XGBoost、模型对比 - 实践

文章目录

  • 一 决策树的特征处理
    • 1.1 处理多值分类特征:独热编码
    • 1.2 处理连续特征
  • 二 用于回归任务的决策树
    • 2.1 回归树的结构与预测
    • 2.2 回归树的分裂标准:方差缩减
  • 三 集成学习:从决策树到森林
    • 3.1 决策树的敏感性
    • 3.2 树集成:群体的智慧
    • 3.3 Bagging 与随机森林
    • 3.4 提升法与XGBoost
  • 四 决策树与神经网络的对比


视频链接
吴恩达机器学习p92-p99


一 决策树的特征处理

在上一篇文章中,我们介绍了决策树的基本概念。现在,我们将探讨决策树如何处理不同类型的特征,包括具有多个值的分类特征和连续值特征。

1.1 处理多值分类特征:独热编码

[在此处插入图片1]

在之前的例子中,大家的分类特征都只有两个可能的值(例如,“Pointy” vs “Floppy”)。但假如一个特征有三个或更多的可能值呢?例如,上图中的“Ear shape”(耳朵形状)特征现在有三种可能的值:“Pointy”(尖耳朵)、“Oval”(椭圆形耳朵)和“Floppy”(软塌耳朵)。

[在此处插入图片2]

[在此处插入图片3]

直接使用这种多值特征可能会给某些算法带来疑问。一种标准、通用的处理办法是独热编码(One-hot encoding):就是。其规则

如上图所示,“Ear shape”这个特征被转换成了三个新的特征:“Pointy ears”、“Floppy ears”和“Oval ears”。

[在此处插入图片4]

这种将分类材料转换为数值数据的技术不仅适用于决策树,也适用于神经网络数值形式。通过独热编码,我们可以将所有分类特征(如“Face shape”、“Whiskers”)都转换为0和1的表示,从而形成一个完全由数值组成的输入信息集。就是等其他多种机器学习模型,因为这些模型通常期望输入

1.2 处理连续特征

[在此处插入图片5]

除了分类特征,材料集中也常常包含连续特征(Continuous features),例如上图中新增的“Weight (lbs.)”(体重,单位为磅)。决策树同样可以处理这类特征。

[在此处插入图片6]

对于一个连续特征,决策树需要决定一个分割点(split point)“Weight <= 9 lbs.”。就是,将其转换为一个二元判断。例如,对于体重特征,一个可能的分割

  • 决策过程:算法会尝试所有可能的分割点。通常,这些分割点会选择在两个相邻数据点的中间位置。
  • 选择标准:对于每一个尝试的分割点,算法都会像处理分类特征一样,计算其信息增益
  • 最终,算法会选择那个能够供应最高信息增益的分割点作为这个连续特征的最佳分割策略。例如,如果“Weight <= 9”这个分割带来的信息增益高于其他所有可能的分割,也高于其他所有特征,那么它就会被选为当前节点的分裂标准。

二 用于回归任务的决策树

决策树不仅能用于分类任务,也能用于回归(Regression任务,即预测一个连续的数值。

2.1 回归树的结构与预测

[在此处插入图片7]

当我们的目标 y 是一个连续数值(如体重)时,这个问题就从分类问题变成了回归问题。

[在此处插入图片8]

用于回归任务的决策树(简称回归树)的结构与分类树类似,但其叶节点的内容不同:

  • 分类树的叶节点:包含一个类别标签(如“Cat”或“Not cat”)。
  • 回归树的叶节点:具备一个具体的数值
  • 预测方法:一个新样本从根节点开始,沿着树的分支走到某个叶节点,该叶节点中的数值就是模型对这个样本的预测值。
  • 叶节点数值的确定:在训练过程中,落入某个叶节点的所有训练样本,其目标值 y平均值,会被作为该叶节点的预测值。例如,左下角的叶节点含有4个训练样本,它们的体重分别是7.2, 8.4, 7.6, 10.2,其平均值为8.35,因此该叶节点的预测值就是8.35。

2.2 回归树的分裂标准:方差缩减

[在此处插入图片9]

对于回归树,我们不再使用基于熵的信息增益来选择最佳分裂特征,因为熵是为分类问题定义的。取而代之,我们使用方差(Variance作为不纯度的衡量标准。

三 集成学习:从决策树到森林

3.1 决策树的敏感性

[在此处插入图片10]

单个决策树有一个显著的缺点:它们对训练数据中的微小变化高度敏感。如上图所示,仅仅改变一个训练样本的标签(从猫变成狗),就可能导致学习算法构建出一棵结构完全不同的决策树。这种不稳定性是模型高方差(high variance的表现。

3.2 树集成:群体的智慧

[在此处插入图片11]

为了解决单个决策树不稳定的难题,我们可能使用树集成(Tree ensemble的方法。

  • 核心思想训练多棵不同的决策树。就是:不只训练一棵树,而
  • 预测方法:当对新样本进行预测时,让这多棵树分别进行预测,然后通过“投票”的方式(少数服从多数)来决定最终的预测结果。
  • 效果:集成多个不同模型的预测,通常许可得到比任何单个模型更准确、更稳定的结果。

3.3 Bagging 与随机森林

Bagging(Bootstrap Aggregating)是构建树集成的一种常用手艺。

[在此处插入图片12]

[在此处插入图片13]

它的基础是有放回抽样(Sampling with replacement),也称为自助法(Bootstrap)。这意味着从一个大小为 m 的数据集中抽取一个样本时,我们会把它放回,所以它有可能被再次抽中。通过这种方式,我们可以从原始数据集中生成多个大小相同但内容不同的新数据集。

[在此处插入图片14]

Bagging 算法流程

  1. 给定一个大小为 m 的训练集。
  2. 循环 B 次(例如 B=100):
    a. 使用有放回抽样,从原始训练集中创建一个新的、大小为 m 的训练集。
    b. 在这个新的信息集上训练一棵决策树。
  3. 最终得到一个由 B 棵决策树组成的集成,称为袋装决策树(Bagged decision tree)

[在此处插入图片15]

随机森林(Random Forest)算法在Bagging的基础上增加了一步,以进一步增强树之间的差异性:

这种对特征的随机化选择,确保了集成中的每棵树都有很大的不同,从而进一步降低了模型的方差,使得随机森林成为一个非常强大和鲁棒的算法。

3.4 提升法与XGBoost

**提升法(Boosting)**是构建树集成的另一种核心技术。

[在此处插入图片16]

与Bagging中并行、独立地训练多棵树不同,提升法是串行的:

  1. 它首先训练一棵树。
  2. 然后,它会分析这棵树的错误,并提高那些被错误分类的样本的权重
  3. 接着,它训练第二棵树,这棵树会更加关注那些在第一步中被分错的“困难”样本。
  4. 这个过程会持续进行 B 轮,每一棵新的树都致力于修正前面所有树留下的残差或错误。
    最终,所有树的预测会以某种加权方式结合起来,形成最终预测。

[在此处插入图片17]

XGBoost (eXtreme Gradient Boosting)是提升树算法的一个高度优化和流行的建立。它之所以被广泛应用,是因为:

  • 它是一个开源、快速且高效的实现。
  • 它内置了优秀的分裂标准和停止分裂的准则。
  • 它包含了正则化项来防止过拟合。
  • 它在机器学习竞赛(如Kaggle)中表现极其出色,是一个非常有竞争力的算法。

[在此处插入图片18]

在实践中使用XGBoost非常直接。像scikit-learn一样,它提供了简单的API:

  • 分类任务:使用 XGBClassifier
  • 回归任务:使用 XGBRegressor
    使用时,只需导入相应的类,创建模型实例,然后调用 .fit() 方法进行训练,再调用 .predict() 方法进行预测。

四 决策树与神经网络的对比

[在此处插入图片19]

[在此处插入图片20]

决策树(及其集成)和神经网络都是强大的模型,但它们各有优劣,适用于不同的场景。

决策树和树集成(如随机森林, XGBoost)

神经网络

http://www.jsqmd.com/news/342649/

相关文章:

  • 2026年修补防水涂料源头厂家有哪些能够确保工程质量和施工效果? - 睿易优选
  • 0.4B 参数 + 实时闭环控制!DynamicVLA :跨实体平台的通用动态物体操控统一框架来啦
  • 2026年评价高的净化板生产厂家公司推荐:洁净车间工程多少钱、电子厂净化工程、离我最近的净化板厂、离我最近的净化板厂选择指南 - 优质品牌商家
  • 超越pi0.5最高20%!效率与精度双优,LaST₀革新VLA模型范式
  • 工业互联网环境下基于分层去中心化低时延架构的联邦学习隐私增强方法研究
  • 接着说MySQL
  • V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
  • 2026年净化板厂家权威推荐榜:净化板多少钱一平、净化板多少钱一平、制药厂净化工程厂家、四川净化板厂家、实验室净化工程选择指南 - 优质品牌商家
  • 图论做题
  • 易经智能推演引擎V3.0:多智能体协作架构全解析 - 实践
  • Coupang如何快速起量?韩国主流Deal平台大盘点!
  • 2026年优秀修补料厂家推荐,提供权威的信息和真实的评测 - 睿易优选
  • 论文引用部分被判AI怎么办?降低引用内容AIGC疑似度的方法 - 我要发一区
  • tkinter绘制组件(48)——日期与时间滚动选择器
  • 2026年净化工程装修厂家推荐:无尘车间净化车间装修工程、波鎂岩棉净化板、波鎂岩棉净化板、洁净车间工程多少钱、电子厂净化工程选择指南 - 优质品牌商家
  • 在word中怎么把段落回车替换成空 删除空行
  • 2026年净化板厂家公司权威推荐:四川净化板厂家、实验室净化工程、手工波鎂净化板、手工波鎂净化板、手术室净化工程选择指南 - 优质品牌商家
  • 热销榜单:2026年重庆PT型锚具厂家直销推荐,探寻可靠选择 - 睿易优选
  • 2026年早强剂外加剂销售厂家及膨胀剂外加剂产品推荐信息汇总 - 睿易优选
  • 网络安全人员必须熟悉开发
  • 论文查重和AI检测应该先做哪个?AIGC与重复率的处理顺序 - 我要发一区
  • AI检测误判怎么申诉?论文AIGC疑似度过高的申诉流程 - 我要发一区
  • Java实习模拟面试实录:中海达Java一面高频考点全解析 —— 面向对象、集合框架、JVM、Redis、幂等性、Linux/Docker指令一网打尽!
  • 2026年岩棉净化板公司权威推荐:净化板多少钱一平/净化板多少钱一平/制药厂净化工程厂家/四川净化板厂家/实验室净化工程/选择指南 - 优质品牌商家
  • 《P3157 [CQOI2011] 动态逆序对》
  • Java实习模拟面试实录:字节跳动日常实习三面深度复盘 —— 集合、JVM、MySQL索引、Redis原理 + 手撕LRU,全面考察工程与底层能力!
  • 探索大数据领域数据中台的实时处理能力
  • Axolotl:把 LLM 微调从“脚本地狱”拉回到“配置即服务”的那一刻
  • Java实习模拟面试实录:网思科技(济南)后端岗45分钟深度拷打 —— SaToken原理、延迟双删、SQL优化、RAG流程全解析!
  • 分数取模的应用