关于决策树你需要了解的一切

发布时间:2020-08-11 04:00:44 作者:dicksonjyl560101
来源:ITPUB博客 阅读:185
作者:Marco Peixeiro
编译:ronghuaiyang

导读

决策树,随机森林,bagging,boosting的介绍以及背后的原理
关于决策树你需要了解的一切

基于树的方法可以用于回归或分类。它们涉及到将预测空间分割成几个简单的区域。分割规则集可以总结在树中,因此名为 决策树方法。

单个决策树的性能通常不如线性回归、logistic回归、LDA等。但是它可以损失一些可解释性,大幅度提高预测精度。

在这篇文章中,我们将介绍关于决策树、bagging、随机森林和boosting算法的所有知识。这将是一个漫长的阅读,但它将是值得的!

决策树基础

回归树

在讨论理论之前,我们需要一些基本的术语。

树是倒着画的。最后的区域称为叶子,树中发生分割的点是一个分割节点。最后,连接节点的段是“分支”。

关于决策树你需要了解的一切

回归树示意图

创建一个回归树:

  1. 将预测空间划分为J个不同且不重叠的区域
  2. 对于一个区域内的每一个样本值,将该区域内响应值的平均值作为预测值

每个区域都通过最小化RSS(Root-Sum-Squares)进行分割。为此,它采用 自顶向下的贪婪方法,也称为 递归二元分割

为什么自顶向下?

因为所有的样本在第一次分裂之前都在同一个区域。

为什么是贪婪的方法?

因为最好的分割发生在特定的步骤中,而不是向前看并进行分割,从而在未来的步骤中得到更好的预测。

数学上,我们将这对半平面定义为:

关于决策树你需要了解的一切

我们要求 js最小化:

关于决策树你需要了解的一切

然而,这可能导致过拟合。修剪树将产生一个更小的子树,我们可以使用交叉验证进行验证。

关于决策树你需要了解的一切

未修剪的树的示意图

分类树

分类树与回归树非常相似。但是,我们不能使用响应的平均值,因此我们现在预测一个区域中最常见的类。当然,RSS不能用作标准。相反,每次分割都是为了最小化 分类错误率

分类错误率就是在区域中不属于最常见类的训练样本的比例。

关于决策树你需要了解的一切

分类错误率公式

不幸的是,这对树的生长来说不够敏感。在实践中,还使用了另外两种方法。

基尼指数

关于决策树你需要了解的一切

基尼指数

这是对所有类的总方差的度量。如你所见,如果比例接近0或1,则基尼指数会很小,因此它是衡量节点纯度的一个很好的指标。

类似的原理也适用于另一种称为交叉熵的方法:

关于决策树你需要了解的一切

交叉熵

现在我们已经了解了基本决策树的工作原理,让我们看看如何改进它的性能!

Bagging, 随机森林和Boosting

Bagging

我们之前已经看到bootstrap可以计算任意数量的标准差。对于决策树,方差很大。因此,通过bootstrap聚合或 bagging,可以减少方差,提高决策树的性能。

Bagging包括从数据集中反复取样。这会生成 B个不同的引导训练集。然后,我们对所有的bootstrap训练集进行训练,得到每个集合的预测,并对预测进行平均。

数学上的平均预测为:

关于决策树你需要了解的一切

将其应用到决策树中,意味着我们可以构造大量的具有高方差和低偏差的树。然后,我们可以对他们的预测进行平均,以减少方差,以提高决策树的性能。

随机森林

随机森林相比Bagging树提供了一种改进,方法是对树进行“装饰”。

就像Bagging一样,建立了多个决策树。然而,在每次拆分时,从所有 p个预测中随机选择 m个随机样本。通常分割只允许使用 m个预测中的一个

关于决策树你需要了解的一切

换句话说,在每次拆分时,算法都不允许考虑大多数可用的预测器!

为什么?

假设数据集中有一个非常强的预测器,以及其他中等强的预测器。然后,在bagging树的集合中,它们都将在顶部分割中使用这个强大的预测器。因此,所有的bagging树都是非常相似的,平均它们的预测不会减少方差,因为预测是高度相关的。

随机森林通过强制每个分割只考虑有效地“装饰”树的预测子集来克服这个问题。

当然,如果 m等于 p,这就像bagging。通常, p的平方根给出的结果最好,如下所示。

关于决策树你需要了解的一切

分类错误是树的数量的函数。每行表示每个分割中可用的预测的数量。

Boost

boost的工作方式与bagging类似,但树是按顺序生长的:每棵树使用以前生长的树的信息。

这意味着算法学习速度很慢。每个树都拟合模型的残差,而不是目标变量。因此,每棵树都很小,在它表现不佳的地方,它会慢慢地提高预测能力。

Boost有三个调优参数:

  1. 树的数量( B):与bagging和随机森林不同,如果 B太大,boost可能会过适合。使用交叉验证来选择正确数量的树。
  2. 收缩参数( alpha):控制boost学习速率的小正数。它通常设置为0.01或0.001。
  3. 每个树的分割数( d):它控制增强的集成的复杂性。通常,单个分割( d = 1)效果很好。它也被称为 交互深度
关于决策树你需要了解的一切

分类错误是树的数量的函数。每一行表示不同的交互深度。

正如你在上面所看到的,交互深度为1似乎提供了最好的结果。

现在你知道了决策树、随机森林、提升和bagging的一切。决策树既可以用于回归,也可以用于分类,当结合使用boost、bagging时,它们的表现非常好。

在以后的文章中,我将展示如何使用Python在真实环境中实现决策树!

英文原文:

https://towardsdatascience.com/everything-you-need-to-know-about-decision-trees-8fcd68ecaa71

https://www.toutiao.com/a6727985346639823363/

推荐阅读:
  1. Python入门需要了解什么
  2. javaweb需要要了解的知识点

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

一切 了解 关于

上一篇:如何提高码农产量--mvc+jquery框架形成之旅(总体介绍)

下一篇:传统商业智能与现代商业智能的核心区别是什么?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》