[机器学习][特征工程]有关熵与相关性分析的记录


熵的本质是一个系统“内在的混乱程度”,是物理学的概念。

在信息论中,信息熵可以有以下两种理解方式

  • 表征事物的不确定性
  • 表征事件的信息量

事件与概率

先来举个例子,理解事件与概率之间的关系

猜小球事件

  • 有一个不透明的袋子,其中有四种数量相等的小球,A,B,C,D,

现在,拿出一个小球,事件\(P\{拿出一个小球\}=1\),该事件中,有四个子事件分别为

  • 拿出A小球,其概率 \(p = \frac{1}{4}\)
  • 拿出B小球,其概率 \(p = \frac{1}{4}\)
  • 拿出C小球,其概率 \(p = \frac{1}{4}\)
  • 拿出D小球,其概率 \(p = \frac{1}{4}\)

可以理解为“拿出小球”事件是一开始的规定,是一定发生的,所以概率为1,而“拿出某一个小球”事件的概率为\(\frac{1}{4}\),我们可以近似得将概率理解为事件的权重,在此例中也就是\(\frac{1}{4}\)

现在,我们还是拿出一个小球,现在只关注与这个拿出的小球是不是A小球,事件\(P\{拿出一个小球\}=1\),该事件中,有两个子事件分别为

  • 拿出的小球是A小球,其概率 \(p = \frac{1}{4}\)
  • 拿出的小球不是A小球,其概率 \(p = \frac{3}{4}\)

直观上讲,这两个事件的不确定性是不同的,因为,第一个事件,有4个等概率的子事件,但是第二个事件,只有两个子事件。
:其实,事件的不确定性不仅和事件中的子事件个数有关,还和每个事件的概率有关,掷出一个质地均匀的硬币和掷出一个容易出现正面的硬币,这两个事件的不确定性也是不同的,直观上讲,后者的不确定性要低一些,因为硬币更容易出现正面。

事件的不确定性——信息熵

信息熵这个概念就是用来衡量事件不确定性的物理量,那,我们怎么衡量不确定性呢,毕竟“不确定性”都不确定了,还怎么衡量呢。
再来设想一个场景——寻找石子。

  • 现在你需要在N个石子中寻找一个指定的石子,你会怎么做?

可能的解:1.你会认为这个石子和别的石子有质地上的区别,然后找一个天平,不停的分堆然后去度量
2.遍历这个石头堆,去查每一个石子是不是符合目标的要求

对于上面两种解题方式
第一种方法假设了“石子质地是不同的”,这就是一个削减事件不确定性的方式,题设没说,你以为就是你以为了,通过这种削减不确定性的方式,你的度量次数降低到了指数的级别。
第二种方法没有做任何先行的假设,直接进行比对,查找,这相当于要查找N次,没有任何削减不确定性的方式

设想一下以下几种情况

  • 现在来了一个考官,你可以向考官问问题,对于你的问题,他会给你{对,错}的回复
    现在找石子的问题,你依旧可以使用第二种解法,每次拿一个石子,去问考官“是这个么?”,然后重复N次。但这显然没有什么意义。
  • 来了考官以后,我们最少需要多少次查找?
    二分法是很适合这个问题的,将石子分成两堆,然后问考官,“石子在这堆么?”,得到“是”就可以把另一堆扔了,对这堆继续二分,反之扔掉去找考官确认的那堆,然后持续重复二分的过程直到最后只有两个石子,那么最后再去确认一次,即可获得正确答案。
  • 现在换了一个考官,这个考官依然会回答你的问题,他会告诉你,你拿来的是不是符合要求的石子,如果不是,他会告诉你正确答案。
    好了,现在是不是只用查找一次就知道结果了?

事物的不确定性,不是指做了什么(用那一堆去找考官),而是指能做什么({对,错},分两堆;{N个里哪个是对的},分N堆)

找石子的过程,就是信息从不确定到确定的过程,事物的不确定性的大小,就是能做的事的次数。

  • 不确定性——编码事件所需要的信息子的个数
    不知道我写到这里大家对信息熵有没有一个比较直观的理解,在信号传递过程中,一般用高电位/低电位表征0/1编码,然后用二进制进行编码数据,这就对应于第一个考官{对,错}的回答,因为只有这两种情况,所以需要\(log_2N\)次编码/找考官确认,但是实际上你用3进制编码,最后需要\(log_3N\),甚至你用N进制编码,最后只需要1次,都可以用来表征事物的不确定性。
  • 不确定性——无量纲物理单位,当底数为2时,单位为bit
    不确定性,本身表征的是事物的抽象状态,是不可能有量纲的,而2进制作为现在最为广泛使用的编码方式,使用2分来度量事物不确定性时,此时的事物不确定性有bit这个单位,也就是编码事件使用的编码长度。

信息熵的定义

  • 对于等概率事件\(f(p)=log(\frac{1}{p})\)
    信息熵必不可能是负的
    答题人在出题人出题之后立马得到答案,也不影响熵是正的,答题人所有的先验知识,将这个事件确定了,但是这个确定的过程并不影响事件本身,这就是抽象带来的好处,熵是脱离了表象的,可以说是一种客观规律,近似于哲学的概念,所以看不见,摸不着,但是可以度量,那如果说,我是说,如果,出题人没出题,答题人就回答问题了,那,拉普拉斯妖的故事,了解一下。
  • 对于不等概率事件\(f(p)=\Sigma plog(\frac{1}{p})\)
    还记得前面的拿小球的例子么,对于事件而言,我们已经默认发生了,那么它的子事件就相当于它的组成,概率就相当于权重占比,事件的信息量由子事件组成,而子事件的发生概率均等,每个子事件为整个事件提供了等量的信息量,所有相当于单个子事件的信息量等于\(plog(\frac{1}{p})\)
    单个子事件的信息量等于将该子事件视为等概率事件后,乘以其权重(概率)

\[plog(\frac{1}{p}) \]

对于整个事件,我们可以用算取期望的方式来计算整个事件的不确定性,即$$f(p)=\Sigma plog(\frac{1}{p})$$

事件之间的影响——条件熵

互信息

VN图

在特征工程中的使用——相关性分析(容易踩坑的地方)

是否线性相关——皮尔森相关系数

互信息——是否“相关”

未完待补充