条件熵的应用
现在我们有很多个盒子,每个盒子最开始所装的糖果都是一样的,红,绿,蓝三种糖均是三颗。
盒子中的糖果能随着我们的食用而减少,我们需要预测我们下一次会选择哪个盒子取食物。
一般来说,我们会从包含信息量最小的盒子去取糖,即盒子中的糖果信息熵最小的那一个。
这里的熵应该是条件熵,也就是从此盒子中取糖时,盒子中糖果的信息熵。
H ( 盒 子 ) = H ( 选 择 此 盒 子 的 有 效 的 糖 ∣ 选 择 此 盒 子 ) = H ( 盒 子 中 的 所 有 糖 ) + ∑ i = 1 盒 子 数 量 H ( 每 个 糖 ) H(盒子) =H(选择此盒子的有效的糖|选择此盒子 ) = H(盒子中的所有糖) + \sum_{i=1}^{盒子数量} H(每个糖) H(盒子)=H(选择此盒子的有效的糖∣选择此盒子)=H(盒子中的所有糖)+i=1∑盒子数量H(每个糖)
代码中具体公式的实现:
x表示糖果的总次数
wave_id表示盒子id
entropy_vec表示盒子的熵数组
entropy_sum_vec表示糖果熵的累计和
e n t r o p y _ v e c [ w a v e _ i d ] = l o g ( x ) − e n t r o p y _ s u m _ v e c [ w a v e _ i d ] x entropy\_vec[wave\_id] = log(x) - \frac{entropy\_sum\_vec[wave\_id] }{x} entropy_vec[wave_id]=