什么是“Entropy 和信息增益”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (6)
  • 关注 (0)
  • 查看 (164)

Entropy 每个标签的概率之和乘以相同标签的对数概率吗?

提问于
用户回答回答于

这个二元熵函数描述如下图(随机变量可以取两个值中的一个)。当概率为p=1/2时,它达到最大值,即p(X=a)=0.5或类似的lyp(X=b)=0.5,有50%/50%的概率为a或b(不确定性最大)。当概率为p=1或p=0时,熵函数的最小值为0,p(X=a)=1或p(X=a)=0,后者暗示p(X=b)=1)。

当然,熵的定义可以推广到具有N个结果的离散随机变量X(而不仅仅是两个):

回到我们的名称分类任务,让我们看看一个例子。想象一下,在构建树的过程中,我们考虑了以下几点:

     ends-vowel
      [9m,5f]          <--- the [..,..] notation represents the class
    /          \            distribution of instances that reached a node
   =1          =0
 -------     -------
 [3m,4f]     [6m,1f]

如你所见,在分裂之前,我们有9男5女,即P(m)=9/14P(f)=5/14.根据熵的定义:

Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403

接下来,我们通过两个子分支将其与考虑分裂后计算出来的熵进行比较。在左支ends-vowel=1,我们有:

Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852

的右支ends-vowel=0,我们有:

Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917

我们使用每个分支下的实例数组合左/右熵,如权重因子(7个实例左转,7个实例右转),然后在拆分后得到最终熵:

Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885

现在,通过比较分裂前后的熵,我们得到了一个度量信息增益,或者我们通过使用这个特定特性进行拆分获得了多少信息:

Information_Gain = Entropy_before - Entropy_after = 0.1518

您可以将上述计算解释为:通过使用end-vowels特征,我们能够将子树预测结果的不确定性减少0.1518。位元如信息单位)。

用户回答回答于

、对于文本挖掘分类,可以采取如下步骤:预处理(标记化、蒸化、信息增益特征选择...)。转换为数字(频率或TF-ID)(我认为这是将文本作为只接受数字的算法的输入时理解的关键步骤),然后用MaxEnt进行分类,确定这只是一个例子。

用户回答回答于

这是我使用的伪代码,您需要调整它来处理文本而不是图像,但是原则应该是相同的。

//Loop over image array elements and count occurrences of each possible
//pixel to pixel difference value. Store these values in prob_array
for j = 0, ysize-1 do $
    for i = 0, xsize-2 do begin
       diff = array(i+1,j) - array(i,j)
       if diff lt (array_size+1)/2 and diff gt -(array_size+1)/2 then begin
            prob_array(diff+(array_size-1)/2) = prob_array(diff+(array_size-1)/2) + 1
       endif
     endfor

//Convert values in prob_array to probabilities and compute entropy
n = total(prob_array)

entrop = 0
for i = 0, array_size-1 do begin
    prob_array(i) = prob_array(i)/n

    //Base 2 log of x is Ln(x)/Ln(2). Take Ln of array element
    //here and divide final sum by Ln(2)
    if prob_array(i) ne 0 then begin
        entrop = entrop - prob_array(i)*alog(prob_array(i))
    endif
endfor

entrop = entrop/alog(2)
用户回答回答于

我不认为你真的有必要去学习所有这些关于沟通理论的定理,但是如果不学习entropy的基本知识,它是如何计算的,它与信息和推理的关系是什么等等,就不可能学习到这些定理。

用户回答回答于

假设我们有一个信息通道,比如每天都会闪烁一次的灯,无论是红色还是绿色。它传达了多少信息?初步猜测可能是每天一点点。但是,如果我们添加蓝色,以便发送方有三个选项呢?我们希望有一种信息度量,它可以处理除二次幂以外的其他事情,但仍然是加性的(将可能的消息数乘以二的方式)。加一点)。我们可以通过获取log 2(可能的消息数量)来实现这一点,但结果是有一种更普遍的方法。

假设我们又回到了红色/绿色,但红色灯泡已经烧坏了(这是常识),所以灯必须总是闪烁绿色。这个频道现在没用了,我们知道下一个闪光是什么所以闪光灯没有信息,没有新闻。现在,我们修理灯泡,但强制规定,红色灯泡不得连续两次闪光。当灯亮红的时候,我们知道下一个闪光是什么。如果您试图通过这个通道发送一个比特流,您会发现您必须用比有位多的闪存对其进行编码(实际上是多50%)。如果你想描述一个闪光灯序列,你可以用更少的位来描述。如果每个闪存是独立的(上下文无关),那么绿色闪光灯比红色更常见:越偏斜的概率越小,你需要描述序列的位数越少,所包含的信息就越少,一直到全绿、灯泡烧毁的极限。

事实证明,有一种方法可以根据不同符号的概率来测量信号中的信息量。如果接收符号xi的概率为pi,则考虑数量。

-log pi

π越小,这个值就越大。如果xi变为不可能的两倍,则此值将增加一个固定数量(log(2))。这应该会提醒您在消息中添加一点内容。

如果我们不知道符号是什么(但我们知道概率),那么我们可以通过对不同可能性的求和来计算这个值的平均值,得到多少:

I = -Σ pi log(pi)

这是一闪而过的信息内容。

Red bulb burnt out: pred = 0, pgreen=1, I = -(0 + 0)  = 0
Red and green equiprobable: pred = 1/2, pgreen = 1/2, I = -(2 * 1/2 * log(1/2)) = log(2)
Three colors, equiprobable: pi=1/3, I = -(3 * 1/3 * log(1/3)) = log(3)
Green and red, green twice as likely: pred=1/3, pgreen=2/3, I = -(1/3 log(1/3) + 2/3 log(2/3)) = log(3) - 2/3 log(2)

这是信息的信息内容,或者说信息的熵。当不同的符号是等数时,它是最大的。如果你是物理学家,你使用自然日志,如果你是计算机科学家,你使用log 2并得到比特。

用户回答回答于

首先,最好明白the measure of information

我们如何测量信息?

当不太可能发生的事情发生时,我们会说这是一个大新闻。而且,当我们说一些可预测的东西时,也不是很有趣。为了量化这个interesting-ness,函数应该满足。

  • 如果事件的概率为1(可预测的),则该函数给出0
  • 如果事件的概率接近于0,则函数应该给出较高的数目。
  • 如果发生0.5次事件的概率one bit关于信息的。

满足约束条件的一个自然度量是

I(X) = -log_2(p)

何地P是事件发生的概率。X.而单位在bit,相同的位计算机使用。0或1。

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    27 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答
  • 富有想象力的人

    2 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券