根据字典数据计算互信息
from sklearn import metrics
import math
import numpy as np
from sklearn import metrics
from sklearn import metrics
def NMI(A,B): #此为计算互信息的函数,还可以计算标准互信息#样本点数total = len(A)A_ids = set(A)B_ids = set(B)#互信息计算MI = 0eps = 1.4e-45for idA in A_ids:for idB in B_ids:idAOccur = np.where(A==idA)idBOccur = np.where(B==idB)idABOccur = np.intersect1d(idAOccur,idBOccur)px = 1.0*len(idAOccur[0])/totalpy = 1.0*len(idBOccur[0])/totalpxy = 1.0*len(idABOccur)/totalMI = MI + pxy*math.log(pxy/(px*py)+eps,2)# 标准化互信息Hx = 0for idA in A_ids:idAOccurCount = 1.0*len(np.where(A==idA)[0])Hx = Hx - (idAOccurCount/total)*math.log(idAOccurCount/total+eps,2)Hy = 0for idB in B_ids:idBOccurCount = 1.0*len(np.where(B==idB)[0])Hy = Hy - (idBOccurCount/total)*math.log(idBOccurCount/total+eps,2)MIhat = 2.0*MI/(Hx+Hy)return MI
if __name__ == '__main__':dic = {1: {'w7w93t': 0.6901, 'w7w93y': 0.114, 'w7w93w': 0.0887, 'w7w93q': 0.0439, 'w7w93p': 0.0263, 'w7w93v': 0.0253, 'w7w93m': 0.0058, 'w7w93k': 0.0019, 'w7w93n': 0.0019, 'w7w932': 0.001, 'w7w93j': 0.001}, 2: {'w7w93t': 0.6684, 'w7w93y': 0.1265, 'w7w93w': 0.0961, 'w7w93q': 0.048, 'w7w93v': 0.0248, 'w7w93p': 0.0227, 'w7w93m': 0.0062, 'w7w93n': 0.0031, 'w7w93k': 0.001, 'w7w93j': 0.001, 'w7w93s': 0.001, 'w7w932': 0.0005, 'w7w93z': 0.0005}, 3: {'w7w93t': 0.6798, 'w7w93y': 0.1168, 'w7w93w': 0.0913, 'w7w93q': 0.049, 'w7w93v': 0.0266, 'w7w93p': 0.0232, 'w7w93m': 0.0068, 'w7w93n': 0.0024, 'w7w93k': 0.001, 'w7w93s': 0.001, 'w7w93j': 0.0007, 'w7w93z': 0.0007, 'w7w932': 0.0003, 'w7w931': 0.0003}, 4: {'w7w93t': 0.6875, 'w7w93y': 0.1077, 'w7w93w': 0.0952, 'w7w93q': 0.0445, 'w7w93v': 0.0296, 'w7w93p': 0.0236, 'w7w93m': 0.0062, 'w7w93n': 0.0022, 'w7w93s': 0.001, 'w7w93k': 0.0007, 'w7w93j': 0.0005, 'w7w93z': 0.0005, 'w7w93x': 0.0002, 'w7w932': 0.0002, 'w7w931': 0.0002}, 5: {'w7w93t': 0.6834, 'w7w93y': 0.1093, 'w7w93w': 0.0953, 'w7w93q': 0.0455, 'w7w93v': 0.029, 'w7w93p': 0.0248, 'w7w93m': 0.0062, 'w7w93n': 0.0028, 'w7w93j': 0.0008, 'w7w93s': 0.0008, 'w7w93z': 0.0006, 'w7w93k': 0.0006, 'w7w932': 0.0004, 'w7w931': 0.0002, 'w7w93x': 0.0002, 'w7w930': 0.0002}}i = 1while i < len(dic.keys()) + 1: # 把90天的数据分离出来成为字典for k in dic[5].keys(): # 比较两个字典,没有的key的加上该key并取值为0if k not in dic[i].keys():dic[i][k] = 0dic[i] = {j: dic[i][j] for j in sorted(dic[i].keys())} # 对dic[i]字典按照key值排序后输出i += 1print('90天的数据处理排序后是')print(dic)print('*****开始计算互信息**********')c=1result1=[]#result存放最终对比的NMI结果result2=[]while c < len(dic.keys()) + 1:A=list(dic[c].values())B=list(dic[5].values()) #B是最终的那个数据C = np.array(A)D = np.array(B)result_NMI1 = NMI(C, D) #计算互信息result_NMI2 = metrics.normalized_mutual_info_score(A, B)result1.append(result_NMI1)result2.append(result_NMI2)c+=1print(result1)print(result2)
根据字典数据计算互信息相关推荐
- 大数据计算框架与平台--深入浅出分析
http://mp.weixin.qq.com/s/s2DnbgieeQockaLKdZDCzA?utm_source=tuicool&utm_medium=referral 1. 前言 计算 ...
- 大数据风控---互信息及Python实现
前言 信息增益表示得知特征空间X的信息而使得类Y的信息不确定性减少的程度.信息增益依赖于特征,不同的特征往往具有不同的信息增益,信息增益大的特征具有更强的分类能力.在概率论和信息论中,两个随机变量的互 ...
- python计算互信息_Maximal Information Coefficient (MIC)最大互信息系数详解与实现
MIC MIC 即:Maximal Information Coefficient 最大互信息系数. 使用MIC来衡量两个基因之间的关联程度,线性或非线性关系,相较于Mutual Informatio ...
- 超级干货 :一文读懂大数据计算框架与平台(升级版)
1. 前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等.随着互联网.物联网等技术得到越来越广泛的应用,数据规模不断增加,TB.PB量级成为 ...
- 一文读懂大数据计算框架与平台
1. 前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等.随着互联网.物联网等技术得到越来越广泛的应用,数据规模不断增加,TB.PB量级成为 ...
- boll指标 java_股票数据计算分析 web 系统 stock-job-web v1.0 发布了
stock-job-web V1 是基于Python的pandas,tushare,bokeh,tornado,stockstats,ta-lib等框架开发的全栈股票系统. 1)可以直接使用docke ...
- 阿里云大数据计算服务MaxCompute(下篇)
关于阿里云大数据计算服务MaxCompute的详细内容: 阿里云大数据计算服务MaxCompute使用教程 (MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速.完全托管的PB级数据 ...
- 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute...
如果说十年前,王坚创立阿里云让云计算在国内得到了普及,那么王坚带领团队自主研发的大数据计算平台MaxCompute则推动大数据技术向前跨越了一大步. 数据是企业的核心资产,但十年前阿里巴巴的算力已经无 ...
- 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
2019独角兽企业重金招聘Python工程师标准>>> 如果说十年前,王坚创立阿里云让云计算在国内得到了普及,那么王坚带领团队自主研发的大数据计算平台MaxCompute则推动大数据 ...
最新文章
- Centos 搭建高性能WEB服务 Nginx+PHP+MYSQL+Discuz论坛
- 《C++应用程序性能优化::第五章动态内存管理》学习和理解
- 自动化测试框架cucumber_自动化测试框架cucumber-java操作手册_从配置到生成测报...
- 防抖和节流(白话版)
- h5微信本地调试 vue_vueh5中使用微信sdk
- 不知道选择多云还是混合云?先把概念弄清楚吧
- J-UI框架踩过的坑
- 笨办法学 Python · 续 练习 52:`moreweb`
- linux下amd超频工具,AMD锐龙超频民间工具Work Tool:可单独超CCX模块
- 预备作业03 20162311张之睿
- 谷歌浏览器:解决Chrome浏览器添加扩展程序报错无法从该网站添加应用、扩展程序和用户脚本
- 数据分析第一步 | 做好数据埋点
- PLC梯形图设计全自动洗衣机S7-1200博途以及PLC仿真实现之 3. 仿真设计
- ipv6overipv4+linux,IPv4 over IPv6 的配置
- Git详细教程(三):window系统下,使用Git Gui管理项目
- torch中repeat()函数的准确理解
- [解决方案]excel2010分析工具库无法运行“ FUNCRES.NLAM! Showatpdialog”宏
- thinkphp 打开速度缓慢,大多由于数据库读取问题!解决方法
- 【Linux】gcc编译器下载与手动安装
- configure error /bin/bash /config sub failed