熵–所有数据科学初学者的关键概念
熵是机器学习的关键方面之一。对于任何想在
机器学习中取得成功的人来说,这都是必须知道的,但这却困扰着我们许多人。
本文的重点是通过探索概率论的基本概念,公式的工作方式,其意义以及其对决策树算法的重要性,来了解熵的作用。
但是,熵是什么?
熵的起源
熵一词最早由德国物理学家和数学家鲁道夫·克劳修斯(Rudolf Clausius)提出,并在热力学领域中使用。
1948年,数学家兼电气工程师Claude E. Shannon发表了一篇关于“通信的数学理论”的论文,其中他解决了信息,选择和不确定性的度量问题。香农还发明了信息论领域,因此也被称为“信息论之父”。
“信息理论是一种研究信息编码以及信息的量化,存储和交流的数学方法。”
在他的论文中,他着手以数学方式测量电话线信号中“丢失信息”的统计性质。这项工作的目的是如何最好地编码发送者想要传输的信息。为此,开发了信息熵作为一种估计消息中信息内容的方法,这是衡量消息减少的不确定性的一种方法。
因此,我们知道信息论中的主要度量是熵。熵一词的英文含义是:它是一种混乱,混乱和混乱的状态。让我们深入了解这个概念。
但是首先,这是什么信息? 我指的是什么“信息”?
简而言之,我们知道信息是从某物或某人中学到的一些事实。从理论上讲,我们可以理解,信息是可以作为变量存储,传输或传递的东西,它们可以进一步采用不同的值。换句话说,变量不过是存储单位。因此,我们通过查看变量的值从变量中获取信息,就像通过读取消息或信件的内容从消息或信件中获取细节(或信息)一样。
熵衡量变量中存在的“信息量”。现在,不仅基于变量中存在的不同值的数量来估算此数量,而且还通过变量的该值所具有的惊奇量来估算该数量。请允许我解释一下我所说的惊奇程度。
假设您已经收到一条消息,该消息是先前文本的重复,那么此消息完全没有提供信息。但是,如果该消息透露了美国大选的结果,那么这无疑是非常有用的。这告诉我们,消息或文本中的信息量与消息中可提供的惊喜量成正比。
因此,人们可以直观地理解,信息的这种存储和传输与该变量中的信息量有关。现在,这也可以扩展到某个事件的结果。例如,事件是扔一个公平的硬币,它将有两个同样可能的结果。这将提供较少的信息,换句话说,由于公平硬币的结果将是正面或反面,因此具有较少的惊喜。因此,公平硬币的翻转具有较低的熵。
在信息论中,随机变量的熵是变量可能结果中固有的“信息”,“惊奇”或“不确定性”的平均水平。
即,事件越确定或更具确定性,它将包含的信息越少。简而言之,信息是不确定性或熵的增加。
所有这些理论都是好的,但是对我们有什么帮助呢?我们如何将其应用到我们的日常机器学习模型中?
为了理解这一点,首先让我们快速了解一下决策树是如何工作的。
决策树演练
决策树是一种有监督的学习技术,是一种分层的if-else语句,它仅是规则的集合,或者也称为基于条件比较运算符的拆分条件。
决策树算法是一种非常广泛使用的模型,具有广泛的应用,可以用于回归和分类问题。以下是将汽车类型分类为轿车或运动卡车的二进制分类示例。该算法找到响应变量与预测变量之间的关系,并以树形结构的形式表示该关系。
该流程图由“根”节点,“分支”节点和“叶子”节点组成。根节点是原始数据,分支节点是决策规则,而叶节点是决策的输出,这些节点无法进一步划分为分支。
熵-决策树
资源
因此,它是基于某些条件或作为所述规则的问题的所有可能结果的图形描述。通过创建自上而下的树来训练模型,然后使用该训练后的决策树来测试新数据或看不见的数据,以将这些情况分类为一个类别。
重要的是要注意,通过设计,决策树算法会尝试构建因变量中最小叶节点是同质的树。目标变量的同质性意味着结果中只有一种类型的记录,即在叶节点中,该记录传达的是轿车还是运动型卡车。有时,挑战在于树是受限的,这意味着它被迫停止生长或要素被用尽以将分支分解成较小的叶节点,在这种情况下,目标变量不是同质的,结果仍然是汽车类型的混合。
决策树算法如何选择特征,以及该特征中的阈值或接合点是什么来构建树?为了回答这个问题,我们需要深入研究任何机器学习算法的常青概念,是的……您猜对了!确实是损失函数!
决策树中的成本函数
决策树算法通过优化成本函数从数据集中创建了树。在分类问题的情况下,成本或损失函数是属于根节点的节点的目标列中杂质的度量。
杂质不过是我们在上面讨论的信息中可获得的惊喜或不确定性。在给定节点上,杂质是Y变量中不同类别混合物的量度,或者在我们的情况下是不同汽车类型的混合物的量度。因此,杂质也称为信息中或每个节点上存在的异质性。
目标是在叶子(或最终结果)节点上尽可能减少这种杂质。这意味着目标函数是减少目标列的杂质(即不确定性或意外性),或者换句话说,是在给定数据的每个分割处增加Y变量的均匀性。
要了解目标函数,我们需要了解目标列的杂质或异质性是如何计算的。有两个指标可以估算这种杂质:熵和基尼系数。除此之外,为了回答先前关于决策树如何选择属性的问题,有多种拆分方法,包括卡方,基尼系数和熵,但是这里的重点是熵,我们将进一步探讨它帮助创建树。
现在,距我谈论很多理论知识已有一段时间了。让我们做一件事:我为您提供咖啡,我们进行了一项实验。我有一盒装满相等数量的两种口味的咖啡袋:焦糖拿铁和普通的卡布奇诺咖啡。您可以选择其中一种口味,但要闭眼。有趣的部分是:如果您获得了焦糖拿铁咖啡袋,那么您可以自由地停止阅读本文;??或者,如果您获得了卡布奇诺咖啡袋,那么您将必须阅读该文章直到最后??
您将不得不决定的困境和可能导致结果均等的决策,仅是最大不确定性状态。如果我只有焦糖拿铁咖啡袋或卡布奇诺咖啡袋,那么我们知道结果会是什么,因此不确定性(或令人惊讶)将为零。
获得焦糖拿铁咖啡袋或卡布奇诺咖啡袋的每个结果的概率为:
P(咖啡袋==焦糖拿铁)= 0.50
P(咖啡袋==卡布奇诺咖啡)= 1 – 0.50 = 0.50
当我们仅有焦糖拿铁或卡布奇诺小袋的一个结果时,在没有不确定性的情况下,发生该事件的概率为:
P(咖啡袋==焦糖拿铁)= 1
P(咖啡袋==卡布奇诺咖啡)= 1 – 1 = 0
异质性与不确定性之间存在联系;事件越多样化,不确定性就越大。另一方面,事件的异质性越小,即事件越均匀,不确定性就越小。不确定性表示为基尼或熵。
熵实际上是如何工作的?
克劳德·E·香农(Claude E.Shannon)通过以下方程式以数学形式表达了概率与异质性或杂质之间的这种关系:
H(X)= –Σ(pi * log 2 p i)
熵
不确定性或杂质表示为类别(pi)的概率以2为底的对数。索引(i)表示可能的类别数。在这里,i = 2,因为我们的问题是二进制分类。
该方程式由一条对称曲线图形表示,如下所示。在x轴上是事件的概率,在y轴上表示异质性或由H(X)表示的杂质。我们将详细探讨曲线的工作原理,然后说明咖啡风味实验的熵计算。
熵
资料来源:Slideplayer
log 2 p i 具有一个非常独特的属性,即当只有两个结果时,例如事件的概率= p i 为1或0.50,则在这种情况下,log 2 p i 采用以下值(忽略负数):
p我 = 1p我= 0.50
对数2 p i对数2 (1)= 0对数2 (0.50)= 1
现在, 以以下方式描述概率和log 2 p i的上述值:
熵
困难在于,当概率p i变为0时,对数2 p 0的值移向无穷大,曲线的形状变为:
熵或杂质测度只能取0到1的值,因为概率范围是0到1,因此,我们不希望出现上述情况。因此,为了使曲线和log 2 p i 的值恢复为零,我们将log 2 p i 与概率(即p i 本身)相乘。
因此,表达式变为(pi * log 2 p i),log 2 p i 返回负值,并且为了消除这种负效应,我们将结果乘以负号,最后方程变为:
H(X)= –Σ(pi * log 2 p i)
现在,该表达式可用于显示不确定性如何根据事件的可能性而变化。
曲线最终变为并保持以下值:
从0到1的熵范围是针对二进制分类问题的。对于多重分类问题,上述关系成立,但是规模可能会改变。
Python中的熵计算
我们将估计三种不同情况的熵。事件Y正在获得焦糖拿铁咖啡袋。两种不同类别的异质性或杂质公式如下:
H(X)= – [(p i * log 2 p i)+ (q i * log 2 q i )]
哪里,
p i = Y = 1的概率,即事件成功的概率
q i = Y = 0的概率,即事件失败的概率
情况1:
咖啡香精袋数 可能性
焦糖拿铁70.7
卡布奇诺咖啡30.3
总101个
H(X)= – [(0.70 * log 2 (0.70))+(0.30 * log 2 (0.30))] = 0.88129089
当给定装满咖啡袋的盒子时,当有7袋焦糖拿铁风味和3袋卡布奇诺风味的包装时,要求拉出其中一个,此值0.88129089是不确定性的度量。
情况2:
咖啡香精袋数 可能性
焦糖拿铁50.5
卡布奇诺咖啡50.5
总101个
H(X)= – [(0.50 * log 2 (0.50))+(0.50 * log 2 (0.50))] = 1
情况3:
咖啡香精袋数 可能性
焦糖拿铁101个
卡布奇诺咖啡00
总101个
H(X)= – [(1.0 * log 2 (1.0)+(0 * log 2 (0)]?= 0
在方案2和3中,可以看到熵分别为1和0。在方案3中,当我们只有一种口味的咖啡袋,焦糖拿铁咖啡,并且已经移除了所有袋装的卡布奇诺咖啡口味时,不确定性或惊奇性也将被完全消除,并且上述熵为零。然后我们可以得出结论,信息是100%存在的。
因此,通过这种方式,我们可以测量从包装盒中选择任意一个咖啡袋时的不确定性。现在,决策树算法如何使用这种杂质测量来构建树?
决策树中熵的使用
如上所述,在决策树中,代价函数是最小化叶节点中的异质性。因此,目的是找出属性,并在阈值内找到阈值,以便在将数据分为两部分时,我们获得最大可能的同质性,或者换句话说,导致两个树级别内的熵最大下降。
在根层次上,通过Shannon为熵提出的公式估计目标列的熵。在每个分支,为目标列计算的熵是加权熵。加权熵意味着取每个属性的权重。权重是每个类别的概率。熵的减少越多,获得的信息就越多。
信息增益是数据中观察到的模式,是熵的减少。也可以视为父节点的熵减去子节点的熵。它被计算为1 –熵。以上三种情况的熵和信息增益如下:
熵信息增益
情况10.881290890.11870911
情况二1个0
情况301个
节点级别的熵和信息增益的估计:
我们有下面的树,在根节点上共有四个值,该树被分为第一级,在一个分支中(例如,分支1)具有一个值,在另一个分支中(分支2)具有三个值。根节点的熵为1。
资料来源:GeeksforGeeks
现在,为了计算子节点1的熵,权重取为分支1的and和分支2的and,并使用Shannon熵公式计算。如上所述,子节点2的熵为零,因为该子节点中只有一个值,这意味着没有不确定性,因此不存在异质性。
H(X)= – [(1/3 * log 2(1/3))+(2/3 * log 2(2/3))] = 0.9184
以上树的信息增益是熵的加权平均值的减少。
信息增益= 1 –(?* 0.9184)–(?* 0)= 0.3112
题库