基于树的分类模型是一种监督机器学习算法,它使用一系列条件语句将训练数据划分为子集。每一次连续的分割都会给模型增加一些复杂性,这些复杂性可以用来进行预测。最终结果模型可以可视化为描述数据集的逻辑测试的路线图。决策树对于中小型数据集很流行,因为它们容易实现,甚至更容易解释。然而,他们也不是没有挑战。在本文中,我们将重点介绍基于树的分类模型的优缺点以及克服它们所取得的进展。

决策树的构造

下面的示例描述了只有两个特性和两个类的样例数据集(左)。决策树算法从根节点中的所有15个数据点开始。该节点被称为不纯节点,因为它混合了多种异构数据。在每个决策节点上,算法根据减少杂质最多的目标特征对数据集进行分割,最终产生具有同质数据的叶节点/终端节点(右)。有一些常用的测量杂质的指标-基尼系数和熵。虽然不同的决策树实现在使用杂质度量进行计算时可能会有所不同,但一般的概念是相同的,并且在实践中结果很少有实质性的变化。分区过程会继续,直到没有进一步的分离,例如,模型希望达到一个状态,即每个叶节点都尽可能快地变成纯的。在进行预测时,新的数据点遍历决策节点序列,以达到确定的结果。

优势

  • 它们是直观的,容易理解的,即使是非分析背景的人。
  • 决策树是一种不要求数据集服从正态分布的非参数方法。
  • 它们能够容忍数据质量问题和异常值,例如,它们需要较少的数据准备,比如在实现之前的缩放和标准化。此外,它对分类变量和连续变量都很有效。
  • 它们可以在数据探索阶段用于快速识别重要的变量。

问题

  • 决策树容易发生过拟合,当函数过于接近训练数据时发生过拟合。当决策树模型在训练数据中学习到颗粒状的细节和噪音时,就会影响到它对新数据做出预测的能力。创建一个过于复杂的模型,会冒着用从未见过的数据做出糟糕预测的风险。
  • 决策树的方差很大。如果数据集很小,结果可能会非常不同,这取决于如何分割训练和测试样本。

改进

在最近的一段时间里,为了进一步提高基于树的模型的潜力,对树类的模型进行了重大的改进和验证。下面的流程记录了这个过程:

早期停止(Pre-Pruning)

通过防止模型学习过于具体和过于复杂的模式,有几种方法可以减少过拟合。

  • 限制节点分割的最小样本
  • 限制树最大深度
  • 分割需要考虑的最大特性数

因为很难提前知道什么时候停止生长。可能需要一些迭代来调整这些超参数。建议在对树进行训练时可视化,从较低的max_depth开始,然后迭代递增。

修剪(Post-Pruning)

修剪是通过删除不利于模型预测能力的叶节点来实现的。这是简化模型和防止过拟合的另一种方法。实际上,一个完全成熟的决策树可能有太多冗余的分支。修剪通常是通过在模型构建之后,在验证或测试数据集上检查模型的性能来完成的。通过删除对性能产生最小负面影响的节点(称为成本复杂性剪枝),它降低了复杂性,并允许模型更好地泛化。

Bagging (Bootstrap Aggregation 采样聚合)

Bagging是一种集成技术,通过考虑在同一数据集的不同子样本上训练的多个决策树模型的结果,来减少预测的方差。当数据的大小受到限制时,这种方法特别有用。根据问题的不同,所有模型的预测使用平均值、中位数或众数值进行组合。

随机森林

随机森林(Random Forest)是一种集成学习方法,使用不同的特征子集构建多个树模型,无论是否采样(即Bootstrap)。它可以有效地处理具有许多变量的高维数据集,因为只使用其中的一个子集来构建单独的树。限制每个树模型的特征数量的思路是为了消除它们之间的相关性,当决策节点一致使用强预测器时就会发生这种情况。高度相关模型的协作并不能有效地减少结果的差异。随机森林算法的特点是通用性强,训练速度快,准确率高。

值得注意的是,这种方法通常用于理解数据集和确定变量的重要性,因为它与解决问题有关——排除有价值的特征会导致错误的增加。

Boosting

Boosting是另一种集成学习,它结合弱学习者来提高模型性能。弱学习者是预测相对较差的简单模型。提升的概念是按顺序训练模型,每次都试图比之前更好地适应。一种被称为自适应增强(AdaBoost)的方法,根据先前的结果修改数据点的权重。对于后续的每个模型构建实例,正确分类的数据点权重更小,错误分类的数据点权重更高。较高的权值可以引导模型学习这些数据点的细节。最后,所有的模型都有助于做出预测。

梯度提升(和XGBoost)

梯度提升方法随着复杂性的增加而增强。梯度提升不是在每次构建模型时调整权重,而是将后续模型与前一个模型的残差进行匹配。这种方法可以帮助树在性能不好的地方逐渐改进。换句话说,它迭代地提高了单个树的精度,从而提高了模型的整体性能。梯度提升受制于许多必须仔细考虑的参数。当数据集中的关系高度复杂和非线性时,它是有效的。

极端梯度提升(Extreme Gradient boost,简称XGBoost)是对标准梯度增强方法进行了一些添加的实现。首先,它使正则化成为可能,这进一步有助于减少过拟合。开发XGBoost的目的是优化计算性能。由于梯度提升训练的模型是按顺序进行的,因此实现起来会很慢。XGBoost的一些显著特性包括并行化、分布式计算、核外计算和缓存优化。

总结

在本文中,我们回顾了一些用于改进基于树的模型的粗线条术语和技术。基于树的模型很受欢迎,因为它具有直观的特性。理解机制将有助于创建基线模型。也就是说,没有免费的午餐——即使有了这些技术,调整模型以完全优化模型性能仍然是一个迭代过程。

作者:Kevin C Lee

deephub翻译组

说,没有免费的午餐——即使有了这些技术,调整模型以完全优化模型性能仍然是一个迭代过程。

作者:Kevin C Lee

deephub翻译组

基于树的机器学习模型的演化相关推荐

  1. 为基于树的机器学习模型构建更好的建模数据集的10个小技巧!

    https://www.toutiao.com/a6680019995100971531/ 为了使模型更准确 - 只需对所有分类特征进行独热编码并将所有缺失值归零都可能是不够的. 假设有一个业务问题可 ...

  2. 基于树结构的机器学习模型

    基于树结构的机器学习模型 在深度学习被广泛应用之前,基于树形结构的机器学习模型,比如说决策树,随机森林,GBDT,Xgboost等等被广泛的应用到分类等常见场景中,下面总结一下常见一个一些树形结构的机 ...

  3. 部署基于嵌入的机器学习模型的通用模式

    2020-01-31 21:00:32 作者:Robbe Sneyders 编译:ronghuaiyang 导读 给大家介绍一下如何在生产中部署基于嵌入的机器学习模型. 由于最近大量的研究,机器学习模 ...

  4. 基于三种机器学习模型的岩爆类型预测及Python实现

    写在前面 由于代码较多,本文仅展示部分关键代码,需要代码文件和数据可以留言 然而,由于当时注释不及时,且时间久远,有些细节笔者也记不清了,代码仅供参考 0 引言 岩爆是深部岩土工程施工过程中常见的一种 ...

  5. 基于Python的机器学习模型对公司人员离职情况分析及预测

    一.背景 Ⅰ 数据来源 Ⅱ 数据背景 Ⅲ 分析目的 二.数据探索性分析 Ⅰ 数据类型 Ⅱ 描述性统计 Ⅲ 数据预处理 a.缺失值处理 b.异常值处理 c.重复值处理 三.数据分析 Ⅰ 可视化分析 a. ...

  6. 使用优化的基于模糊规则的特征选择技术和基于树的集成方法进行山洪敏感性建模--文献阅读

    文章连接 Flash flood susceptibility modeling using an optimized fuzzy rule based feature selection techn ...

  7. 如何将知识引入机器学习模型提升泛化能力?

    摘要:近年来,基于数据驱动的机器学习模型开始提供可替代的方法,并在许多任务中优于纯物理学驱动模型. 本文分享自华为云社区<如何将知识引入机器学习模型提升泛化能力?>,作者:PG13 . 基 ...

  8. 基于树的模型的机器学习

    This is a memo to share what I have learnt in Machine Learning with Tree-Based Models (using Python) ...

  9. 基于树的模型的更好功能

    When you understand how a model works, it becomes much easier to create successful features. It is b ...

最新文章

  1. OpenAI新研究:扩散模型在图像合成质量上击败BigGAN,多样性还更佳
  2. 怎样在wp7中检测“主题背景”
  3. HTML5清爽博客自媒体网站模板
  4. 【选手分享】拿不到周冠军,我就只能写个好点的经验分享上首页了
  5. 高德地图获取坐标距离_【转】根据高德地图得出的坐标算出两点之间的距离
  6. PyCharm 的初始设置
  7. HTML-a标签添加下划线
  8. linux入门生信,优秀学员的学习方法展示
  9. mysql文件夹搬家_Mysql 静态文件搬家 注意事项
  10. 树莓派41/100- Pico控制触摸开关模块TTP223
  11. Android电池矫正方法
  12. 数据中台应用原型下载-深圳市政府数据开放平台低保真原型设计-Axure9
  13. 【Java】RPC与RMI框架
  14. Java设计考试系统
  15. 海康摄像头电子防抖和3D放大冲突
  16. 压力测试中 4 个常见面试题总结
  17. 关于图片下载报链接不安全的问题,SSL证书信任相关
  18. 防止网络攻击的10大网络安全措施
  19. 图像增强-点处理方法总结
  20. iOS系统版本占比查询

热门文章

  1. 最适合家用的洗地机哪个牌子好?家用洗地机品牌排行榜
  2. AutoCAD2018打印eps文件
  3. java 文件移动_java 文件移动
  4. 如何使用ChatGPT做一份五一出游攻略?
  5. through2.js,xtend.js源码
  6. crontab任务不会执行解决方案(No MTA installed, discarding output)
  7. 如何获取主机名和当前登录用户名
  8. Problem K. Road Network - ACPC2015(求树的直径 dp)
  9. Re:从零开始的DS生活 轻松从0基础实现多种队列
  10. 让 ChatGPT 如虎添翼 2.0