12-2 信息熵

  1. 每个结点在哪个维度做划分?

  2. 某个维度的哪个值上做划分?

    用信息熵解决以上问题

信息熵

信息熵表示一组变量的不确定度。 熵越大,不确定性越高。 熵越小,不确定性越低。

信息熵的计算公式:

假设数据集中有三个类别,样本属于这三个类别的概率分别是{1/3, 1/3, 1/3},此时信息熵H为: H = -1/3log(1/3) -1/3log(1/3) -1/3log(1/3) = 1.0986 如果三个类别的概率分别是{0.1、0.2、0.7},那么H=0.8018 如果三个类别的概率分别是{1, 0, 0},那么H=0

以二分类为例,画出信息熵的图像

数据只有两个类型,其中一类的概率为x,信息熵计算公式如下:

import numpy as np
import matplotlib.pyplot as plt

def entropy(p):
    return -p * np.log(p) - (1-p) * np.log(1-p)

x = np.linspace(0.01, 0.99, 200)

plt.plot(x, entropy(x))
plt.show()

数据是任何一个类别的概率是一样大时,信息熵最大。 系统偏向于某一类,信息熵降低。 当数据100%确定是某一类时,信息熵为0

总结:

每一次划分时,让划分后的信息熵为所有划分结果的最低。

Last updated