决策树是监督机器学习算法家族的一员,被认为是解决所有数据科学问题的万能药。数据科学家经常说一些俏皮话:"每当问题的陈述让你陷入困境,你想不出任何算法来解决它(不管情况如何),就使用决策树!"。
通常情况下,无论是在行业中还是在kaggle比赛中,都可以看到决策树或者说至少是从它演变而来的算法(Bagging,Boosting ensemble)。
决策树是一种多用途的机器学习方法,能够执行回归和分类任务。几乎所有的现实世界问题本质上都是非线性的,决策树可以帮助您摆脱非线性的困境。这种算法简洁明了、易于理解,并且可以直观地进行解释——这是每个企业首先需要的东西。
人们可以从模型中获得什么?
决策树是上下颠倒的,意思是它的根在顶部,叶在底部。决策树主要相信分而治之的规则。
基本术语
让我们来看看决策树使用的基本术语:
1.根结点:它代表整个种群或样本,并进一步分成两个或多个的同类集合。
2.分裂:将一个节点分成两个或多个子节点的过程。
3.决策节点:当一个子节点分裂成更多的子节点时,它被称为决策节点。
4.叶/终端节点:不进一步分割的节点称为叶节点或终端节点。
5.修剪:当我们删除决策节点的子节点时,这个过程被称为修剪。
6.分支/子树:整个树的一个分支称为分支或子树。
7.父节点和子节点:被划分为子节点的节点被称为子节点的父节点,其中子节点是父节点的子节点。
分类
有两种类型的决策树:
A.分类决策树
B.回归决策树
分类决策树帮助您对数据进行分类,因此它可以处理分类数据,例如贷款状态(已批准/未批准)、垃圾邮件/而非垃圾邮件等。
回归决策树旨在帮助您预测结果,例如某人的收入、房屋的销售价格等。
假设有两个特征X和Y,在右面板中您可以看到有几个数据点分散。绿色和灰色叶子是因变量中的两类。决策树所要做的是将整个数据集在若干次迭代分割成几个部分。如图所示,在X = 0.5处有分裂1,在Y = 0.5处有分裂2,在X = 0.25处有分裂3。
分割是为了使每个分割中的某个类别的数量最大化,这意味着决策树试图在每个节点上实现均匀分布。从右侧面板您可以看到,绿色叶子类和灰色叶子类在每个隔间的末端都形成了均匀结构。
背后的数学算法
决策树用于分割节点的方法有很多。最常见的是基尼指数、熵、卡方系数等。
1.基尼指数
根据它,如果我们随机选择一个总体中的两个项目,那么它们一定是相同的类别,如果种体是纯种的,则概率为1。
它是一种杂质的衡量标准。因此,基尼指数的值越低,同质性越高。
数学表示为
其中P是该节点中正样本的比例。
基尼指数为'0'表示该节点是纯粹的,这意味着不需要进行进一步分割。
涉及的步骤 :
使用公式计算子节点的Gini。
使用该分割的每个节点的加权基尼分数计算分割的基尼
2.卡方系数
有助于发现子节点和父节点之间差异的统计显著性。
我们用目标变量的观测频率和预期频率之间标准化差异的平方和来衡量它。
数学表示为
它可以衡量纯度,因此,卡方值越高,子节点与父节点差异的统计显著性越高。
涉及的步骤:
通过计算成功和失败的偏差来计算单个节点的卡方
使用所有分割的每个节点的成功和失败的卡方的和来计算分割的卡方
3.熵
•它是正在处理的信息中的随机性的度量。
•熵越高,从这些信息中得出任何结论就越难。
•数学表示为
这里p和q分别是该节点成功和失败的概率。
Log以2为底。
涉及的步骤:
计算父节点的熵
计算split的每个单独节点的熵并计算split中可用的所有子节点的加权平均值。
4.减小方差
上面提到的所有方法都与分类决策树有关。在目标变量连续的回归决策树的情况下,遵循方差减少法。
它使用标准的方差公式来选择最佳分割。选择较低方差的分组作为划分种群的标准。
数学表示为
其中,X - >实际值、X - >平均值、N - >观测值的数量
涉及的步骤:
计算每个节点的方差。
计算每个分割的方差作为每个节点方差的加权平均值。
让我们举一个例子:
问题陈述
我们有一个50人的样本,其中有三个变量,性别(M / F)、就业状况(学生/工作)和年龄(岁)
其中有50人正计划观看电影。
现在,我们想创建一个模型来预测谁会看电影?在这个问题中,我们需要根据三者输入变量将样本来预测谁将观看电影。
为了简单起见,年龄特征被转化为> 28和<28。
- 基尼指数
观看电影的观众:26
不看电影的观众:24
基于性别的分割
观看敦刻尔克的男性的概率:0.429
观看敦刻尔克的女性的概率:0.636
基尼(女):0.463
基尼(男):0.490
性别的加权基尼:0.4779
基于就业的分割
观看的学生概率:0.444
观看的工作人员概率:0.537
基尼(学生):0.494
基尼(工作):0.497
加权基尼(就业):0.4967
基于年龄的分割
年龄小于28岁的人的概率:0.607
年龄超过28岁的人的概率:0.409
基尼(小于28岁的人):0.477
基尼(28岁以上的人):0.483
加权基尼(年龄):0.4799
由于加权基尼(性别)<加权基尼(年龄)<加权基尼(就业),节点分割将采用性别
- 卡方系数
性别节点
就业节点
年龄节点
由于卡方性别<卡方年龄<卡方权,节点分割将采用性别
3.熵
性别节点
就业节点
年龄节点
由于熵性别<熵年龄<熵权,节点分割将采用性别
可视化
如前所述,决策树是可解释的并且可以被可视化。Graphviz库在开发python时来帮助数据科学家。
作者试图用IRIS数据集来显示下面显示的决策树和图表,这是通过代码实现的,您甚至不必在您的机器上下载Graphviz。
有什么收获?
建模决策树时最大的危险是它们倾向于过度拟合。如果在决策树上没有限制,那么它将为您提供100%的训练集准确性,因为在哪怕是在最糟糕的情况下,它也会为每个观察结果创建1个终端节点。
因此,在建模决策树时防止过拟合是关键,它可以通过两种方式完成:
A. 设置对决策树大小的限制(超参数调整)
B. 修剪树
原文发布时间为:2018-06-04
本文来自云栖社区合作伙伴“AI全球动态”,了解相关信息可以关注“AI全球动态””。