用R语言实现信息度量(下篇)
关于作者:
· 张丹 青萌数海CTO
· blog: http://blog.fens.me
· email: [email protected]
前言
目录
应用举例
应用举例
在我们了解了熵的公式原理和使用方法后,我们就可以做一个案例来试一下。我们定义一个场景的目标:通过用户的看书行为,预测用户是否爱玩游戏。通过我们一步一步地推倒,我们计算出熵,条件熵,联合熵,互信息等指标。
第一步,创建数据集为2列,X列用户看书的类型,包括旅游(Tourism)、美食(Food)、IT技术(IT),Y列用户是否喜欢打游戏,喜欢(Y),不喜欢(N)。
第二步,建立联合概率矩阵,分别计算H(X),Y(X)。
X |
Y |
N |
p(X) |
Tourism |
2/8=0.25 |
2/8=0.25 |
0.25+0.25=0.5 |
Food |
0/8=0 |
2/8=0.25 |
0+0.25=0.25 |
IT |
2/8=0.25 |
0/8=0 |
0.25+0=0.25 |
p(Y) |
0.25+0+0.25=0.5 |
0.25+0.25+0=0.5 |
计算过程
第三步,计算每一项的条件熵,H(Y|X=Tourism),H(Y|X=Food),H(Y|X=IT)。
第四步,计算条件熵H(Y|X)
第五步,计算联合熵H(X,Y)
第六步,计算互信息I(X;Y)
我们把上面的推到过程,用程序来实现一下。
变型为频率矩阵
计算概率矩阵
计算熵
计算原理是复杂的,用R语言的程序实现却是很简单的,几行代码就搞定了,
本文只是对的信息论的初探,重点还是在信息度量方法的R语言实现。信息熵作为信息度量的基本方法,对各种主流的机器学习的算法都有支撑,是我们必须要掌握的知识。了解本质才能发挥数据科学的潜力,学习的路上不断积累和前进。