基于信息熵和局部相关性的多标签传播重叠社区发现算法

摘要:是一种对COPRA算法进一步改善的算法。本文提出一种基于信息熵和局部相关性的多标签传播重叠社区发现算法。该算法在标签传播阶段,采用异步更新策略,利用信息熵产生更新序列指导标签更新,解决社区划分结果不稳定问题。同时在标签选择阶段,根据节点与自我网络中其他节点的相关程度选择标签,提高所发现社区的质量。

引言

COPRA算法能够适应当前大规模社会网络的社区发现工作[2],但是由于标签传播算法的随机性,导致多次运行结果会有较大程度的差异,且社区划分质量不高,甚至出现错误的社区划分。因此,本文针对现有基于标签传播思想的重叠社区发现算法存在的问题进行改进,提高社区划分精度和生成社区的质量。

基于信息熵和局部相关性的多标签传播重叠社区发现算法(COPRA-EP

2.1  COPRA-EP的算法描述

2.2  COPRA-EP的预备知识及定义

(1)   即为式(1)

其中,L{v,N(v)}表示节点v及其邻居节点拥有的标签集合;N(v)表示节点v的邻居节点;p(l)表示标签l在集合中出现的概率

注意:节点v的熵值[3]越小,该节点越可能处于社区内部;反之亦然。本文采用社区背部节点先于社区边缘节点进行更新的策略[4]。(可以避免由于随机更新序列带来的结果不稳定性以及错误的社区划分,也加快了迭代的收敛速度)

(2)其中基于自我网络随机游走[5]获取节点v与其邻居节点相关性的LPR算法,其算法

描述如下:

最终的PR值表示为起始节点访问其他节点的概率,即起始节点与其他节点之间的局部相关性。计算公式如下:

其中,PR(vu,v)表示节点vu与节点v的局部相关性;

vu表示此次游走的起始点,v表示游走过程中停留的节点;

D(v‘)表示节点v’的度数;

α是继续随机游走的概率(一般取值为0.85)

(3)

实验

3.1 在基于LFR基准的网络上

表1 两种人工网络图的参数设置

结果如下:

图1 算法在LFR-5000上的NMI比较

图2 算法在LFR-20000上的NMI比较

由图1、图2可知,除了在挖掘混合参数mu值为0.2的LFR-20000的社区结构时,BMLPA算法[6]的准确度由于COPRA-EP之外,在其它数据集上,COPRE-EP算法在准确度上的表现均优于其他三个算法。

图3 算法在LFR-5000上的Qov比较

图4 算法在LFR-20000上的Qov比较

由图3、图4可知,当mu值较低时,不同社区之间的连边就少。导致社区边缘节点和社区内部节点的标签差异被弱化,不能很好的区分他们,所以算法中用到的更新序列并不能达到理想中的效果;随着mu值得增大,COPRA-EP算法的挖掘出来的社区质量均优于其他算法。

3.2 在真实数据集上

表2 数据集基本信息

表3 算法在真实数据集上的NMI比较

从表3中得知,在挖掘Karate和football数据集上,本文提出的COPRO-EP算法核BMLPA算法在准确性上相同,并且优于其他算法;而本文算法在挖掘Amazon的社区结构时的准确度优于其他算法。

表4 算法在真实数据集上的Qov比较

从表4中,可以看出本文算法得到的社区结构模块度值较高,表现较好。

算法时间复杂度分析

              在一个具有m条边,n个节点的社会网络中,节点的平均度数记为d

COPRA算法的时间复杂度为

因此COPRA-EP各阶段时间复杂度如下:

与COPRA算法相同部分:

计算所有节点熵值:

根据熵值产生更新序列:O(n)

计算所有节点的PR值:O(nd2

  • 所以COPRA-EP算法总的时间复杂度约为:O(γmlogγmn)

参考文献

[1]张昌理,王一蕾,吴英杰,苏斌勇,王晓东. 基于信息熵和局部相关性的多标签传播重叠社区发现算法[J]. 小型微型计算机系统,2016,37(08):1645-1650. [2017-09-28].

[2] Gregory S. Finding overlapping communities in networks by label propagation[J]. New Journal of Physics,2010,12( 10) : 103018.

[3] Zhao Y,Li S,Chen X. Community detection using label propagation in entropic order[C]. Computer and Information Technology ( CIT) ,2012 IEEE 12th International Conference on,IEEE,2012: 18-24.

[4] Leung I X Y,Hui P,Lio P,et al. Towards real-time community detection in large networks[J]. Physical Review E,2009,79 ( 6) : 66-107.

[5] Haveliwala T H. Topic-sensitive pagerank[C]. Proceedings of the 11th International Conference on World Wide Web,ACM,2002: 517-526.

[6] Wu Z H,Lin Y F,Gregory S,et al. Balanced multi-label propagation for overlapping community detection in social networks[J]. Journal of Computer Science and Technology,2012,27 ( 3) : 468- 479.

社区发现研究报告——基于信息熵和局部相关性的多标签传播重叠社区发现算法相关推荐

  1. 社会网络中基于标签传播的社区发现新算法

    社会网络中基于标签传播的社区发现新算法 文章发表时间 :2012年3月 1. 本文贡献 提出了基于标签影响值的社区发现发算法,在接近线性的时间复杂度下,选取一个小的顶点集合作为种子集进行传播 综合考虑 ...

  2. 社区发现之标签传播算法(LPA)

    在Graph领域,社区发现(Community detection)是一个非常热门且广泛的话题,后面会写一个系列,该问题实际上是从子图分割的问题演变而来,在真实的社交网络中,有些用户之间连接非常紧密, ...

  3. 【知识图谱】两种 Python 方法实现社区发现之标签传播算法(LPA)

    在Graph领域,社区发现(Community detection)是一个非常热门且广泛的话题,后面会写一个系列,该问题实际上是从子图分割的问题演变而来,在真实的社交网络中,有些用户之间连接非常紧密, ...

  4. 网络算法系列之社区发现(一):标签传播算法

    社区发现简介   社区发现问题实际上是从子图分割的问题演变而来.在社交网络中,有些用户连接非常紧密,有些用户连接较为稀疏,这些连接紧密的用户可以看做一个社区,而社区之间连接较为稀疏.下图就展示了一个社 ...

  5. 标签传播算法_复杂网络社区发现算法汇总

    社区发现 这篇文章汇总了一些常见的社区发现概念和算法,包括 Modularity Q Fast Unfolding(Louvain Algorithm) LPA SLPA KL算法 GN算法 社区: ...

  6. 基于链接密度聚类的重叠社区发现算法

    基于链接密度聚类的重叠社区发现算法 文章发表时间:2013年12月 1. 传统社区算法的局限性 传统社区算法是将网络划分为若干各互不相连的社区,每个节点都必须隶属与唯一的社区,然而,在实际的社交网络中 ...

  7. 基于特征选择的局部敏感哈希位选择算法

    点击上方蓝字关注我们 基于特征选择的局部敏感哈希位选择算法 周文桦, 刘华文, 李恩慧 浙江师范大学数学与计算机科学学院,浙江 金华 321001 摘要:作为主流的信息检索方法,局部敏感哈希往往需要生 ...

  8. 【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量熵)

    <三体>中对监听员的日常工作有这样一段描述: ...1379 号监听站已经存在了上千年,像这样的监听站,在三体世界中有⼏千个,它们全神贯注地聆听着宇宙间可能存在的智慧⽂明的信息... .. ...

  9. 基于信息熵确立权重的topsis法_一种基于改进多目标粒子群算法的受端电网储能优化配置方法与流程...

    本发明涉及受端电网中储能的规划问题,具体涉及一种基于改进多目标粒子群算法的受端电网储能优化配置方法. 背景技术: 随着煤炭等非可再生.高污染的能源总量日益减少,我国的电能结构正由火力发电向低碳化的清洁 ...

  10. 用networkx、igraph实现社区发现——LPA(标签传播算法)

    一.LPA简介 LPA全称为Label Propagation Algorithm,是一个基于标签传播的非重叠社区发现算法.通过LPA可以对用户群进行聚类,从而实现用户画像. 推荐系统初期,当标签数远 ...

最新文章

  1. adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)
  2. MATLAB_no.1:入门作业_histeq():_imhist()_(男孩的三个图,以及文字描述)
  3. Android运行时异常“Binary XML file line # : Error inflat
  4. java 泛型调用方法调用_java – 如何使用泛型调用最具体的方法?
  5. 5部高分学科纪录片,在家也能受益良多!
  6. 使用uicollectionView时需要注意的问题
  7. Netty-1-一个简单的服务器实例
  8. html之页面元素印射
  9. linux安装opencv让输入密码,Linux下安装OpenCV步骤
  10. paip.java c# .net php python调用c++ c dll so windows api 总结
  11. Windows10家庭版远程桌面登录——RDPWrap
  12. Android Launcher研究与开发——桌面的初步定制化
  13. 前端rem布局知识总结
  14. 【所见即所得】数据分析最有用的25个 Matplotlib图【附代码】
  15. BUFF67 DM蓝牙5.2双模热插拔PCB
  16. Deeplink(深度链接)拉起App,我是这样做到的
  17. 视频图像数据处理八:将rgb视频图像转换为yuv420格式视频图像
  18. 远程视图 RemoteViews
  19. 机器人自动驾驶中的时间同步
  20. CVPR2022|比VinVL快一万倍!人大提出交互协同的双流视觉语言预训练模型COTS,又快又好!

热门文章

  1. 学习了pr后的收获_pr心得体会
  2. 第74句Lies, Damned Lies And Statistics: How Bad Statistics Are Feeding Fake News
  3. Android WebView优化
  4. 这三个方法让你实现电脑截图转文字的操作
  5. 怎么用虚拟机安装Windows XP?
  6. GO分析(cytoscape)
  7. 自动驾驶笔记-轨迹跟踪-综述
  8. FME 坐标系使用(二)----关于Beijing54坐标系和Xian80坐标系说明的补充
  9. SPI通信协议详解(四)
  10. C语言编程学习必备的一些网站,干货收藏!