[发明专利]基于聚类算法对异构社会网络进行社区检测的方法有效
申请号: | 201410064395.1 | 申请日: | 2014-02-25 |
公开(公告)号: | CN103810288B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 刘静;焦李成;曾玉洁;马文萍;马晶晶;侯彪;公茂果 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 陕西电子工业专利中心61205 | 代理人: | 田文英,王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 算法 社会 网络 进行 社区 检测 方法 | ||
1.一种基于聚类算法对异构社会网络进行社区检测的方法,包括如下步骤:
(1)构建邻接矩阵:
(1a)输入所要检测的异构社会网络数据;
(1b)分别统计异构社会网络数据中的节点种类数和每类节点的个数;
(1c)用每类节点的个数和异构社会网络数据中节点之间的联系信息,构建异构社会网络的邻接矩阵;
(2)社区结构初始化:
给异构社会网络中的每一个节点赋予一个唯一的社区标号,使异构社会网络中的每个节点对应一个社区;
(3)计算局部模块度:
采用局部模块度方法,计算每个社区的局部模块度;
(4)获得参与融合社区标号集合:
(4a)按照下式,计算第t类节点的概率转移矩阵中的每个元素,得到概率转移矩阵;
其中,Pt(i1,i2,…ik)表示第t类节点的概率转移矩阵中的元素,t表示类别,1≤t≤k,k表示节点种类数,nt表示第t类节点的个数,A(i1,i2,…,ik)表示邻接矩阵中的元素,i1的取值范围为1≤i1≤n1,i2的取值范围为1≤i2≤n2,…,ik的取值范围为1≤ik≤nk,n1,n2,…,nk表示每类节点的个数;
(4b)由概率转移矩阵按照相似度方法,计算相似度矩阵;
(4b1)按照先验概率分布向量构建方法,构建每类先验概率分布向量;
(4b2)按照相似度向量方法,计算每个社区的相似度向量;
(4b3)按照下式,计算相似度矩阵中的每个元素,得到相似度矩阵:
其中,sim(i,j)表示相似度矩阵中的元素,k表示节点种类数,表示第i个社区中v类节点的个数,表示第i个社区中的第m个v类节点,表示第j个社区的第v类相似度中对应的第个元素,表示第j个社区中v类节点的个数,表示第j个社区中的第m个v类节点,表示第i个社区的第v类相似度中对应的第个元素,ni和nj分别表示第i个社区和第j个社区中的总节点个数;
(4c)将相似度矩阵中的相似度值按降序排列;
(4d)依次选取相似度值排序为1到40对应的社区标号,由这些社区标号组成参与融合社区标号集合;
(5)获得候选融合矩阵:
将参与融合社区标号集合中的每一个社区标号对应的相似度值,按降序排列,记录排列在1到40的社区标号,将所记录的社区标号组成候选融合社区集合;
(6)计算模块度差:
(6a)采用局部模块度方法,计算每个参与融合社区与其对应的每个候选社区合并之后的局部模块度;
(6b)由合并后的局部模块度减去参与融合社区的局部模块度,得到第一模块度差;
(6c)由合并后的局部模块度减去候选社区的局部模块度,得到第二模块度差;
(7)判断第一、第二模块度差是否符合融合标准:
比较第一模块度差、第二模块度差与局部模块度增量阈值的大小,如果第一模块度差和第二模块度差都大于局部模块度增量阈值,则执行步骤(8);否则,执行步骤(6);
(8)统一参与融合社区和候选社区的社区标号;
(9)记录新的社区结构:
记录异构社会网络中的每个节点所在的社区标号,得到当前循环的社区结构;
(10)判断是否有社区合并:
判断当前循环中是否有社区统一标号,如果当前循环中有社区统一标号,则执行步骤(3);否则,执行步骤(11);
(11)输出最佳社区结构:
在循环得到的所有社区结构中,找出社区局部模块度之和最大的社区结构,作为最终得到的社区结构输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410064395.1/1.html,转载请声明来源钻瓜专利网。