如何使用R计算香农熵?

如何使用R计算香农熵?,第1张

1.1948 年,香农提出了“ 信息熵 ”(shāng);

2.信息量的度量就等于不确定性的多少。即:要搞懂一个非常非常不确定(gaoleng)的女孩(或是说我们一无所知的女神),就需要了解大量的信息(喜欢吃啥,衣品,喜欢的偶像)。相反宴洞春,如果我们对某件事已经有了较多的了解颤掘(女闺蜜/青梅竹马的),我们不需要太多的信息就能把它搞清楚。(我尽力了~)

library(entropy)

因为我的数据集有683个基因,所以每一行计算香农熵共683次

y=rep(0,683)

for (i in 1:683){ y[i]=entropy(forentropy[i,],method=c("CS"))}

这时候已经变成是你想要的数据了~

write.table(y, file ="CS_Entropy.txt", sep =",", row.names =FALSE, col.names =FALSE)

就是Excel打开这个香农熵值的表格,复制黏贴到原来的Excel表格中(高端 *** 作就是用cbind到原来的数据集中)

能够解决晌耐问题的方法,就是好方法~

这个 *** 作,其实基本上可以用于对任何“感兴趣”函数,对自己的数据集“ *** 作”一下~

不打赏,不点赞,你们还想不想我写了,呜呜呜~~~

1.百度百科香农熵:https://baike.baidu.com/item/香农熵;

1948 年,香农提出了“信息熵” 的概念,所以叫香农熵。

香农不是用钱,而是用 “比特”(bit)这个概念来度量信息量。 一个比特是一位闹首迹二进制数,计算机中的一个字节是八个比特。在上面的例子中,这条消息的信息量是五比特。 信息量的比特数和所有可能情况的对数函数 log 有关。 (log32=5, log64=6。)

对于任意一个随机变量 X,它的熵定义如下:

变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

有了“熵”这个概念,我们就可以回答本文开始提出的问题,即一本五十万字的中文书平均有多少信息量。我们知道常用的汉字(一级二级国标)大约有 7000 字。假如每个字等概率,那么我们大约需要 13 个比特(即 13 位二进制数)表示一个汉字。但汉字的使用是不平衡的。实际上,前 10% 的汉字占文本的 95% 以上。因此,即使不考虑上下文的相关性,而只考虑每个汉字的独立的概率,那么,每个汉字的信息熵大约也只有 8-9 个比特。如果我们再考虑上下文相关性,每个汉字的信息熵只有5比特左右。所以,一本五十万字的中文书,信息量大约是 250 万芹竖比特。如果用一个好的算法压缩一下,整本书可以存成一个 320KB 的文件。如果我们直接用两字节的国标编码存储这本书,大约需要 1MB 大小,是压缩液并文件的三倍。这两个数量的差距,在信息论中称作“冗余度”(redundancy)。 需要指出的是我们这里讲的 250 万比特是个平均数,同样长度的书,所含的信息量可以差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12515613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存