分享

熵:决策树是如何做出决策的

 东西二王 2019-02-16

在这篇文章中,我将介绍熵的概念,然后介绍信息增益的概念,随后解释为什么这两个基本概念与决策树的关系。

什么是熵?在大多数人看来,熵只不过是无序的衡量标准。(您可以将其视为纯度的衡量标准)

熵的数学公式如下 -

熵:决策树是如何做出决策的

熵 有时也使用字母'H'表示

其中'Pi'只是我们数据中元素/类'i'的频率概率。为简单起见,我们假设我们只有两个类,一个是正类,一个是负类。因此'i'在这里可以是+或( - )。因此,如果我们的机器学习数据集中总共有100个数据点,其中30个属于正类,70个属于负类,那么'P +'将是3/10,'P-'将是7/10。

如果我是使用上面的公式在这个例子中计算我的类的熵。这就是我会得到的。

熵:决策树是如何做出决策的

这里的熵约为0.88。这被认为是高熵,高无序(意味着纯度低)。熵是在0和1之间的值。(根据机器学习数据集中类的数量,熵可以大于1,但它意味着非常高的无序性。为了简单起见,本文中的示例熵将在0和1之间)。

请看下面的图表。

熵:决策树是如何做出决策的

x轴测量每个气泡中属于正类的数据点的比例,y轴测量它们各自的熵。您可以看到图形的倒“U”形状。当气泡不包含正实例或仅包含正实例时,熵在极端情况下最低。也就是说,当气泡是纯的时,无序度就是0。当气泡在正负实例之间均匀分配时,熵在中间最高,极度无序。

为什么要用log以2为底的对数来测量熵或者为什么要在0到1之间测量熵而不是在其他范围内?它只是一个指标。重要是知道怎样解读它以及它告诉我们的内容。熵是对无序或不确定性的度量,机器学习模型和数据科学家的目标通常是减少不确定性。

现在我们知道如何衡量障碍。接下来,我们需要一个度量来衡量我们的目标变量/类中这种无序的减少程度。这就是信息增益的用武之地。在数学上它可以写成:

熵:决策树是如何做出决策的

Y上的X信息增益

我们简单地从Y的熵中减去给定X的Y的熵,以计算关于Y的不确定性的减少,给出关于Y的附加信息X,这称为信息增益。这种不确定性的减少越大,从X获得的关于Y的信息就越多。

让我用一个简单的例子来说明,然后,我将介绍如何使用熵和信息增益来决定哪些特征在对数据集进行训练时将节点拆分为哪些特征。

示例:Contingency Table

熵:决策树是如何做出决策的

Contingency Table

在这里,我们的目标变量是Liability,它可以采用两个值“Normal”和“High”,我们只有一个名为Credit Rating的特征,它可以取值“Excellent”,“Good”和“Poor”。总共有14个观察结果。其中7个属于Normal Liability类,7个属于High Liability类。在第一行中,我们可以看到有4个观察值对于特征credit rating具有Excellent值。此外,我还可以看到我的目标变量如何拆分为“Excellent”credit rating。对于其credit rating值“Excellent”的观察,有3个属于Normal Liability类,只有1个属于High Liability。我同样可以从contingency table中求出credit rating的其他值。

对于这个例子,我们可以在给定关于特征(credit rating)的额外信息的情况下计算目标变量的熵。这将允许我们计算“credit rating”为我的目标变量“Liability”提供了多少额外信息。

熵:决策树是如何做出决策的

我们的目标变量的熵是1,由于类标签“正常”和“高”之间的均匀分割而最大程度地失调。我们的下一步是计算目标变量Liability的熵,给出有关信用评分的其他信息。为此,我们将计算每个信用评分值的责任熵,并使用每个值中最终观察比例的加权平均值来计算。当我们在决策树的背景下讨论时,为什么我们使用加权平均值会变得更加清晰。

我们的目标变量的熵是1,由于类标签“Normal”和“High”之间的平均分割,导致无序的最大值为1。下一步是在给定credit score的附加信息的情况下,计算目标变量Liability的熵。为此,我们将计算Credit Score的每个值的Liability的熵,并使用最终在每个值中观察到的比例的加权平均值将其相加。当我们在决策树中讨论这个问题时,我们会更清楚为什么要使用加权平均。

熵:决策树是如何做出决策的

给定特征Credit Rating,我们得到了目标变量的熵。现在我们可以通过Credit Rating计算Liability的信息增益,看看这个特征的信息量有多大。

熵:决策树是如何做出决策的

让我们看一下使用决策树的另一个例子。

示例:决策树

考虑例子,我们正在构建一个决策树来预测给予某人的贷款是否会导致write-off。我们的整个样本包括30个实例。16属于write-off类,其他14属于non-write-off类。我们有两个特征,即“Balance”,可以采用两个值 (“<50K”或“> 50K”)和“Residence”("OWN”,“RENT”或“OTHER”)。我将向您展示决策树算法如何决定首先拆分哪个属性以及哪个特征提供更多信息,或者使用熵和信息增益的概念减少我们的目标变量中的更多不确定性。

特征1:Balance

熵:决策树是如何做出决策的

点是类wright-off的数据点,星是non-write-off。在属性平衡上拆分父节点可以为我们提供2个子节点。左侧节点获得总观测值中的13个,其中来自wright-off类的12/13(0.92概率)观测值,来自non-write-off类的仅1/13(0.08概率)观测值。右侧节点从non-write-offs类中获得13/17(0.76概率)观察值,从write-offs类中获得4/17(0.24概率)。

让我们计算父节点的熵,看看树可以通过拆分Balance来减少多少不确定性。

熵:决策树是如何做出决策的

拆分特征,“Balance”导致我们的目标变量的信息增益为0.37。让我们对特征“Residence”做同样的事情,看看它如何比较。

特征2:Residence

熵:决策树是如何做出决策的

在Residence上拆分树为我们提供了3个子节点。左子节点获得总观察值中的8个,其中来自write-off类的7/8(0.88概率)观测值和来自non-write-off类的1/8(0.12概率)观测值。中间子节点获得总观察值中的10个,其​​中write-off类的4/10(0.4概率)观察和来自non-write-off类的6/10(0.6概率)观察。右子节点获得总观察值中的12个,其中来自write-off类的5/12(0.42概率)观察值和来自non-write-off类的7/12(0.58)个观测值。我们已经知道父节点的熵。我们只需要在拆分后计算熵来计算“Residence”的信息增益

熵:决策树是如何做出决策的

Balance本身的特性提供了比Residence更多的关于目标变量的信息。它减少了我们的目标变量中的更多无序度。决策树算法将使用此结果使用Balance对我们的数据进行第一次拆分。从这里开始,决策树算法将在每次拆分时使用此过程来决定接下来要拆分的特征。在真实场景中,具有两个以上的特征,第一个拆分是在信息量最大的特征上进行的,然后在每个拆分时,需要重新计算每个附加特征的信息增益,因为它与来自每个特征的信息增益不一样。熵和信息增益必须在一次或多次拆分之后计算。当决策树越来越深时,它会重复这个过程,直到它达到预先定义的深度,或者没有额外的拆分可以导致更高的信息增益超过某个阈值(该阈值通常也可以指定为超参数)!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多