1.信息熵的理论背景
【【机器学习数据集的信息熵】信息熵及其Python计算实现】在机器学习的过程中 , 我们经常会进行数据集的准备工作 。那么怎么来评测我们划分的数据集 , 来证明我们的划分就是最好最合理的呢?这里我们就需要用到信息熵了 。熵越大 , 随机变量的不确定性就越大 。
熵 , 定义为信息的期望值 , 是大名鼎鼎的香农提出来的概念 。
信息的定义:如果待分类的 Xi , 可能处于多个类别中 , 那么Xi 的信息定义为:
L(Xi) = -log2 p(xi) , 其中p(Xi) 是处于该分类的概率
为了计算熵 , 我们需要所有类别所可能包含的信息值 , 通过下面公式得到:
, 其中 n 是分类数量
熵越大 , 则混合的数据也越多 。
直白点说 , 信息熵是用来度量数据集的无序程度的 , 其值越大 , 则越无序 。
所以 , 一直有管理者提出“组织上熵减”就是追求组织上有序 , 规律 , 从而形成合力 。
2.实现
from math import logdef calcShannonEnt(dataSet):numEntries = len(dataSet)labelCounts = {}for featVec in dataSet:currentLabel = featVec[-1]if currentLabel not in labelCounts.keys():labelCounts[currentLabel]=0labelCounts[currentLabel]+=1shannonEnt = 0.0for key in labelCounts:prob = float(labelCounts[key])/numEntriesshannonEnt -= prob * log(prob,2)return shannonEnt
- 空气净化器哪个品牌的效果好专业净化器品牌排行榜前十名 世界十大空气净化器品牌排行榜
- 令人难忘的随州3道美食,尤其是泡泡青被誉为冬季“蔬菜之王” 中国之最风景泡沫特色
- 创造历史!张志磊杀入重量级前十,身价翻倍,单场酬金或超千万 张志磊创造中国拳击历史之最
- 中国20个历史大人物,你能猜对几个? 中国历史之最人物介绍图
- 上海火车票代售点
- 上海减肥
- 沈万三为何被朱元璋整:不懂低调皇帝面前炫富
- 华容县
- 外网到底是什么 外网是什么
- 什么牌子的冰箱好