一种基于改进的密度峰值聚类的社交网络社区发现方法技术

技术编号:19142010 阅读:22 留言:0更新日期:2018-10-13 08:57
本发明专利技术公开了基于改进的密度峰值聚类的社交网络社区发现方法,该方法首先为网络中的每个用户计算两个指标:局部密度和相对距离,其中局部密度的计算采用高斯核密度估计,而相对距离则表示用户与密度比它大而离它最近的点之间的距离。然后,基于高斯分布选取局部密度很大且相对距离相对较大的点作为社区中心,剩余的非中心点则被分配到密度比它大而离它最近的点所在的社区当中。最后,基于合并因子来度量两个社区之间的距离,合并因子大于给定阈值的社区被合并为一个社区。与现有技术相比,本发明专利技术可以同时发现社交网络中的球形和非球形的社区结构,在获得较高的准确性的前提下,只需要更少的参数,解决了任意形状社区的聚类问题。

A social network community detection method based on improved density peak clustering

The invention discloses a social network community discovery method based on improved density peak clustering. The method first calculates two indices for each user in the network: local density and relative distance, in which the local density is calculated by Gaussian kernel density estimation, and the relative distance indicates that the user and the density are larger than it and the distance is the most from it. The distance between near points. Then, points with large local density and relatively large distance are selected as community centers based on Gaussian distribution, and the remaining non-central points are allocated to the communities with denser and nearest points. Finally, based on the merging factor to measure the distance between two communities, the communities whose merging factor is greater than a given threshold are merged into one community. Compared with the prior art, the invention can simultaneously discover spherical and non-spherical community structures in social networks, and solves the clustering problem of arbitrarily shaped communities with fewer parameters and higher accuracy.

【技术实现步骤摘要】
一种基于改进的密度峰值聚类的社交网络社区发现方法
本专利技术属于数据挖掘
,更具体地,涉及一种基于改进的密度峰值聚类的社交网络社区发现方法。
技术介绍
Web2.0时代,网络空间定位技术趋于成熟,使得基于位置的社交网络(LBSNs)得到快速发展,例如Foursqure,大众点评等,人们之间的交流更加方便快捷,社交网络的社区化日趋明显。对于一组给定的数据对象,聚类分析的目标是将其划分成若干个非空子集,其中每个子集将作为一个社区,使得社区内的对象彼此之间很相似,而不同社区之间的对象则彼此有很大差异。对于社交网络中社区结构的聚类分析已经成为现代网络分析中的一个研究热点,这个过程中产生了许多优秀的聚类方法。基于划分的聚类方法,如K-Means以及K-Means++等,使用距离来表示两个节点之间的相似性,因此这类方法大部分都只能发现球形的社区,而对于非球形的社区发现则效果不尽人意;基于密度的聚类方法,如DBSCAN等,以及基于谱聚类的方法,如SC等,能发现非球形的社区结构,然而,这些方法引入了较多的参数,如何选择合适的参数以及对于稀疏网络如何保证鲁棒性成为上述方法不得不面临的问题;密度峰值聚类DPC方法主要基于对社区中心的两种假设,将那些具有较大的局部密度p以及相对较大的相对距离δ的用户选为社区中心,将那些非中心用户分配到比其密度更大而离他最近的用户所在的社区当中,该方法参数较少,且能发现任意形状的社区,然而,DPC需要在以ρ为横坐标δ为纵坐标的决策图上手动选择社区中心,且其时间复杂度为O(n2),限制了DPC在大数据集上的应用。综上所述,目前已有的聚类方法大部分都只能发现球形的社区,而对于非球形的社区发现则效果不尽人意,密度峰值聚类方法可以用于发现任意形状的社区,然而该方法需要手动选取社区中心,同时会分裂较为稀疏的社区,从而限制了该方法的应用。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有技术非球形社区聚类效果差、需人工选取社区中心的技术问题。为实现上述目的,第一方面,本专利技术实施例提供了一种基于改进的密度峰值聚类的社交网络社区发现方法,包括以下步骤:S1.收集社交网络中所有用户的签到数据,并初始化社区集合C为空集;S2.基于所有用户的签到数据,构建用户距离矩阵Dm×m,m为用户数;S3.基于用户距离矩阵Dm×m计算截断距离dc;S4.基于用户距离矩阵Dm×m和截断距离dc,为每个用户计算局部密度ρ和相对距离δ,标准化处理得到ρ′和δ′,定义γ=ρ′×δ′;S5.基于γ值判断每个用户是否为社区中心,若是,则生成以该用户为中心的社区,并将该社区插入到社区集合C;否则,将该用户分配到局部密度比它大且离它最近的用户所在社区;S6.输出社区集合C,社区集合C中所有社区即为发现的社区。具体地,步骤S1包括:用U=(u1,u2,...,um)来表示用户集合,其中,m表示用户数;用Ai=(ui1,ui2,...,uia)表示用户ui的属性集合,其中,a为用户ui的属性数,uia表示用户ui的第a个属性;用V=(v1,v2,...,vn)表示签到地点集合,其中,n表示签到地点数;用T=(t1,t2....,tl)表示时间窗口集合,其中,l表示时间窗口数;矩阵中矩阵元素表示用户ui在ty时间窗口内,在地点vx上的签到次数。具体地,步骤S2中矩阵Dm×m中矩阵元素dij表示用户ui与uj之间的距离,其计算公式如下:式中,datr(ui,uj)表示用户ui与uj属性之间的欧式距离,a表示用户ui的属性数,uik表示用户ui的第k个属性;dcheckin(ui,uj)表示用户ui与uj签到数据之间的欧氏距离,n表示签到地点数,表示用户ui在ty时间窗口内,在地点vx上的签到次数。具体地,步骤S3中计算截断距离dc的计算方法为:对于m个用户,形成m*(m-1)/2个用户对(ui,uj),将所有用户对的距离dij存储在数组B[m*(m-1)/2]中,对该数组进行升序排序,取数组元素作为dc的值,q取值范围为[1%,2%]。具体地,步骤S4中局部密度ρi的计算公式为:其中,dij表示用户ui与uj之间的距离,m表示用户数;相对距离δi表示用户ui与局部密度比他大而离他最近的用户之间的距离,计算公式为:其中,P为所有用户ρ值的集合。具体地,步骤S5包括以下步骤:S501.将步骤S4得到的所有用户的γ值放到集合Γ,Γ={γ1,γ2,...,γm},m表示用户数;S502.假定Г整体上服从期望为μγ、方差为的高斯分布,记为:分别计算μγ和σγ;S503.对用户的γ值进行降序排序,得到排序后的集合{γs1,γs2,...,γsi,...,γsm},其中,γsi表示排序后集合第i个位置的γ值,下标si表示γsi在集合Γ中的位置;S504.针对排序后集合中的每个γsi,若γsi>μγ+2σγ,则认为用户usi是社区中心,生成以用户usi为中心的社区{usi},并将该社区并入社区集合C;否则,将usi分配到局部密度比它大且离它最近的用户所在社区。可选地,在步骤S5和S6之间,还存在以下步骤:(1)将步骤S5得到的社区集合记为C,C={c1,c2,...cK},K表示社区个数;(2)C*表示合并后的社区集合,初始化为空集,并选定一个合并阈值τ;(3)生成一幅无向图G(V,E),其中,V是无向图G中节点的集合,E是无向图G中节点之间边的集合,节点集合V中的每个节点对应社区集合C中的一个社区,即V={c1,c2,...cK},节点之间边的集合E初始化为空集,即节点之间不存在边;(4)对社区集合C中任意两个社区ci和cj,1≤i,j≤K,计算合并因子ω(ci,cj)和ω(cj,ci),若合并因子ω(ci,cj)>τ且ω(cj,ci)>τ,则在无向图G中的节点ci和节点cj之间标记一条边(ci,cj),表明社区ci和cj需要进行合并,并将这条边插入到边的集合E中;合并因子的计算公式如下:其中,|ci|和|cj|分别表示社区ci和cj中的用户的个数,x表示用户,Ψ为二值函数,计算公式如下:(5)在无向图G(V,E)中找到所有的极大连通子图,而每个极大连通子图都对应一个合并后的社区,将该合并后的社区插入到合并后的社区集合C*中;(6)用合并后的社区集合C*替换原社区集合C。可选地,τ的取值范围为[1%,10%]。第二方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述社区发现方法。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:(1)通过使用密度峰值对社区中心进行描述,可以发现社交网络中的非球形社区,从而很好的解决了任意形状社区的聚类问题;(2)本方法只有截断距离dc和合并阈值τ两个参数,且dc的取值具有鲁棒性,因此与已有的大部分聚类方法相比,本方法只需要更少的参数就可以达到较高的聚类质量;(3)本方法在实施过程中没有随机因素,也没有迭代优化的过程,因此对于待聚类数据的输入顺序不敏感,且多次实施本方法得到的聚类结果是相同的。附图说明图1为本专利技术实施例提供的一种基于改进的密度峰值聚类的社交网络社区发现方法流程示意图。图2为本专利技术实施例提供的基于高本文档来自技高网
...

【技术保护点】
1.一种基于改进的密度峰值聚类的社交网络社区发现方法,其特征在于,包括以下步骤:S1.收集社交网络中所有用户的签到数据,并初始化社区集合C为空集;S2.基于所有用户的签到数据,构建用户距离矩阵Dm×m,m为用户数;S3.基于用户距离矩阵Dm×m计算截断距离dc;S4.基于用户距离矩阵Dm×m和截断距离dc,为每个用户计算局部密度ρ和相对距离δ,标准化处理得到ρ′和δ′,定义γ=ρ′×δ′;S5.基于γ值判断每个用户是否为社区中心,若是,则生成以该用户为中心的社区,并将该社区插入到社区集合C;否则,将该用户分配到局部密度比它大且离它最近的用户所在社区;S6.输出社区集合C,社区集合C中所有社区即为发现的社区。

【技术特征摘要】
1.一种基于改进的密度峰值聚类的社交网络社区发现方法,其特征在于,包括以下步骤:S1.收集社交网络中所有用户的签到数据,并初始化社区集合C为空集;S2.基于所有用户的签到数据,构建用户距离矩阵Dm×m,m为用户数;S3.基于用户距离矩阵Dm×m计算截断距离dc;S4.基于用户距离矩阵Dm×m和截断距离dc,为每个用户计算局部密度ρ和相对距离δ,标准化处理得到ρ′和δ′,定义γ=ρ′×δ′;S5.基于γ值判断每个用户是否为社区中心,若是,则生成以该用户为中心的社区,并将该社区插入到社区集合C;否则,将该用户分配到局部密度比它大且离它最近的用户所在社区;S6.输出社区集合C,社区集合C中所有社区即为发现的社区。2.如权利要求1所述的社区发现方法,其特征在于,步骤S1包括:用U=(u1,u2,...,um)来表示用户集合,其中,m表示用户数;用Ai=(ui1,ui2,...,uia)表示用户ui的属性集合,其中,a为用户ui的属性数,uia表示用户ui的第a个属性;用V=(v1,v2,...,vn)表示签到地点集合,其中,n表示签到地点数;用T=(t1,t2....,tl)表示时间窗口集合,其中,l表示时间窗口数;矩阵中矩阵元素表示用户ui在ty时间窗口内,在地点vx上的签到次数。3.如权利要求1所述的社区发现方法,其特征在于,步骤S2中矩阵Dm×m中矩阵元素dij表示用户ui与uj之间的距离,其计算公式如下:式中,datr(ui,uj)表示用户ui与uj属性之间的欧式距离,a表示用户ui的属性数,uik表示用户ui的第k个属性;dcheckin(ui,uj)表示用户ui与uj签到数据之间的欧氏距离,n表示签到地点数,表示用户ui在ty时间窗口内,在地点vx上的签到次数,l表示时间窗口数。4.如权利要求1所述的社区发现方法,其特征在于,步骤S3中计算截断距离dc的计算方法为:对于m个用户,形成m*(m-1)/2个用户对(ui,uj),将所有用户对的距离dij存储在数组B[m*(m-1)/2]中,对该数组进行升序排序,取数组元素作为dc的值,q取值范围为[1%,2%]。5.如权利要求1所述的社区发现方法,其特征在于,步骤S4中局部密度ρi的计算公式为:其中,dij表示用户ui与uj之间的距离,m表示用户数;相对距离δi表示用户ui与局部密度比他大而离他最近的用户之间的距离,计算公式为:其中,P为所有用户...

【专利技术属性】
技术研发人员:李玉华李瑞轩袁清亮辜希武徐明丽梁天安
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1