熵是一个热力学中表征物质状态的参量之一,物理意义为:体系混乱程度的度量。
信息熵是为了解决信息量化问题。香浓【】认为,一条信息的信息量和它的不确定性有直接关系。一个问题的不确定性越大,要搞清楚这个问题,需要了解的信息就越多,其信息熵就越大。
横坐标是P(x)表示x的概率
纵坐标为H(u)表示信息熵Entropy
当概率越接近0或者越接近1时,信息熵的值越小,其不确定性就越小,数据就越“纯”。
class Entropy(object):
def __init__(self,name):
self.name = name
def entropy(X):
Y = -X * np.log2(X)
return Y
import matplotlib.pyplot as plt
import numpy as np
from aligo_alg import Entropy
#画出图
X = np.linspace(0,1,500)
Y = Entropy.entropy(X)
plt.xlabel("P(x)")
plt.ylabel("-P(x)log2(P(x))")
plt.plot(X,Y)
比如我们开始学习一门课程“无人驾驶”。
刚开始我们对其了解得很少,只有0,说明了解得信息很少,就是不知道!
对比于一个钻研30年的教授,对于这门课程的信息熵可能是接近于1的,就是我都知道。
在刚开始学习的时候,只是初步的做了了解,很多东西不知道,但是你又很想学好它。此时对于这门课程,你需要了解的东西就有很多很多,所以在前0.4的信息熵很大。
随着你慢慢的学习,思路慢慢的理清,需要了解的东西不多了。此时对于这门课程的信息熵就会慢慢减小了。
用白话描述就是,如果没有外力的作用,这个世界将是越来越无序的。人活着,在于尽量让熵变低,即让世界变得有序,降低不确定性。
当我们在消费资源时,是一个增熵的过程,将有序的食物变为无序的能力。
当我们在学习的时候,是一个减熵的过程,减少了不确定的信息,让自己的思维变得更加有序
信息增益(减熵量 - 增熵量)即是衡量人生价值得尺度。
信息熵除了是独立信息的不确定性指标,也是衡量信息“纯度”的指标
基尼不纯度 是衡量信息不纯度的指标:
class Gini_impurity(object):
def __init__(self,name):
self.name = name
def gini_impurity(X):
Y = X * (1-X)
return Y