CN108647739A - 一种基于改进的密度峰值聚类的社交网络社区发现方法 - Google Patents
一种基于改进的密度峰值聚类的社交网络社区发现方法 Download PDFInfo
- Publication number
- CN108647739A CN108647739A CN201810475496.6A CN201810475496A CN108647739A CN 108647739 A CN108647739 A CN 108647739A CN 201810475496 A CN201810475496 A CN 201810475496A CN 108647739 A CN108647739 A CN 108647739A
- Authority
- CN
- China
- Prior art keywords
- community
- user
- distance
- indicate
- merging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Abstract
本发明公开了基于改进的密度峰值聚类的社交网络社区发现方法,该方法首先为网络中的每个用户计算两个指标:局部密度和相对距离,其中局部密度的计算采用高斯核密度估计,而相对距离则表示用户与密度比它大而离它最近的点之间的距离。然后,基于高斯分布选取局部密度很大且相对距离相对较大的点作为社区中心,剩余的非中心点则被分配到密度比它大而离它最近的点所在的社区当中。最后,基于合并因子来度量两个社区之间的距离,合并因子大于给定阈值的社区被合并为一个社区。与现有技术相比,本发明可以同时发现社交网络中的球形和非球形的社区结构,在获得较高的准确性的前提下,只需要更少的参数,解决了任意形状社区的聚类问题。
Description
技术领域
本发明属于数据挖掘技术领域,更具体地,涉及一种基于改进的密度峰值聚类的社交网络社区发现方法。
背景技术
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为本发明实施例提供的基于高斯分布的社区中心选取及用户社区分配方法伪代码示意图。
图3为本发明实施例提供的基于合并因子的社区合并方法的伪代码示意图。
图4为本发明实施例提供的合并因子的示意图。
图5为本发明实施例提供的合并后的社区集合示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种基于改进的密度峰值聚类的社交网络社区发现方法流程示意图。如图1所示,该方法包括步骤S1至步骤S6。
S1.收集社交网络中所有用户的签到数据,并初始化社区集合C为空集;
S2.基于所有用户的签到数据,构建用户距离矩阵Dm×m,m为用户数;
S3.基于用户距离矩阵Dm×m计算截断距离dc;
S4.基于用户距离矩阵Dm×m和截断距离dc,为每个用户计算局部密度ρ和相对距离δ,标准化处理得到ρ′和δ′,定义γ=ρ′×δ′;
S5.基于γ值判断每个用户是否为社区中心,若是,则生成以该用户为中心的社区,并将该社区插入到社区集合C;否则,将该用户分配到局部密度比它大且离它最近的用户所在社区;
S6.输出社区集合C,社区集合C中所有社区即为发现的社区。
步骤S1具体地包括:收集所有用户的签到数据,根据每个用户ui的签到数据构建该用户的签到数据矩阵并初始化社区集合C为空集;
用U=(u1,u2,...,um)来表示用户集合,其中,m表示用户数;
用Ai=(ui1,ui2,...,uia)表示用户ui的属性集合,其中,a为用户属性数,uia表示用户ui的第a个属性;用户属性包括用户的年龄、性别等;
用V=(v1,v2,...,vn)表示签到地点集合,其中,n表示地点数;
用T=(t1,t2....,tl)表示时间窗口集合,其中,l表示时间窗口数。
时间窗口表示时间段,例如,对于收集到的1天内的签到数据,按照1小时为一个时间窗口,则可以得到24个时间窗口,此时,T={t1,t2,...,t24}={1,1,...,1}。
矩阵中矩阵元素表示用户ui在ty时间窗口内,在地点vx上的签到次数。
在步骤S1之后、步骤S2之前还可以进行数据预处理。
由于收集到的原始数据集中存在脏数据,因此需要对其进行预处理,清除在无效的地点上的签到数据,同时只保留那些平均每星期至少完成一次签到的用户(称为活跃用户)。另外,一些用户的个人属性也可能存在缺失值,对于此类数据也需要进行清除。
步骤S2.基于用户的签到数据构建用户距离矩阵Dm×m,矩阵Dm×m中矩阵元素dij表示用户ui与uj之间的距离。
式中,datr(ui,uj)表示用户ui与uj属性之间的欧式距离,dcheckin(ui,uj)表示用户ui与uj签到数据之间的欧氏距离,i=1,2,...,m,j=1,2,...,m。
步骤S3具体地包括:基于用户距离矩阵Dm×m计算截断距离dc。
对于m个用户,形成m*(m-1)/2个用户对(ui,uj),将所有用户对的距离dij存储在数组B[m*(m-1)/2]中,对该数组进行升序排序,则可以取数组元素作为dc的值,q取值范围为[1%,2%]。
图2为本发明实施例提供的基于高斯分布的社区中心选取及用户社区分配方法伪代码示意图。该方法首先将社区集合C初始化为空集,然后计算每个用户的ρ值、δ值和γ值,接着计算随机变量Γ的均值μγ和标准差σγ,之后对用户的γ值进行降序排序,使得在从前到后进行非中心用户的分配时能够保证γ值大的用户先行分配,这是因为γ值小的用户的社区归属更容易被γ值较大的用户所影响。随后,对所有用户进行遍历,如果一个用户的γ值大于μγ+2σγ,则该用户被选为社区中心,以该用户为中心生成一个新的社区,并将该用户并入社区中心集合中,否则如果一个用户的γ值小于等于μγ+2σγ,则该用户为非中心用户,将其分配大密度比他大而离他最近的用户所在的社区当中,至此,整个社区中心选取及用户分配方法结束。
步骤S4.基于用户距离矩阵Dm×m和截断距离dc,为每个用户计算局部密度ρ和相对距离δ,标准化处理得到ρ′和δ′,定义γ=ρ′×δ′。
局部密度ρi的计算公式为
其中,dij表示用户ui与uj之间的距离,dc表示截断距离;
相对距离δi表示用户ui与密度比他大而离他最近的用户之间的距离,计算公式为:
其中,P为所有用户ρ值的集合。
局部密度ρ和相对距离δ的值域通常是不同的,而值域的不同可能会影响数据的分析。一个具有较大值域的属性具有较大的影响或者较高的权重,因此会影响到值域较小的属性,反之亦然。为了避免较大的ρ值会影响较小的δ值,或者较大的δ值影响较小的ρ值,需要对其进行标准化,使得两者的值域相同,即分别到一个共同的区间内。
本发明采用最小-最大标准化方法来对ρ和δ进行标准化,计算公式如下:
其中,P和Δ分别为所有用户ρ值和δ值的集合。
γi的计算公式如下:
γi=ρ′i*δ′i (8)
S5.基于γ值判断每个用户是否为社区中心,若是,则生成以该用户为中心的社区,并将该社区插入到社区集合C;否则,将该用户分配到局部密度比它大且离它最近的用户所在社区。
具体地,步骤S5包括以下步骤:
S501.将步骤S4得到的所有用户的γ值放到集合Γ,Γ={γ1,γ2,...,γm},m表示用户数。
一般而言,社区中心具有以下两个特点:
(1)社区中心的γ值大于数据集中的大部分用户的γ值;
(2)在一个社交网络中,社区中心的数目往往比较少,而大部分用户都是非中心用户。
对于社区中心的第一个特点是很容易理解的,这是由密度峰值聚类方法的两个假设得出的,即社区中心的局部密度很大且与密度比他大而离他最近的用户的距离相对较大,根据公式(8),γ值作为ρ和δ的乘积,其值也会很大。而社区中心的第二个特点可以理解为:一个群体中处于核心位置的人是很少的,而大部分的人都是普通成员,例如,微博中的大V,社会团体中的领导,学成成绩中的优秀等。
对于数据集中的所有用户,γ值较大的用户和γ值较小的用户的数目都相对较少,大部分用户的γ值都分布在均值附近。考虑到高斯分布在各领域中有着极其重要的应用价值,其规律存在于生活中的方方面面。例如,学生的成绩分布中,高分成绩和低分成绩的学生人数一般比较少,而中等成绩占绝大多数,人们的身高、体重、智商、收入等也都符合高斯分布,体现出中间多而两端少的趋势。
高斯分布指出独立分布的随机变量的观测样本的平均值在分布中收敛到正常值,根据中心极限定理,大量独立同分布的随机事件,整体上服从高斯分布。因此,我们可以假定,随机变量Γ整体上服从期望为μγ、方差为的高斯分布。
S502.假定Γ整体上服从期望为μγ、方差为的高斯分布,记为:分别计算μγ和σγ,计算公式如下:
S503.对用户的γ值进行降序排序,得到排序后的集合{γs1,γs2,...,γsi,...,γsm},其中,γsi表示排序后集合第i个位置的γ值,下标si表示γsi在集合Γ中的位置。
例如,用户u1的γ值等于0.2,用户u2的γ值等于0.8,用户u3的γ值等于0.5,则Γ={γ1,γ2,γ3}={0.2,0.8,0.5}。降序排序后得到的集合{γs1,γs2,γs3}={γ2,γ3,γ1}={0.8,0.5,0.2}。
S504.针对排序后集合中的每个γsi,若γsi>μγ+2σγ,则认为用户usi是社区中心,生成以用户usi为中心的社区{usi},并将该社区并入社区集合C;否则,将usi分配到局部密度比它大且离它最近的用户所在社区。
下面给出社区中心的定义:
定义1:社区中心。对于数据集中的一个用户ui,ui是社区中心当且仅当γi>μγ+2σγ,这表明ui的局部密度很大且相对距离相对较大。
对于一个用户较为稀疏的社区,由于社区中心的“中心位置”不是非常突出,即有多个用户的ρ值和δ值相对较大,与社区中心较为接近,因此DPC可能会识别出多个社区中心,从而将一个较大的社区分裂成多个小的子社区。针对这一问题,本发明提出了一种基于合并因子的社区合并模型,如果两个社区之间的合并因子超过一定的阈值则将这两个社区合并为一个较大的社区。
直观上看,如果两个社区很接近,则说明它们很有可能是从一个较大的社区分裂出来的。假设有一种度量方法可以给出两个社区之间的接近程度,那么就可以选定一个合并阈值,对接近程度大于合并阈值的社区进行合并。为了找到这样的度量方法,本发明首先引入了合并因子的概念。
图3为本发明实施例提供的基于合并因子的社区合并方法的伪代码示意图。如图3所示,该方法首先将合并后的社区集合C*初始化为空集,然后对集合C*中的社区对(ci,cj)进行遍历,如果ω(ci,cj)>τ且ω(cj,ci)>τ,则合并ci和cj。需要注意的是,合并的过程为异步合并,具体做法是:首先将社区集合C看成一幅图G,每个社区都是G中的一个节点,节点与节点之间没有链接。然后,对于节点ci和cj,如果ω(ci,cj)>τ且ω(cj,ci)>τ,则在节点ci和cj之间标记一条链接。最后,在图G中找到所有的极大连通子图,而每一个极大连通子图都将作为一个社区并入到集合C*中,其中,极大连通子图的查找可以用并查集数据结构来实现。根据经验,对于大部分的数据集,τ的取值为5%时可以获得相对较好的聚类效果。
具体地,在步骤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中;
定义2:合并因子。对于给定的两个社区ci和cj,其中i,j≤k,k是社区的个数,定义ω函数来度量ci和cj之间的合并因子,合并因子ω的计算公式如下:
其中,|ci|和|cj|分别表示社区ci和cj中的用户的个数,x表示用户,Ψ为二值函数,计算公式如下:
由公式(13)可以看出,Ψ函数指示了社区ci中是否存在一个用户y,使得x和y之间的距离小于截断距离dc,而ω函数则是社区ci中满足此条件的用户数占社区ci中用户总数的百分比。ω函数在一定程度上反映了两个社区之间合并的概率,ω值越大,表明ci和cj距离越接近,从而更有可能被合并。需要注意的是,ω函数并不具有对称性,即一般情况下ω(ci,cj)≠ω(cj,ci)。图4为本发明实施例提供的合并因子的示意图。从图4中可以看出,ω函数具有单向性。
有了合并因子来度量两个社区之间的接近程度,为了确定两个社区之间是否需要合并,一个较为简单的办法就是可以选定一个合并阈值τ,对合并因子大于τ的社区进行合并。对于两个社区ci和cj,其合并因子可能会出现三种情况:
(1)ω(ci,cj)和ω(cj,ci)都大于等于τ;
(2)ω(ci,cj)和ω(cj,ci)都小于等于τ;
(3)ω(ci,cj)和ω(cj,ci)中一个大于τ,一个小于τ。
对于两个社区ci和cj,考虑到如果社区ci中存在一个用户x,使得x与cj中的大部分用户的距离都很接近,而ci中的其他用户离cj都很远,这样会导致ω(cj,ci)偏大,而ω(ci,cj)偏小。很明显,这种情况下,ci和cj是不应该合并的。根据定义2,合并因子反映了一个社区与另一个社区合并的倾向性,一般而言,只有两个社区的合并倾向性都很高的情况下,这两个社区才有可能被合并。举例来说,有两个社会团体A和B,A社团的主席记为CA,而B社团的主席记为CB。假设CA在B社团也有任职,与B社团的成员关系都比较亲密,这会导致社团B对于社团A的合并倾向性较高。而由于社团A中的成员与社团B中的所有人关系都很一般,则社团A对社团B的合并倾向性较低。和明显,这种情况A和B不应该被合并,因此,我们可以认定只有情况1才符合社区合并的条件,而情况2和情况3则不符合社区合并的条件,即当且仅当ω(ci,cj)和ω(cj,ci)都大于等于τ时,ci和cj才会被合并。
显而易见,τ越小,则满足合并条件的社区越多,当τ=0时,则所有社区的合并因子都大于τ,即所有社区会被合并为一个最大的社区,该社区包含了数据集中的所有用户。τ越大,则满足合并条件的社区越少,当τ=1时,则没有任何社区的合并因子大于τ,即不会有任何社区被合并。
τ的取值范围为[1%,10%]。
(5)在无向图G(V,E)中找到所有的极大连通子图,而每个极大连通子图都对应一个合并后的社区,将该合并后的社区插入到合并后的社区集合C*中。
(6)用合并后的社区集合C*替换原社区集合C。
图5为本发明实施例提供的合并后的社区集合示意图。如图5所示,在合并之前,社区集合C={c1,c2,c3,c4,c5,c6},共6个社区。则无向图G中有6个节点,分别对应社区集合C中的6个社区。在合并过程之后,有(c1,c2),(c1,c3),(c4,c5)共3条边被标记,因此有c1∪c2∪c3,c4∪c5,c6共3个社区,此时C*={c1∪c2∪c3,c4∪c5,c6}。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述的存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (9)
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为所有用户ρ值的集合。
6.如权利要求1所述的社区发现方法,其特征在于,步骤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分配到局部密度比它大且离它最近的用户所在社区。
7.如权利要求1所述的社区发现方法,其特征在在于,在步骤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表示用户,Ψ为二值函数,计算公式如下:
其中,y表示用户,dxy表示用户x与用户y之间的距离;
(5)在无向图G(V,E)中找到所有的极大连通子图,而每个极大连通子图都对应一个合并后的社区,将该合并后的社区插入到合并后的社区集合C*中;
(6)用合并后的社区集合C*替换原社区集合C。
8.如权利要求7所述的社区发现方法,其特征在于,τ的取值范围为[1%,10%]。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的社区发现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810475496.6A CN108647739B (zh) | 2018-05-17 | 2018-05-17 | 一种基于改进的密度峰值聚类的社交网络社区发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810475496.6A CN108647739B (zh) | 2018-05-17 | 2018-05-17 | 一种基于改进的密度峰值聚类的社交网络社区发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647739A true CN108647739A (zh) | 2018-10-12 |
CN108647739B CN108647739B (zh) | 2020-09-18 |
Family
ID=63756711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810475496.6A Active CN108647739B (zh) | 2018-05-17 | 2018-05-17 | 一种基于改进的密度峰值聚类的社交网络社区发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647739B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109727150A (zh) * | 2018-12-29 | 2019-05-07 | 广东德诚科教有限公司 | 一种用于多人在线学习平台的社区识别算法 |
CN110363674A (zh) * | 2019-06-26 | 2019-10-22 | 陕西师范大学 | 基于ap聚类的班级社交群体检测方法 |
CN112417312A (zh) * | 2020-11-22 | 2021-02-26 | 同济大学 | 一种网络社交平台用户分类方法、存储介质及终端 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313251A1 (en) * | 2007-06-15 | 2008-12-18 | Li Ma | System and method for graph coarsening |
CN102810113A (zh) * | 2012-06-06 | 2012-12-05 | 北京航空航天大学 | 一种针对复杂网络的混合型聚类方法 |
US20150331865A1 (en) * | 2014-05-16 | 2015-11-19 | International Business Machines Corporation | Management of online community merge events |
CN107301423A (zh) * | 2017-05-25 | 2017-10-27 | 天津大学 | 自适应的社区发现方法 |
CN107659467A (zh) * | 2017-09-26 | 2018-02-02 | 云南大学 | 动态社交网络中基于联盟形成博弈的社区检测方法 |
CN107909497A (zh) * | 2017-10-17 | 2018-04-13 | 重庆邮电大学 | 一种基于改进密度峰值的多粒度社区发现方法 |
WO2018077039A1 (zh) * | 2016-10-27 | 2018-05-03 | 腾讯科技(深圳)有限公司 | 社区发现方法、装置、服务器及计算机存储介质 |
-
2018
- 2018-05-17 CN CN201810475496.6A patent/CN108647739B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313251A1 (en) * | 2007-06-15 | 2008-12-18 | Li Ma | System and method for graph coarsening |
CN102810113A (zh) * | 2012-06-06 | 2012-12-05 | 北京航空航天大学 | 一种针对复杂网络的混合型聚类方法 |
US20150331865A1 (en) * | 2014-05-16 | 2015-11-19 | International Business Machines Corporation | Management of online community merge events |
WO2018077039A1 (zh) * | 2016-10-27 | 2018-05-03 | 腾讯科技(深圳)有限公司 | 社区发现方法、装置、服务器及计算机存储介质 |
CN107301423A (zh) * | 2017-05-25 | 2017-10-27 | 天津大学 | 自适应的社区发现方法 |
CN107659467A (zh) * | 2017-09-26 | 2018-02-02 | 云南大学 | 动态社交网络中基于联盟形成博弈的社区检测方法 |
CN107909497A (zh) * | 2017-10-17 | 2018-04-13 | 重庆邮电大学 | 一种基于改进密度峰值的多粒度社区发现方法 |
Non-Patent Citations (7)
Title |
---|
MENGMENG WANG等: ""An improved density peaks-based clustering method for social circle discovery in social networks"", 《NEUROCOMPUTING》 * |
XIAOFENG WANG等: ""Locating Structural Centers: A Density-Based Clustering Method for Community Detection"", 《PLOS ONE》 * |
XUEYING BAI等: ""An overlapping community detection algorithm based on density peaks"", 《NEUROCOMPUTING》 * |
尹霄冲: ""社交网络中重叠社区发现和多关系社区发现方法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李玉: ""基于点距离和聚类的社区发现算法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
罗乐: ""基于核心成员识别的网络社区发现及跟踪方法"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
胡吉明: "《社会网络环境下基于用户关系的信息推荐服务研究》", 31 March 2015 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109727150A (zh) * | 2018-12-29 | 2019-05-07 | 广东德诚科教有限公司 | 一种用于多人在线学习平台的社区识别算法 |
CN109727150B (zh) * | 2018-12-29 | 2021-08-24 | 广东德诚科教有限公司 | 一种用于多人在线学习平台的社区识别方法 |
CN110363674A (zh) * | 2019-06-26 | 2019-10-22 | 陕西师范大学 | 基于ap聚类的班级社交群体检测方法 |
CN110363674B (zh) * | 2019-06-26 | 2023-06-02 | 陕西师范大学 | 基于ap聚类的班级社交群体检测方法 |
CN112417312A (zh) * | 2020-11-22 | 2021-02-26 | 同济大学 | 一种网络社交平台用户分类方法、存储介质及终端 |
CN112417312B (zh) * | 2020-11-22 | 2023-02-10 | 同济大学 | 一种网络社交平台用户分类方法、存储介质及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN108647739B (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11949747B2 (en) | Apparatus, method and article to facilitate automatic detection and removal of fraudulent user information in a network environment | |
Burns et al. | Women also snowboard: Overcoming bias in captioning models | |
CN104050247B (zh) | 实现海量视频快速检索的方法 | |
Young et al. | A survey of methodologies for the treatment of missing values within datasets: Limitations and benefits | |
WO2015135321A1 (zh) | 基于金融数据的社会关系挖掘的方法及装置 | |
CN107895038B (zh) | 一种链路预测关系推荐方法及装置 | |
CN108647800B (zh) | 一种基于节点嵌入的在线社交网络用户缺失属性预测方法 | |
Ormerod et al. | Inflation/unemployment regimes and the instability of the Phillips curve | |
CN108833139B (zh) | 一种基于类别属性划分的ossec报警数据聚合方法 | |
CN108647739A (zh) | 一种基于改进的密度峰值聚类的社交网络社区发现方法 | |
Yang et al. | Automatic social circle detection using multi-view clustering | |
CN107622326A (zh) | 用户分类、可用资源预测方法、装置及设备 | |
Han et al. | Linking social network accounts by modeling user spatiotemporal habits | |
Chen et al. | An extended study of the K-means algorithm for data clustering and its applications | |
Fagni et al. | Fine-grained prediction of political leaning on social media with unsupervised deep learning | |
CN115545103A (zh) | 异常数据识别、标签识别方法和异常数据识别装置 | |
CN110598126A (zh) | 基于行为习惯的跨社交网络用户身份识别方法 | |
CN108304568A (zh) | 一种房地产公众预期大数据处理方法及系统 | |
Faith | The unimodal relationship between species’ functional traits and habitat gradients provides a family of indices supporting the conservation of functional trait diversity | |
CN113821827A (zh) | 保护多方数据隐私的联合建模方法及装置 | |
Papayiannis et al. | On clustering uncertain and structured data with Wasserstein barycenters and a geodesic criterion for the number of clusters | |
Ghnemat et al. | Classification of Mobile Customers Behavior and Usage Patterns using Self-Organizing Neural Networks. | |
CN109902129A (zh) | 基于大数据分析的保险代理人归类方法及相关设备 | |
Niu et al. | An improved spectral clustering algorithm for community discovery | |
Zhao et al. | Adaptive multilevel thresholding based on multiobjective artificial bee colony optimization for noisy image segmentation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |