CN105813235A - 移动终端客户社团的划分方法和系统 - Google Patents
移动终端客户社团的划分方法和系统 Download PDFInfo
- Publication number
- CN105813235A CN105813235A CN201410849935.7A CN201410849935A CN105813235A CN 105813235 A CN105813235 A CN 105813235A CN 201410849935 A CN201410849935 A CN 201410849935A CN 105813235 A CN105813235 A CN 105813235A
- Authority
- CN
- China
- Prior art keywords
- corporations
- neighbor node
- density
- rate
- change
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种移动终端客户社团的划分方法和系统,其中的方法包括:收集通话日志,选定初始种子点构建社团;查找社团中所有顶点的邻居节点,形成邻居节点集合;逐一计算邻居节点集合中所有邻居节点的密度变化率;当密度变化率大于零时,则判定该邻居节点为有效节点,将有效节点合并到社团中;当邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束。本发明的方法和系统,可对移动手机客户社团进行有效更新,避免单凭紧密团的连接紧密程度而错误地将无关社团进行合并的缺陷,以团的密度变化率为划分边界,逐步拓展社团的查找划分,能准确地找出移动手机客户所在的社团关系,准确度高,其运算速度快,解决了现有算法错误率高的问题。
Description
技术领域
本发明涉及移动通信数据挖掘技术领域,尤其涉及一种移动终端客户社团的划分方法和系统。
背景技术
移动手机终端已成为人们进行信息交流的重要手段,移动手机的通信日志是社交关系在互联网上的体现,通信数据为社交规律的发现提供了研究样本。通过分析通信数据,根据客户需求找到客户感兴趣的社会团体和核心成员,这一方法也被称为社团划分方法,社团划分的结果映射了现实中的团体,具有实际意义。
随着移动手机的广泛应用,移动互联网快速发展,使得客户产生和应用的数据呈现飞速增长的趋势。移动互联网的海量数据的出现和数据结构的改变,给电信行业运营商管理和分析处理数据带来了巨大的挑战。目前,在数据挖掘的聚类分析中,通常使用DBSCAN算法、OPTICS算法、EAGLE算法等,都有各自的缺陷,不能准确地找出该移动手机客户所在的社团关系,不能准确地进行移动通信数据的挖掘,影响各移动业务的推广。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种移动终端客户社团的划分方法,能够根据移动终端的通话日志生成移动终端的客户社团。
一种移动终端客户社团的划分方法,包括:收集移动终端的通话日志;选定移动终端号码作为初始种子点,对初始种子点构建社团;查找社团中所有顶点的邻居节点,形成邻居节点集合;逐一计算所述邻居节点集合中所有邻居节点的密度变化率;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。
根据本发明的一个实施例,进一步的,对所述初始种子点构建社团包括:根据所述初始种子点建立种子点集合;使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。
根据本发明的一个实施例,进一步的,当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。
根据本发明的一个实施例,进一步的,设置所述迭代运算的最大深度为L。
根据本发明的一个实施例,进一步的,所述邻居节点的密度变化率Δρ为:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
根据本发明的一个实施例,进一步的,所述通话日志的内容包括:主叫号码、被叫号码、通话日期、通话时长和基站位置。
本发明要解决的一个技术问题是提供一种移动终端客户社团的划分系统,能够根据移动终端的通话日志生成移动终端的客户社团。
一种移动终端客户社团的划分系统,包括:客户日志收集单元,用于收集移动终端的通话日志;种子点更新单元,用于选定移动终端号码作为初始种子点;社团构建单元,用于对所述初始种子点构建社团;邻居节点查找单元,用于查找所述社团中所有顶点的邻居节点,形成邻居节点集合;密度计算单元,用于逐一计算所述邻居节点集合中所有邻居节点的密度变化率;有效节点判断单元,用于当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;其中,当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。
根据本发明的一个实施例,进一步的,所述社团构建单元,包括:种子点集合子模块,用于根据所述初始种子点建立种子点集合;极大团计算子模块,用于使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;社团生成子模块,用于根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。
根据本发明的一个实施例,进一步的,迭代运算单元,用于当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,具体包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。
根据本发明的一个实施例,进一步的,所述迭代运算单元设置迭代运算的最大深度为L。
根据本发明的一个实施例,进一步的,所述密度计算单元计算所述邻居节点的密度变化率Δρ为:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
根据本发明的一个实施例,进一步的,所述通话日志的内容包括:主叫号码、被叫号码、通话日期、通话时长和基站位置。
本发明的移动终端客户社团的划分方法和系统,可对移动手机客户社团进行有效更新,避免单凭紧密团的连接紧密程度而错误地将无关社团进行合并的缺陷,结合了移动手机客户社团的网络特点,以团的密度变化率为划分边界,逐步拓展社团的查找划分,能准确地找出移动手机客户所在的社团关系。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为根据本发明的移动终端客户社团的划分方法的一个实施例的流程图;
图2为根据种子点进行社团构建的算法流程图;
图3为根据本发明的移动终端客户社团的划分方法的对初始种子点进行社团构建的流程图;
图4为根据本发明的移动终端客户社团的划分方法的执行迭代运算的步骤流程图;
图5为图G1的组成示意图;
图6为图G1中加入新节点的组成示意图;
图7为图G2的组成示意图;
图8为根据本发明的移动终端客户社团的划分系统的一个实施例的示意图;
图9为根据本发明的移动终端客户社团的划分系统的一个实施例中社团构建的示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。下面结合各个图和实施例对本发明的技术方案进行多方面的描述。
在现有技术中,使用多种算法用于数据挖掘的聚类分析。例如,DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)算法,即一种基于高密度连通区域的基于密度的聚类。对象ο的密度可以用靠近ο的对象数度量。一个用户指定的参数ε>0用来指定每个对象的邻域半径。对象ο的ε-邻域是以ο为中心,以ε为半径的空间。邻域的密度可以用对象数量度量。
该算法使用另一个参数MinPts指定密度阀值。如果一个对象的ε-邻域至少包含MinPts个对象,则该对象是核心对象。给定一个对象集D,该算法可以识别关于参数ε和MinPts的所有核心对象,并以核心对象和它们的邻域形成稠密区域,也就是簇。同时该算法采用密度可达和密度相连来将小的稠密区域组合成一个大的稠密区域。
利用DBSCAN算法可以将一组对象划分为不同的簇,也就是圈子。还有一种算法OPTICS,可以不需要预先指定特定的密度阀值,但该算法不输出数据集聚类,而是输出簇排序,这个排序是所有分析对象的线性表。得到簇排序以后,还需要人为划、定边界条件,从而将某些簇划分为更大的簇。
DBSCAN和OPTICS算法都需要计算对象点之间的欧氏距离。而在移动通话圈子分析中,很难建立欧氏距离。DBSCAN必须指定半径,密度对半径很敏感,以及半径内最少的对象数。而这两个参数都需要经验,难以确定。以上两种算法都以数据点为对象,在移动话单分析过程中,无法评估数据点代表的客户之间的亲密程度。并且以上两种算法都是聚类划分算法,需要将数据对象集合作为初始条件进行运算。而移动话单日志是海量数据,每月的数据量都可以达到0.5T的级别,要直接对这样海量的数据进行划分和排序,一般的硬件环境都无法做到。
现有技术中提出了一种基于凝聚算法的新算法“EAGLE”,它是一种能够同时探测出社团层次性和重叠性的算法,它通过凝聚的方法来划分社团,但它与传统的凝聚算法在研究对象上有着很大的区别。传统凝聚算法的研究对象是网络中的节点,通过节点之间的不断凝聚来实现社团划分,而EAGLE的研究对象则是网络中的极大团,通过极大团之间的不断凝聚来实现社团划分。
EAGLE算法分为两个步骤:(1)生成网络的树状图;(2)在生成树上选择合适位置断开,得到相应的社团划分。为了评判划分结果的优劣,该算法提出了一种新的模块度指标:
式中Qv是节点v所属的社团的数目。通常选择在EQ值最大的位置对生成树进行切割,进而得到理想的社团划分。
但是,由于EAGLE算法采用了团作为节点来凝聚,即其划分方法(也就是边界条件)是基于社团的相似度来进行社团划分。而在移动手机客户社团分析过程中,无法判断任意两个社团的相似度,即使两个团的结构(点数,边数)相近,也不能简单地认为两个团属于一个大的社团。因此,EAGLE算法不适用与移动手机客户社团的分析过程。
现有技术还提出了一种发现交叠社团的快速层次化算法,其针对大多数层次聚类算法无法识别实际复杂网络中存在的交叠社区等缺陷,提出一种度量社团间连通性的指标,并在此基础上设计一种发现交叠社团的快速层次化算法“F-HOC”。
F-HOC以社团连通性为依据,用凝聚法对“k-团”进行弱社团检测、递归合并,以达到网络可交叠层次化快速聚类的目的。F-HOC算法从极大团开始进行扩展,F-HOC先找出所有大于等于k的极大团即k-团,k一般取3~6。社团连通性CAB是评价两个社团连接是否紧密的指标:
参数CAB越大,则表示连接两社团的边占两社团总边数的比例越大,表明两社团连接越紧密,两者越有可能属于同一个社团。F-HOC以社团连通性指标为依据,用凝聚法对k-团进行合并判断。
但是,该方法虽然可以应用与移动客户社团划分,但是如果一个未被合并的小规模团与已有相对大规模的社团出现连接时,会被该方法合并,但是该小团可能是另外一个完全无关的大的社团的组成,结果会将两个大的社团合并起来,造成结果与真实情况不相符,简单说,如果是小团和小团合并,或者大团和大团合并,该方法可以正常得到结果,如果是小团和大团合并,则该方法可能得到错误结果。尤其是移动通话客户圈的凝聚过程,基本都是小团与大团的合并过程,所以该算法不能很好得到真实结果。
因此,有必要结合移动手机客户的网络特征,根据移动手机客户所形成的社团的独特性,采用适当的划分方法以找准社团。
图1为根据本发明的移动终端客户社团的划分方法的一个实施例的流程图。移动手机客户的主要特征是:
(1)主被叫关系,可以将主被叫过程形成“边”,主被叫本身形成节点;
(2)主被叫互相呼叫的次数越多,表明越亲密;
(3)主叫呼叫大量被叫,可能是客服号码,这类号码需要排除;
(4)近似的主被叫呼叫关系,不一定是相互认识的人,也可以属于完全不相关的独立社团;
(5)一个小的主被叫呼叫关系圈,可能是一个大的社团的一部分,而这个小的圈可以连接任意多个大的社团,比如3个快递员的圈子,可能会连接多个大的社团,所以,单凭连接紧密程度,很容易错误得将无关社团合并;
(6)移动手机客户通话日志数据量巨大,以广州为例,月数据量超过300G,而且通话日志文件基本都是小于10M的小文件(这会要求无法直接采用先求解团,再合并的方式)。
针对移动客户的以上特点,基于极大团密度的移动手机客户社团划分方法基于Hadoop并行运算系统执行社团划分,具体包括以下步骤:如图1所示:
步骤S101:对移动手机的客户通话日志进行收集,所述客户通话日志包括主叫号码、被叫号码、通话日期、通话时长和基站位置;
步骤S102:选定手机号码作为初始种子点;
步骤S103:对所述初始种子点进行社团构建;
步骤S104:查找所述社团中所有顶点的邻居节点,形成邻居节点集合;
步骤S105:逐一计算出所述邻居节点集合中所有邻居节点的密度变化率;并进一步判断是否所有密度变化率小于零。当任一邻居节点的密度变化率大于零时,则执行步骤S106;当所述邻居节点集合中的所有元素的密度变化率小于零时,则执行步骤S107。
步骤S106:判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;
步骤S107:社团划分结束。
上述实施例中的移动终端客户社团的划分方法,结合移动手机客户的网络特征,根据移动手机客户所形成的社团的独特性,基于极大团密度进行移动手机客户社团划分,找准与真实情况相吻合的移动手机客户社团,以便于对移动手机客户数据进行挖掘分析。
在一个实施例中,本发明的移动终端客户社团的划分方法的社团模型如下:移动通话日志主要包括了通话的主被叫号码,通话日期、时间,通话时长,基站位置等信息。本发明的社团模型将主被叫号码设置为节点,将呼叫记录设置为边,并将呼叫过程的时间,时长,位置等信息设置为边的特性,从而根据通话日志构建中间数据表。
社团模型的构建主要分为以下几个环节:
1.原始通话日志收集,清洗,合并,构建中间表;
2.种子点选择;
3.根据种子点进行社团构建;
4.划分后的社团的合并。
本发明提到的算法主要解决以上第三个环节的问题,属于整个模型建立过程的关键步骤。
算法初始化条件:种子点,初始为人为指定号码(或者根据某些条件筛选出来的号码)作为种子,在迭代过程中,将建立新的种子集合,为每次迭代得到的紧密团的节点集合。具体算法的流程如如图2所示:
步骤s01,输入种子点V0和G0中间表。G0中间表的形成:建立Hadoop的MapReduce程序,map过程中,key=主叫号码+被叫号码,Value=主叫,被叫,其他属性。Reduce过程中,对相同Key进行合并得到中间表G0;
步骤s02,建立种子点集合A1;
步骤s03,利用Hive查询A1中各节点的邻居,构建集合N1;根据N1建立图G1;
步骤s04,利用Bron–Kerbosch算法计算G1中的极大团,并构建C1集合;
步骤s05,按照非公共顶点有边连接合并C1,得到子社团Q1;
步骤s06,查找Q1中除种子V0以外所有顶点的邻居,得到集合D1;
步骤s07,然后逐个计算密度变化率,如果变化率大于0,则该点有效,并放入E1集合。
步骤s08,判断D1是否全部无效,如果否,则进行步骤s09,合并Q1和E1,得到图G2;接着进入迭代过程。
如果在Dn集合中找不到更多的符合以上条件的节点,则算法终止,输出最终的社团结果。
Bron-Kerbosch算法用于计算图的最大全连通分量(团clique)。最大独立集:顶点集V中取K个顶点,其两两间无连接。最大团:顶点集V中取K个顶点,其两两间有边连接。最大团中顶点数量=补图的最大独立集中顶点数量补图定义:G=<V,E>;可以通过求其补图中最大团中顶点数量,就可得出原图中最大独立集中顶点数量了。
在一个实施例中,图3为根据本发明的移动终端客户社团的划分方法的对初始种子点进行社团构建的流程图;如图3所示,具体地,所述步骤S103包括:
步骤S201:根据所述初始种子点建立种子点集合;
步骤S202:利用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;
步骤S203:根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团;所述社团中包含的紧密团数量为N,顶点数量为M。
当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算。图4为根据本发明的移动终端客户社团的划分方法的执行迭代运算的步骤流程图,如图4所示,该迭代运算过程具体包括以下步骤:
步骤S301:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;
步骤S302:逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;
当任一邻居节点的密度变化率大于零时,则执行步骤S303;当所述邻居节点集合中的所有元素的密度变化率小于零时,则执行步骤S304
步骤S303:判定该邻居节点为有效节点,将所述有效节点合并到所述社团中,并循环执行所述步骤S301;
步骤S304:社团划分结束。
特别地,所述迭代运算的最大深度为L。当所述的密度变化率一直处于大于零的状态时,图4所示的迭代运算过程有可能进入死循环过程,因此,需要设置一个极限边界条件,即当迭代运算的最大深度为L,L为正整数。
当图4所述的迭代运算过程循环执行了L次后,则强行执行算法终止。优选地,所述最大深度L为10,当迭代运算次数超出10次时,则算法终止。
为了排除一些非关联的号码的干扰,例如客服号码,需要为构建的社团设置邻居节点数的最大值Zmax。优选地,邻居节点数的最大值Zmax设定为300,超出该值,则该邻居节点不参与邻居检测过程。
可以利用Hadoop并行运算系统执行社团划分。Hadoop是一个分布式系统基础架构,具有高容错性的特点,并且设计用来部署在低廉的硬件上;而且它提供高传输率来访问应用程序的数据,适合有着超大数据集(LargeDataSet)的应用程序。
用户可以在不了解分布式底层细节的情况下,利用Hadoop开发分布式程序,充分利用集群的威力高速运算和存储性能。本实施例在采用Hadoop并行运算系统执行对移动手机客户数据进行社团划分时,首先基于移动手机客户的数据特点建立Hadoop的编程模型MapReduce,以对大规模数据集(大于1TB)的并行运算。
具体地,基于Hadoop并行运算系统进行初始化时,基于图论(Graphtheory)数学知识,图(Graph)在数学领域中是由非空的顶点(Vertex)集合和描述顶点之间的关系,即边(Edge)的集合组成。其形式化定义为:G=(V,E),V={vi|vi∈某个数据元素集合},E={(vi,vj)|vi,vj∈V∧P(vi,vj)}或E={<vi,vj>|vi,vj∈V∧P(vi,vj)}。其中,G表示图,V是顶点的集合,E是边的集合。在集合E中,P(vi,vj)表示顶点vi和顶点vj之间有边相连。
在一个实施例中,首先根据一定条件指定或筛选初始种子点,形成初始图G0。具体地,在Hadoop的MapReduce模型中,进行映射(Map)过程中,种子点(Key)=主叫号码+被叫号码,顶点(Value)=主叫、被叫,或者其他属性。在简化(Reduce)过程中,对相同Key进行合并得到G0。
在初始化过程中,需要根据实际需要建立种子点集合A1;利用Hadoop的数据仓库工具Hive查询A1中各顶点的邻居节点,构建集合N1;然后根据N1建立图G1。
例如,如图5所示,是图G1的一种组成示意图。图中的顶点V0是种子集合A1的一个目标分析节点,图G1包括了集合元素{V0,V1,V2,V3,V4,V5}。采用Bron-Kerbosch算法计算图G1中的所有极大团,计算得到的所有极大团组成了集合C1。
假设通过计算获知集合C1包括几个极大团,分别是{V0,V1,V4}、{V0,V2,V3}、{V0,V3,V4}和{V0,V5,V6}。此时计算出紧密连接(即非公共顶点有边连接)的团(即紧密团),获得社团Q1={V0,V1,V4,V2,V3},则社团Q1的紧密团的数量为2,顶点的数量为5。
如图6所示,查找社团Q1中除了种子点V0以外所有顶点的邻居节点,假设只有邻居节点V7和V10,则得到集合D1={V7,V10},然后逐一计算出集合D1中的各个邻居节点的密度变化率。在一种优选的实施方式中,根据以下公式计算出任一邻居节点的密度变化率:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
在本实施例中,假设通过上式计算得到的邻居节点的密度变化率Δρ<0,而V10的密度变化率Δρ>0,则判定邻居节点V10有效,而邻居节点V7无效,并将V10放入Q1集合,并形成图G2,如图7所示。图G2包含了最新得到的Q2集合,即{V0,V1,V4,V2,V3,V10},也就是新的社团结构。
为了获得更为准确的社团划分结果,需要对新的社团进行迭代运算,以在新的社团的所有邻居节点中寻址符合以上公式条件的节点合并到该社团中,从而不断对社团进行更新,将所有满足该条件关系的邻居节点都合并到当前社团中。
通常,迭代过程只有在所有邻居节点集合中找不到更多的符合以上条件的节点时,算法才终止,并输出最终的社团结构;但是,当迭代深度达到一定程度时,为了避免大量的无关联数据的运算,通常需要进一步设置一个极限边界条件,即迭代最大深度来终止算法运行。
如图8所示,本发明提供一种移动终端客户社团的划分系统,此系统基于Hadoop并行运算系统执行社团划分。客户日志收集单元701对移动手机的客户通话日志进行收集,所述客户通话日志包括主叫号码、被叫号码、通话日期、通话时长和基站位置等;种子点更新单元702选定手机号码作为初始种子点;社团构建单元703对所述初始种子点进行社团构建;邻居节点查找单元704查找所述社团中所有顶点的邻居节点,形成邻居节点集合;密度计算单元705逐一计算出所述邻居节点集合中所有邻居节点的密度变化率。
在一个实施例中,所述密度计算器705还用于根据以下公式计算出任一邻居节点的密度变化率:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
有效节点判断单元706判断所述密度变化率的大小,包括:当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中,输出社团的最新结构;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。
如图9所示,种子点集合子模块801,用于根据所述初始种子点建立种子点集合;极大团计算子模块802利用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;社团生成子模块803根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团;所述社团中包含的紧密团数量为N,顶点数量为M。
迭代运算单元,用于当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,具体包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;
当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。所述迭代运算器的迭代运算最大深度为L。
上述实施例提供的移动终端客户社团的划分方法和系统,具有以下有益效果:
根据移动手机客户的网络特征,在种子点集合中根据各子集的连接紧密程度计算出极大团中的紧密团,利用紧密团构建社团后,再逐一计算其顶点的邻居节点的有效性,将有效节点并入该社团;因此可对移动手机客户社团进行有效更新,避免单凭紧密团的连接紧密程度而错误地将无关社团进行合并的缺陷,也基于移动手机号码进行种子点集合的更新,结合了移动手机客户社团的网络特点,以团的密度变化率为划分边界,逐步拓展社团的查找划分,因而基于对某一移动手机客户进行社团划分时,能准确地找出该移动手机客户所在的社团关系。
上述实施例提供的移动终端客户社团的划分方法和系统,通过紧密团的密度变化率来划分移动客户社团的边界。在实际使用中,可以对大规模日志数据进行分片处理,且通过紧密团的密度变化率来划分社团,准确度高,其运算速度快,且解决了EAGLE算法不适用于移动客户社团查找,以及F-HOC算法划分移动客户社团时错误率高的问题。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (12)
1.一种移动终端客户社团的划分方法,其特征在于,包括:
收集移动终端的通话日志;
选定移动终端号码作为初始种子点,对所述初始种子点构建社团;
查找所述社团中所有顶点的邻居节点,形成邻居节点集合;
逐一计算所述邻居节点集合中所有邻居节点的密度变化率;
当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;
当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。
2.如权利要求1所述的方法,其特征在于,所述对所述初始种子点构建社团包括:
根据所述初始种子点建立种子点集合;
使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;
根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。
3.如权利要求1或2所述的方法,其特征在于:
当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,包括:
根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;
逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;
当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;
当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。
4.如权利要求3所述的方法,其特征在于:
设置所述迭代运算的最大深度为L。
5.如权利要求4所述的方法,其特征在于:
所述邻居节点的密度变化率Δρ为:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
6.如权利要求1所述的方法,其特征在于:
所述通话日志的内容包括:主叫号码、被叫号码、通话日期、通话时长和基站位置。
7.一种移动终端客户社团的划分系统,其特征在于,包括:
客户日志收集单元,用于收集移动终端的通话日志;
种子点更新单元,用于选定移动终端号码作为初始种子点;
社团构建单元,用于对所述初始种子点构建社团;
邻居节点查找单元,用于查找所述社团中所有顶点的邻居节点,形成邻居节点集合;
密度计算单元,用于逐一计算所述邻居节点集合中所有邻居节点的密度变化率;
有效节点判断单元,用于当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;
其中,当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。
8.如权利要求7所述的系统,其特征在于:
所述社团构建单元,包括:
种子点集合子模块,用于根据所述初始种子点建立种子点集合;
极大团计算子模块,用于使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;
社团生成子模块,用于根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。
9.如权利要求8所述的系统,其特征在于,包括:
迭代运算单元,用于当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,具体包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。
10.如权利要求9所述的系统,其特征在于:
所述迭代运算单元设置迭代运算的最大深度为L。
11.如权利要求10所述的系统,其特征在于:
所述密度计算单元计算所述邻居节点的密度变化率Δρ为:
其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。
12.如权利要求7所述的系统,其特征在于:
所述通话日志的内容包括:主叫号码、被叫号码、通话日期、通话时长和基站位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849935.7A CN105813235B (zh) | 2014-12-31 | 2014-12-31 | 移动终端客户社团的划分方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410849935.7A CN105813235B (zh) | 2014-12-31 | 2014-12-31 | 移动终端客户社团的划分方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105813235A true CN105813235A (zh) | 2016-07-27 |
CN105813235B CN105813235B (zh) | 2019-04-16 |
Family
ID=56421499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410849935.7A Active CN105813235B (zh) | 2014-12-31 | 2014-12-31 | 移动终端客户社团的划分方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105813235B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108039068A (zh) * | 2018-01-05 | 2018-05-15 | 南京航空航天大学 | 一种基于航班延误传播的加权航空网络社团结构划分方法 |
CN114528439A (zh) * | 2020-11-23 | 2022-05-24 | 电科云(北京)科技有限公司 | 基于分布式系统的极大团枚举方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866355A (zh) * | 2010-06-11 | 2010-10-20 | 北京邮电大学 | 基于云计算的社会网络划分方法及系统 |
CN102393843A (zh) * | 2011-06-29 | 2012-03-28 | 广州市动景计算机科技有限公司 | 利用移动终端通讯信息建立用户关系的方法及系统 |
CN102456064A (zh) * | 2011-04-25 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 在社会网络中实现社区发现的方法 |
US20140340222A1 (en) * | 2013-05-17 | 2014-11-20 | Barry Thornton | Security and first-responder emergency lighting system |
-
2014
- 2014-12-31 CN CN201410849935.7A patent/CN105813235B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101866355A (zh) * | 2010-06-11 | 2010-10-20 | 北京邮电大学 | 基于云计算的社会网络划分方法及系统 |
CN102456064A (zh) * | 2011-04-25 | 2012-05-16 | 中国人民解放军国防科学技术大学 | 在社会网络中实现社区发现的方法 |
CN102393843A (zh) * | 2011-06-29 | 2012-03-28 | 广州市动景计算机科技有限公司 | 利用移动终端通讯信息建立用户关系的方法及系统 |
US20140340222A1 (en) * | 2013-05-17 | 2014-11-20 | Barry Thornton | Security and first-responder emergency lighting system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108039068A (zh) * | 2018-01-05 | 2018-05-15 | 南京航空航天大学 | 一种基于航班延误传播的加权航空网络社团结构划分方法 |
CN108039068B (zh) * | 2018-01-05 | 2021-08-24 | 南京航空航天大学 | 一种基于航班延误传播的加权航空网络社团结构划分方法 |
CN114528439A (zh) * | 2020-11-23 | 2022-05-24 | 电科云(北京)科技有限公司 | 基于分布式系统的极大团枚举方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105813235B (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
De Winter et al. | Combining temporal aspects of dynamic networks with node2vec for a more efficient dynamic link prediction | |
CN102724219B (zh) | 网络数据的计算机处理方法及系统 | |
Guo et al. | Evolutionary community structure discovery in dynamic weighted networks | |
CN109034562B (zh) | 一种社交网络节点重要性评估方法及系统 | |
CN108427891A (zh) | 基于差分隐私保护的邻域推荐方法 | |
CN110471957B (zh) | 基于频繁模式树的本地化差分隐私保护频繁项集挖掘方法 | |
CN109120465B (zh) | 基于模体的目标区域网络拓扑划分方法 | |
CN103888541A (zh) | 一种融合拓扑势和谱聚类的社区发现方法及系统 | |
CN110705045B (zh) | 一种利用网络拓扑特性构建加权网络的链路预测方法 | |
CN103020163A (zh) | 一种网络中基于节点相似度的网络社区划分方法 | |
Ferrara et al. | The role of strong and weak ties in Facebook: a community structure perspective | |
CN105678590A (zh) | 一种面向社交网络基于云模型的topN推荐方法 | |
Xu et al. | Finding overlapping community from social networks based on community forest model | |
CN103853739A (zh) | 动态社会关系网络社区演化识别以及稳定社区提取方法 | |
Gao et al. | Evolutionary community discovery in dynamic networks based on leader nodes | |
CN104700311B (zh) | 一种社会网络中的邻域跟随社区发现方法 | |
CN113297429A (zh) | 一种基于神经网络架构搜索的社交网络链路预测方法 | |
CN109345403A (zh) | 一种基于局部模块度的层次重叠社区发现方法 | |
CN105813235A (zh) | 移动终端客户社团的划分方法和系统 | |
CN112235254B (zh) | 一种高速主干网中Tor网桥的快速识别方法 | |
Pan et al. | Overlapping community detection via leader-based local expansion in social networks | |
CN108833461A (zh) | 基于网络分解的社交网络关键节点发现方法及系统 | |
Etemadi et al. | Pes: Priority edge sampling in streaming triangle estimation | |
CN109255433B (zh) | 一种基于相似性的社区检测的方法 | |
CN113890833B (zh) | 网络覆盖预测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |