熵:决策树如何制定决策

在机器学习课程开始之前准备了文章的翻译




您是目前正在学习的数据科学专家。自从用Python或R编写第一行代码以来,您已经走了很长一段路。您知道Scikit-Learn就像手背一样。现在,您更多地坐在Kaggle而不是Facebook上。创建出色的随机森林和其他决策树集成模型并不陌生。但是,您知道,如果不全面发展,您将不会有任何成就。您想更深入地了解流行的机器学习模型的复杂性和概念。好吧,我也是。

今天,我将讨论熵的概念-统计学中最重要的主题之一,随后我们将讨论信息增益(信息增益)的概念,并找出为什么这些基本概念构成了如何根据所获得的数据构建决策树的基础。

好。现在让我们超越吧。

什么是熵?简单来说,熵不过是一种无序的量度。 (它也可以视为一种纯度的度量标准,很快您就会知道为什么了。但是我更喜欢混乱,因为它听起来更凉爽。)

数学公式如下:


熵。有时用H表示。

这里的p i是我们数据元素/ i类的频率概率。为简单起见,假设我们只有两个类:正数和负数。然后,我将采用“ +”或“-”的值。如果我们在数据集中总共有100个点,其中30个点属于正类,而70个点属于负类,则p +为3/10,而p-将为7/10。这里的一切都很简单。

如果从此示例中计算类的熵,则可以使用上面的公式得出:



熵约为0.88。该值被认为是很高的,也就是说,我们的熵或无序程度很高(即纯度较低)。熵的测量范围是0到1。根据数据集中的类数,熵的值可能大于1,但这意味着无序程度非常高。为了便于说明,在今天的文章中,熵将介于0到1之间。

请看下面的图表。



在X轴上,每个圆中正类的点数得到反映,在Y轴上,相应的熵得到反映。您可以立即注意到图形的倒U形。原则上,如果圆中没有正元素,或者其中只有正元素,则熵在极值处最小。也就是说,当一个圆中有相同元素时,无序将为0。熵将在图的中间最高,其中正负元素将在圆内均匀分布。在这里,由于没有主要元素,因此将实现最大的熵或无序。

是否有任何理由使用以2为底的对数来测量熵,或者为什么熵在0和1之间而不是在不同范围内测量?不,没有理由。这只是一个指标。了解发生这种情况的原因并不重要。重要的是要知道我们上面得到的是如何计算的以及它是如何工作的。熵是混淆或不确定性的一种度量,机器学习模型和数据科学专家的目标通常是减少这种不确定性。

现在我们知道如何测量混乱。接下来,我们需要一个值来衡量目标变量/类别的其他信息(属性/自变量)中这种疾病的减轻程度。这是信息增益或信息增益起作用的地方。从数学的角度来看,可以写成如下:



我们简单地从熵Y中减去X的熵Y,以便计算关于Y的不确定性的减少,前提是存在关于X的有关X的信息。不确定性减小得越强,就可以从Y获得关于X的更多信息。

让我们看一下列联表的简单示例更接近决策树如何使用熵和信息增益来决定在什么基础上打破数据学习过程中的节点的问题。

示例:共轭表



在这里,我们的目标变量将是Liability,它只能采用两个值:“ Normal”“ High”。我们也只有一个标志,称为信用评级,它将价值分为三类:``优秀''`` 好''``差''。总共进行了14次观察。其中7个属于普通责任类别,另外7个属于高责任类别。这本身就是一个分裂。

如果我们看第一行中值的总和,我们会发现我们有4个基于信用评级的优秀值观察值。而且,我什至可以说我的目标变量被“优秀”信用评级所破坏。在属性值为“优秀”的观察结果中信用评级中有3个属于普通责任类别,1个属于高责任类别。同样,我可以从列联表中为其他信用等级值计算出类似的结果

例如,我使用上面的列联表独立计算目标变量的熵,然后考虑到“ 信用评级”属性中的其他信息来计算其熵。因此,我可以计算出“ 信用评级”将为责任”目标变量提供多少其他信息

因此,让我们开始吧。



我们的目标变量的熵为1,这意味着由于元素在“正常”“高”之间的均匀分布而造成的最大混乱。下一步是考虑到“ 信用评级”中的其他信息,计算“ 责任”目标变量的熵。为此,我们计算每个信用评级责任并使用每个值的平均加权观察率将它们相加。当我们谈论决策树时,为什么我们使用加权平均值会变得更加清楚。 我们使用“ 信用评级”属性获得了目标变量的熵



。现在,我们可以信用评级中计算信息责任收益以了解此功能的信息量。 了解信用评级有助于我们减少责任目标变量的不确定性。



。这不是一个应该起作用的好兆头吗?给我们有关目标变量的信息吗?好吧,由于这个原因,决策树使用了熵和信息增益。他们确定用什么标准将节点分成分支,以便在随后的每个分区中接近目标变量,并了解何时需要完成树的构造! (当然,除了超参数(例如最大深度)之外)。在下面的示例中,使用决策树让我们看看这是如何工作的。

示例:决策树

让我们看一个构建决策树的示例,其目的是预测个人的信用是否会被注销。人口将是30份。 16个属于注销,其他14 个属于注销“不注销”。我们将有两个符号,即“ Balance”,可以采用两个值:“ <50K”或“> 50K”,以及“ Residence”,其采用三个值:“ OWN”“ RENT”“ OTHER”。我将演示决策树算法将如何决定首先打破哪个属性,以及哪个属性将提供更多信息,也就是说,它将通过使用熵和信息增益的概念来最好地消除目标变量的不确定性。

症状1:平衡



这里的圆圈属于“注销”类别,而星星对应于“非注销”类别。按属性对父根分区平衡将给我们2个继承节点。在左节点会有13个观察,其中12/13观测(概率0.92)从“注销”从类观测,只有1/13(概率0.08)“非注销”。在右节点会有17个观测的观测30,其中13/17(概率0.76)从“注销”和4/17(概率0.24)从类观测的“非注销”

让我们计算根的熵,看看通过使用基于Balance的分区,树可以减少不确定性多少



根据余额进行拆分将获得0.37的信息增益。让我们为居留标志数一下并比较结果。

症状2:住宅



基于分割树公寓会给你3个继承人节点。左后代节点将接收8个观测值,其中来自注销类的观测值的7/8(概率为0.88),而非注销类的观测值只有1/8(概率0.12)。平均后继节点将接收10个观测值,其中来自注销类的观测值的4/10(概率0.4)和来自非注销类的观测值的6/10(概率0.6)。右继承人将收到12个观察值,其中来自注销类的观察值的5/12(概率0.42)和来自非注销类的观察值的7/12(概率0.58)。我们已经知道父节点的熵,因此我们只需在分区后计算熵即可了解Residence属性的信息增益



从“ 平衡”属性获得的信息收益几乎从“ 住宅”获得的信息的三倍!如果再次查看这些图,将会发现,根据Balance进行的分区将比根据Residence进行划分的节点更干净。但是,Residence中最左边的节点也很干净,但是加权平均值才在这里起作用。尽管节点是干净的,但它的观察次数最少,并且根据Residence,它的结果在常规重新计算和总熵的计算中丢失了。这很重要,因为我们正在寻找属性的一般信息内容,并且不希望最终结果因属性的稀有值而失真。Residence相比

Balance属性本身提供了有关目标变量的更多信息。因此,我们的目标变量的熵降低了。决策树算法使用此结果根据Balance进行第一次拆分以后决定在什么基础上打破以下节点。在现实世界中,当有两个以上的特征时,将首先根据信息最多的特征进行细分,然后再进行后续分解,因为每个附加特征都会重新计算信息增益,因为它与从每个特征单独获得的信息增益并不相同。熵和信息增益应在一个或几个分区发生后计算,这将影响最终结果。决策树随着深度的增加将重复此过程,直到达到某个深度或某种分裂导致超出某个阈值的更高的信息增益为止,该阈值也可以指定为超参数!

就这样!现在您知道了什么熵,信息增益以及如何计算它们。现在,您了解了决策树本身(或作为整体的一部分)如何做出关于按属性划分的最佳顺序的决策,并决定了在学习可用数据时何时停止。好吧,如果您必须向某人解释决策树是如何工作的,我希望您能够适当地完成这项任务。

希望您从本文中学到了一些对自己有用的东西。如果我错过了某件事或表达了自己的错误,请给我写信。我将非常感谢您!谢谢。



了解有关该课程的更多信息。



All Articles