vlambda博客
学习文章列表

用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


计算过程

用R语言实现信息度量(下篇)

第三步,计算每一项的条件熵,H(Y|X=Tourism),H(Y|X=Food),H(Y|X=IT)

用R语言实现信息度量(下篇)

第四步,计算条件熵H(Y|X)

用R语言实现信息度量(下篇)

第五步,计算联合熵H(X,Y)

用R语言实现信息度量(下篇)

第六步,计算互信息I(X;Y)

用R语言实现信息度量(下篇)

我们把上面的推到过程,用程序来实现一下。

用R语言实现信息度量(下篇)

变型为频率矩阵

用R语言实现信息度量(下篇)

计算概率矩阵

计算熵

计算原理是复杂的,用R语言的程序实现却是很简单的,几行代码就搞定了,

本文只是对的信息论的初探,重点还是在信息度量方法的R语言实现。信息熵作为信息度量的基本方法,对各种主流的机器学习的算法都有支撑,是我们必须要掌握的知识。了解本质才能发挥数据科学的潜力,学习的路上不断积累和前进。