答案 0 :(得分:33)
IG(Y|X) = H(Y) - H(Y|X) >= 0
,因为H(Y) >= H(Y|X)
最坏的情况是X和Y是独立的,因此H(Y|X)=H(Y)
考虑它的另一种方法是,通过观察随机变量X取一些值,我们要么得不到或得到一些关于Y的信息(你不会丢失任何)。
修改强>
让我在决策树的背景下澄清信息增益(实际上,当我来自机器学习背景时,我首先考虑过这一点)。
假设给出一组实例和标签(离散类)的分类问题。
选择要在树的每个节点处拆分的属性的想法是选择将类属性拆分为两个最纯的可能实例组(即最低熵)的特征。
这相当于选择自
以来信息增益最高的特征InfoGain = entropyBeforeSplit - entropyAfterSplit
其中拆分后的熵是每个分支的熵的总和,加权该分支下的实例数。
现在不存在可能分割的类值,它们会产生比分割前更差的纯度(更高的熵)的情况。
举一个二进制分类问题的简单例子。在某个节点,我们有5个正面实例和4个负面实例(总共9个)。因此熵(分裂前)是:
H([4,5]) = -4/9*lg(4/9) -5/9*lg(5/9) = 0.99107606
现在让我们考虑一些分裂的情况。最好的情况是当前属性完美地分割实例(即一个分支都是正数,另一个分支都是负数):
[4+,5-]
/ \ H([4,0],[0,5]) = 4/9*( -4/4*lg(4/4) ) + 5/9*( -5/5*lg(5/5) )
/ \ = 0 // zero entropy, perfect split
[4+,0-] [0+,5-]
然后
IG = H([4,5]) - H([4,0],[0,5]) = H([4,5]) // highest possible in this case
想象一下,第二个属性是最坏的情况,其中一个创建的分支没有得到任何实例,而是所有实例都归结为另一个(如果例如属性在实例之间是常量,则无用) :
[4+,5-]
/ \ H([4,5],[0,0]) = 9/9 * H([4,5]) + 0
/ \ = H([4,5]) // the entropy as before split
[4+,5-] [0+,0-]
和
IG = H([4,5]) - H([4,5],[0,0]) = 0 // lowest possible in this case
现在在这两种情况之间的某个地方,您会看到许多案例,如:
[4+,5-]
/ \ H([3,2],[1,3]) = 5/9 * ( -3/5*lg(3/5) -2/5*lg(2/5) )
/ \ + 4/9 * ( -1/4*lg(1/1) -3/4*lg(3/4) )
[3+,2-] [1+,3-]
和
IG = H([4,5]) - H([3,2],[1,3]) = [...] = 0.31331323
所以无论你如何分割这9个实例,你总能获得积极的信息收益。我意识到这不是数学证明(请转到MathOverflow!),我只是觉得一个实际的例子可以帮助。
(注:根据谷歌的所有计算)
答案 1 :(得分:1)
对于遇到这个问题的任何人,尽管年龄很大,我仍然提供这个答案和建议。
首先,答案是否定的,不能否定。绝对最坏的可能性是没有变化,或IG为零。如果你想要证明,请像Amro指出的那样在MathOverFlow上查找完整的证明。
现在提出建议。如果你只做决策树的第一级,很明显它永远不会出现负面影响。然而,当使用信息增益构建我的第一棵树时,我发现自己在第三次分支时获得了负面收益。这似乎没有用或不可能,所以我争先恐后地检查我的数学。数学很好。我有错误的部分是基本公式的第一部分。我使用上面的答案作为我的起始熵,但这是错误的,因为它包含来自其他数据集的信息。你需要确保为你的起始熵确定单独的那个分支的熵!这意味着你的“起始熵”实际上可能高于它之前的水平。
换句话说,在计算IG时,请确保您只使用当前数据集。
答案 2 :(得分:-3)
当然可以。
信息增益只是信息熵从一个州到另一个州的变化:
IG(Ex,a)= H(Ex)-H(Ex | a)
状态变化可以朝着两个方向发展 - 它可以是正面的,也可以是负面的。
通过示例很容易看到:
决策树算法的工作方式如下:在给定节点,您计算其信息熵(对于自变量)。
你可以这样想:信息熵是分类/离散变量,因为方差是连续变量。当然,方差只是标准差的平方。因此,例如,如果我们正在根据各种标准预测价格,我们将数据集任意分组为两组,其中A组的价格为(50,60和70),B组的价格是(50,55,60),B组的方差最小 - 即它们靠得很近。 当然,方差不能为负(因为在你将每个点的距离与均值相加后,你将其平方),但方差的差异当然可以。
要了解这与信息熵/信息增益的关系,假设我们不是预测价格而是预测价格,例如我们网站的访问者是成为注册用户还是高级用户,或者两者都不是。这里的indepdendent变量是离散的,而不是像价格那样连续,所以你不能以有意义的方式计算方差。信息熵是用来代替的。 (如果你怀疑方差和IE之间的近似类比,你应该知道大多数决策树算法能够处理离散和连续变量,在后一种情况下,算法将使用方差作为分裂标准,而不是使用IG。 )
无论如何,在计算给定节点的信息熵之后,然后在每个变量的每个值上拆分该节点(如果您在根节点处是整个数据集)的数据,则每次拆分,计算两组的IE,并取加权平均IE。接下来,得到导致最低加权平均IE的分割,并将其与节点IE(显然只是单个组)进行比较。如果分割的加权平均IE 低于 节点IE,那么您在该节点分割数据(形成分支),如果没有,则停止,即,该节点无法进一步拆分 - 您位于底部。
总而言之,决策树算法的核心是确定是否拆分节点的标准 - 这就是它们的构造方式。该标准是IG是正面还是负面。