关于决策树你需要了解的一切
作者:Marco Peixeiro
编译:ronghuaiyang
导读
决策树,随机森林,bagging,boosting的介绍以及背后的原理
基于树的方法可以用于回归或分类。它们涉及到将预测空间分割成几个简单的区域。分割规则集可以总结在树中,因此名为 决策树方法。
创新互联公司是一家集网站建设,江干企业网站建设,江干品牌网站建设,网站定制,江干网站建设报价,网络营销,网络优化,江干网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
单个决策树的性能通常不如线性回归、logistic回归、LDA等。但是它可以损失一些可解释性,大幅度提高预测精度。
在这篇文章中,我们将介绍关于决策树、bagging、随机森林和boosting算法的所有知识。这将是一个漫长的阅读,但它将是值得的!
决策树基础
回归树
在讨论理论之前,我们需要一些基本的术语。
树是倒着画的。最后的区域称为叶子,树中发生分割的点是一个分割节点。最后,连接节点的段是“分支”。
回归树示意图
创建一个回归树:
- 将预测空间划分为J个不同且不重叠的区域
- 对于一个区域内的每一个样本值,将该区域内响应值的平均值作为预测值
每个区域都通过最小化RSS(Root-Sum-Squares)进行分割。为此,它采用 自顶向下的贪婪方法,也称为 递归二元分割。
为什么自顶向下?
因为所有的样本在第一次分裂之前都在同一个区域。
为什么是贪婪的方法?
因为最好的分割发生在特定的步骤中,而不是向前看并进行分割,从而在未来的步骤中得到更好的预测。
数学上,我们将这对半平面定义为:
我们要求 j和 s最小化:
然而,这可能导致过拟合。修剪树将产生一个更小的子树,我们可以使用交叉验证进行验证。
未修剪的树的示意图
分类树
分类树与回归树非常相似。但是,我们不能使用响应的平均值,因此我们现在预测一个区域中最常见的类。当然,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有三个调优参数:
- 树的数量( B):与bagging和随机森林不同,如果 B太大,boost可能会过适合。使用交叉验证来选择正确数量的树。
- 收缩参数( alpha):控制boost学习速率的小正数。它通常设置为0.01或0.001。
- 每个树的分割数( 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/
网页题目:关于决策树你需要了解的一切
URL标题:http://scyanting.com/article/gjpedi.html