信息熵的基本了解
熵与空间位置预测

样本数量

对某人借书的种类及借此种类书的数量进行统计

import pandas as pd
import numpy as np
# 横向最多显示多少个字符, 一般80不适合横向的屏幕,平时多用200
pd.set_option('display.width', 500)
# 显示所有列
pd.set_option('display.max_columns', None)#图书类别
Book_category = ['A','B','C','D','E','F','G','H','I','J','K','N','O','P','Q','R','S','T','U','V','X','Z']
# # 读取数据
# Person_data = pd.read_excel(r'Person_8748847336.xlsx').iloc[0: , 1:]
LOAN_DATE = ['2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/2/20', '2013/4/19', '2013/4/19', '2013/4/19', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/6/8', '2013/10/9', '2013/10/29', '2013/10/29', '2013/11/7', '2013/11/7', '2013/11/14', '2013/11/14', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/11', '2013/12/18', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/2/17', '2014/3/13', '2014/3/13', '2014/4/15', '2014/4/29', '2014/4/29', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/12/2', '2014/12/2', '2014/12/2', '2014/12/4', '2014/12/4', '2015/1/14', '2015/2/28', '2015/2/28', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/11', '2015/3/11', '2015/3/11', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/19', '2015/3/19']
time_number = ['2013/1/1', '2013/2/20', '2013/4/19', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/10/9', '2013/10/29', '2013/11/7', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/3/13', '2014/4/15', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/12/2', '2014/12/4', '2015/1/14', '2015/2/28', '2015/3/5', '2015/3/11', '2015/3/12', '2015/3/19']
ITEM_CALLNO = ['H', 'H', 'H', 'H', 'H', 'D', 'F', 'F', 'F', 'D', 'E', 'E', 'D', 'D', 'D', 'F', 'F', 'H', 'B', 'B', 'B', 'C', 'D', 'D', 'I', 'F', 'I', 'F', 'D', 'I', 'F', 'F', 'D', 'F', 'F', 'H', 'F', 'F', 'F', 'F', 'D', 'F', 'D', 'D', 'D', 'K', 'K', 'D', 'I', 'I', 'I', 'D', 'H', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'F', 'K', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'J', 'D']N = len(ITEM_CALLNO)    #样本数量
t_n = len(time_number)    #次数
B_N = len(Book_category)
print("样本数量:",N)
#列表转化为字典
def Book_list_to_dic():Book_data_dic = {}for B in Book_category:Book_data_dic[B] = 0for B_I in ITEM_CALLNO:Book_data_dic[B_I] += 1return Book_data_dicBook_data_dic = Book_list_to_dic()
print("借书种类及数量统计:\n",Book_data_dic)

结果:

样本数量: 85
借书种类及数量统计:
{'A': 0, 'B': 3, 'C': 1, 'D': 44, 'E': 2, 'F': 17, 'G': 0, 'H': 8, 'I': 6, 'J': 1, 'K': 3, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'X': 0, 'Z': 0}

借某种类书的概率

计算借某种类书的概率,即先计算熵公式中的P(Xi)

import pandas as pd
from sympy import *
# 横向最多显示多少个字符, 一般80不适合横向的屏幕,平时多用200
pd.set_option('display.width', 500)
# 显示所有列
pd.set_option('display.max_columns', None)#图书类别
Book_category = ['A','B','C','D','E','F','G','H','I','J','K','N','O','P','Q','R','S','T','U','V','X','Z']
# # 读取数据
# Person_data = pd.read_excel(r'Person_8748847336.xlsx').iloc[0: , 1:]
LOAN_DATE = ['2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/2/20', '2013/4/19', '2013/4/19', '2013/4/19', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/6/8', '2013/10/9', '2013/10/29', '2013/10/29', '2013/11/7', '2013/11/7', '2013/11/14', '2013/11/14', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/11', '2013/12/18', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/2/17', '2014/3/13', '2014/3/13', '2014/4/15', '2014/4/29', '2014/4/29', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/12/2', '2014/12/2', '2014/12/2', '2014/12/4', '2014/12/4', '2015/1/14', '2015/2/28', '2015/2/28', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/11', '2015/3/11', '2015/3/11', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/19', '2015/3/19']
time_number = ['2013/1/1', '2013/2/20', '2013/4/19', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/10/9', '2013/10/29', '2013/11/7', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/3/13', '2014/4/15', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/12/2', '2014/12/4', '2015/1/14', '2015/2/28', '2015/3/5', '2015/3/11', '2015/3/12', '2015/3/19']
ITEM_CALLNO = ['H', 'H', 'H', 'H', 'H', 'D', 'F', 'F', 'F', 'D', 'E', 'E', 'D', 'D', 'D', 'F', 'F', 'H', 'B', 'B', 'B', 'C', 'D', 'D', 'I', 'F', 'I', 'F', 'D', 'I', 'F', 'F', 'D', 'F', 'F', 'H', 'F', 'F', 'F', 'F', 'D', 'F', 'D', 'D', 'D', 'K', 'K', 'D', 'I', 'I', 'I', 'D', 'H', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'F', 'K', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'J', 'D']N = len(ITEM_CALLNO)    #样本数量
t_n = len(time_number)    #次数
B_N = len(Book_category)
print("样本数量:",N)
#列表转化为字典
def Book_list_to_dic():Book_data_dic = {}for B in Book_category:Book_data_dic[B] = 0for B_I in ITEM_CALLNO:Book_data_dic[B_I] += 1return Book_data_dicBook_data_dic = Book_list_to_dic()
print("借书种类及数量统计:\n",Book_data_dic)
#计算借书种类概率
Book_Probablity_dic = Book_data_dic
for B in Book_category:Book_Probablity_dic[B] = Rational(Book_Probablity_dic[B], N)
print("借书种类概率:\n",Book_Probablity_dic)

结果:

样本数量: 85
借书种类及数量统计:{'A': 0, 'B': 3, 'C': 1, 'D': 44, 'E': 2, 'F': 17, 'G': 0, 'H': 8, 'I': 6, 'J': 1, 'K': 3, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'X': 0, 'Z': 0}
借书种类概率:{'A': 0, 'B': 3/85, 'C': 1/85, 'D': 44/85, 'E': 2/85, 'F': 1/5, 'G': 0, 'H': 8/85, 'I': 6/85, 'J': 1/85, 'K': 3/85, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'X': 0, 'Z': 0}

计算借书种类的熵


并且规定0 log(0) =0

import pandas as pd
from sympy import *
# 横向最多显示多少个字符, 一般80不适合横向的屏幕,平时多用200
pd.set_option('display.width', 500)
# 显示所有列
pd.set_option('display.max_columns', None)#图书类别
Book_category = ['A','B','C','D','E','F','G','H','I','J','K','N','O','P','Q','R','S','T','U','V','X','Z']
# # 读取数据
# Person_data = pd.read_excel(r'Person_8748847336.xlsx').iloc[0: , 1:]
LOAN_DATE = ['2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/1/1', '2013/2/20', '2013/4/19', '2013/4/19', '2013/4/19', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/6/8', '2013/10/9', '2013/10/29', '2013/10/29', '2013/11/7', '2013/11/7', '2013/11/14', '2013/11/14', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/11', '2013/12/18', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/2/17', '2014/3/13', '2014/3/13', '2014/4/15', '2014/4/29', '2014/4/29', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/10/10', '2014/12/2', '2014/12/2', '2014/12/2', '2014/12/4', '2014/12/4', '2015/1/14', '2015/2/28', '2015/2/28', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/5', '2015/3/11', '2015/3/11', '2015/3/11', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/12', '2015/3/19', '2015/3/19']
time_number = ['2013/1/1', '2013/2/20', '2013/4/19', '2013/4/24', '2013/4/27', '2013/5/8', '2013/5/15', '2013/5/17', '2013/6/6', '2013/6/8', '2013/10/9', '2013/10/29', '2013/11/7', '2013/11/14', '2013/11/25', '2013/12/2', '2013/12/4', '2013/12/6', '2013/12/11', '2013/12/18', '2014/1/1', '2014/1/2', '2014/2/17', '2014/3/13', '2014/4/15', '2014/4/29', '2014/5/5', '2014/9/23', '2014/10/10', '2014/12/2', '2014/12/4', '2015/1/14', '2015/2/28', '2015/3/5', '2015/3/11', '2015/3/12', '2015/3/19']
ITEM_CALLNO = ['H', 'H', 'H', 'H', 'H', 'D', 'F', 'F', 'F', 'D', 'E', 'E', 'D', 'D', 'D', 'F', 'F', 'H', 'B', 'B', 'B', 'C', 'D', 'D', 'I', 'F', 'I', 'F', 'D', 'I', 'F', 'F', 'D', 'F', 'F', 'H', 'F', 'F', 'F', 'F', 'D', 'F', 'D', 'D', 'D', 'K', 'K', 'D', 'I', 'I', 'I', 'D', 'H', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'F', 'K', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'J', 'D']N = len(ITEM_CALLNO)    #样本数量
t_n = len(time_number)    #次数
B_N = len(Book_category)
print("样本数量:",N)
#列表转化为字典
def Book_list_to_dic():Book_data_dic = {}for B in Book_category:Book_data_dic[B] = 0for B_I in ITEM_CALLNO:Book_data_dic[B_I] += 1return Book_data_dicBook_data_dic = Book_list_to_dic()
print("借书种类及数量统计:\n",Book_data_dic)
#计算借书种类概率
Book_Probablity_dic = Book_data_dic
for B in Book_category:Book_Probablity_dic[B] = Rational(Book_Probablity_dic[B], N)
print("借书种类概率P:\n",Book_Probablity_dic)
#计算借书种类的熵
Book_Entrop = 0
for B in Book_category:if Book_Probablity_dic[B] == 0:Book_Entrop += 0else:Book_Entrop += (- Book_Probablity_dic[B] * log(Book_Probablity_dic[B], 2)).evalf()
print("借书种类的熵H(X):",Book_Entrop)

结果:

样本数量: 85
借书种类及数量统计:{'A': 0, 'B': 3, 'C': 1, 'D': 44, 'E': 2, 'F': 17, 'G': 0, 'H': 8, 'I': 6, 'J': 1, 'K': 3, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'X': 0, 'Z': 0}
借书种类概率P:{'A': 0, 'B': 3/85, 'C': 1/85, 'D': 44/85, 'E': 2/85, 'F': 1/5, 'G': 0, 'H': 8/85, 'I': 6/85, 'J': 1/85, 'K': 3/85, 'N': 0, 'O': 0, 'P': 0, 'Q': 0, 'R': 0, 'S': 0, 'T': 0, 'U': 0, 'V': 0, 'X': 0, 'Z': 0}
借书种类的熵H(X): 2.16560964755005

利用熵和条件熵预测图书借阅相关推荐

  1. 最大熵模型(Maximum Etropy)—— 熵,条件熵,联合熵,相对熵,互信息及其关系,最大熵模型。。...

    引入1:随机变量函数的分布 给定X的概率密度函数为fX(x), 若Y = aX, a是某正实数,求Y得概率密度函数fY(y). 解:令X的累积概率为FX(x), Y的累积概率为FY(y). 则 FY( ...

  2. java bs架构书_基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品)

    基于BS架构的图书借阅管理模块的分析与设计(JSP+MySQL)(新品) 来源:2BYSJ.cn 资料编号:2SJ295500 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5% ...

  3. c语言借阅管理题目内容描述,C语言 图书借阅管理统 第四组.doc

    C语言 图书借阅管理统 第四组 实 习 设 计 报 告 课程名称 C语言程序设计 课题名称 图书借阅管理系统 专 业 地理信息系统 班 级 0644131 学 号 姓 名 指导教师 2014年 6 月 ...

  4. 熵、联和熵与条件熵、交叉熵与相对熵是什么呢?来这里有详细解读!

    熵是一个很常见的名词,在物理上有重要的评估意义,自然语言处理的预备知识中,熵作为信息论的基本和重点知识,在这里我来记录一下学习的总结,并以此与大家分享. 信息论基本知识 1.熵 2.联和熵与条件熵 3 ...

  5. 基于云服务器 B/S模式 JavaWeb RFID 图书借阅管理系统

    RFID图书借阅管理系统:点击此处访问系统 前排提示: 源码.文档(开题/结题报告/演示视频)包含于上述链接. 本文是一篇初学者写的 "软件文档". 全部仔细阅读完毕需要10min ...

  6. 详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系

    信息量的定义 某事件发生的概率小,则该事件的信息量大. 定义随机变量 X X X的概率分布为P(X)" role="presentation" style="p ...

  7. Java课程设计-图书借阅管理系统

    摘要 图书管理工作是每个学校必须面对的工作,如何利用较为先进的技术开发高效.安全.各平台间相互数据共享的信息化平台,也就是设计出稳定.全面.有效的图书借阅管理系统,这就显得尤为重要.文中介绍了图书借阅 ...

  8. 图书借阅管理系统微信小程序的开发 报告+开题报告+PPT+SSM项目源码及数据库文件+演示视频

    摘 要 尽管有的图书馆有图书管理系统,但是仅仅限于图书管理员使用,属于单机系统,对于Internet服务几乎没有,更不用说是WAP等服务.这样的图书管理系统根本没有发挥它的效力,资源闲置比较突出.基于 ...

  9. 【计算机毕业设计】图书借阅系统

    一.系统截图(需要演示视频可以私聊) 摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源, ...

最新文章

  1. Github标星24k,127篇经典论文下载,这份深度学习论文阅读路线图不容错过
  2. R使用abline()函数在图中添加额外的直线
  3. Solr6.7 学习笔记(01) -- 目录结构
  4. 科大星云诗社动态20210222
  5. iris数据集 测试集_IRIS数据集的探索性数据分析
  6. Java知多少(66)输入输出(IO)和流的概述
  7. 如何高效率学Web前端 怎么规划前端学习路线
  8. 修改Jmeter中乱码问题
  9. 看好某一个机会和项目,拥有或掌握某一个资源要素和自然禀赋,寻找并组合志同道合
  10. C调用Python崩溃的记录
  11. 2022年计算机二级考试 Web程序设计模拟题及答案
  12. win10电脑360调用不到JAVA,win10系统打不开360浏览器快捷方式的修复步骤
  13. MySQL5.0安装图文教程
  14. 【金融财经】金融市场一周简报(2017-09-22)
  15. 墨菲定律 Murphy’s Law
  16. 毕业论文写作中致谢词的常见写法及优秀范文
  17. 牛津5000词汇表(The Oxford 5000™)
  18. mysql的基础命令之更改密码
  19. keil手把手创建文件
  20. Unity 输出360图片

热门文章

  1. mapInfo文件格式详解
  2. mysql上线脚本规范_专业规范的MySQL启动脚本
  3. 计算机题目道路游戏,道路考试模拟游戏
  4. 我买了一台 MacBook M1
  5. 音乐均衡器EQ的调试方法(一)
  6. 蔡高厅高等数学25-导数和差积的求导法则的证明
  7. java三重des加密_基础才是重中之重~BouncyCastle实现的DES3加密~java通用
  8. 2021-06-08-前端生成二维码和条形码(一维码)
  9. Keil 报错 :The connected J-Link is defective
  10. Ext3.x版本锁定列和多表头的插件