移动终端客户社团的划分方法和系统与流程

文档序号:13288205阅读:307来源:国知局
技术领域本发明涉及移动通信数据挖掘技术领域,尤其涉及一种移动终端客户社团的划分方法和系统。

背景技术:
移动手机终端已成为人们进行信息交流的重要手段,移动手机的通信日志是社交关系在互联网上的体现,通信数据为社交规律的发现提供了研究样本。通过分析通信数据,根据客户需求找到客户感兴趣的社会团体和核心成员,这一方法也被称为社团划分方法,社团划分的结果映射了现实中的团体,具有实际意义。随着移动手机的广泛应用,移动互联网快速发展,使得客户产生和应用的数据呈现飞速增长的趋势。移动互联网的海量数据的出现和数据结构的改变,给电信行业运营商管理和分析处理数据带来了巨大的挑战。目前,在数据挖掘的聚类分析中,通常使用DBSCAN算法、OPTICS算法、EAGLE算法等,都有各自的缺陷,不能准确地找出该移动手机客户所在的社团关系,不能准确地进行移动通信数据的挖掘,影响各移动业务的推广。

技术实现要素:
有鉴于此,本发明要解决的一个技术问题是提供一种移动终端客户社团的划分方法,能够根据移动终端的通话日志生成移动终端的客户社团。一种移动终端客户社团的划分方法,包括:收集移动终端的通话日志;选定移动终端号码作为初始种子点,对初始种子点构建社团;查找社团中所有顶点的邻居节点,形成邻居节点集合;逐一计算所述邻居节点集合中所有邻居节点的密度变化率;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。根据本发明的一个实施例,进一步的,对所述初始种子点构建社团包括:根据所述初始种子点建立种子点集合;使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。根据本发明的一个实施例,进一步的,当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。根据本发明的一个实施例,进一步的,设置所述迭代运算的最大深度为L。根据本发明的一个实施例,进一步的,所述邻居节点的密度变化率Δρ为:Δρ=CiLi-CjLj;]]>其中,Δρ为邻居节点i的密度变化率;Ci为引入邻居节点i之后所述社团中的紧密团的数量;Cj为引入邻居节点i之前所述社团中的紧密团的数量;Li为引入邻居节点i之后所述社团中的顶点总数;Lj为引入邻居节点i之前所述社团中的顶点总数。根据本发明的一个实施例,进一步的,所述通话日志的内容包括:主叫号码、被叫号码、通话日期、通话时长和基站位置。本发明要解决的一个技术问题是提供一种移动终端客户社团的划分系统,能够根据移动终端的通话日志生成移动终端的客户社团。一种移动终端客户社团的划分系统,包括:客户日志收集单元,用于收集移动终端的通话日志;种子点更新单元,用于选定移动终端号码作为初始种子点;社团构建单元,用于对所述初始种子点构建社团;邻居节点查找单元,用于查找所述社团中所有顶点的邻居节点,形成邻居节点集合;密度计算单元,用于逐一计算所述邻居节点集合中所有邻居节点的密度变化率;有效节点判断单元,用于当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;其中,当所述邻居节点集合中的所有元素的密度变化率小于零时,则社团划分结束,生成最终的客户社团。根据本发明的一个实施例,进一步的,所述社团构建单元,包括:种子点集合子模块,用于根据所述初始种子点建立种子点集合;极大团计算子模块,用于使用Bron-Kerbosch算法计算出所述种子点集合中的所有极大团;社团生成子模块,用于根据极大团的紧密连接程度,计算出在所有极大团中的紧密团,将所述紧密团合并为所述社团。根据本发明的一个实施例,进一步的,迭代运算单元,用于当任一邻居节点的密度变化率大于零时,对所述社团的邻居节点进行迭代运算,具体包括:根据合并后的社团,查找所述合并后的社团中所有顶点的邻居节点,形成新的邻居节点集合;逐一计算新的邻居节点集合的所有邻居节点的密度变化率,并判断所述密度变化率的大小;当任一邻居节点的密度变化率大于零时,则判定该邻居节点为有效节点,将所述有效节点合并到所述社团中;当所述邻居节点集合中的所有元素的密度变化率小于零时,社团划分结束。根据本发明的一个实施例,进一步的,所述迭代运算单元设置迭代运算的最大深度为L。根据本发明的一个实施例,进一步的,所述密度计算单元计算所述邻居节点的密度变化率Δρ为:Δρ=CiLi-CjLj;]]>其中,Δρ为邻居节点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)在生成树上选择合适位置断开,得到相应的社团划分。为了评判划分结果的优劣,该算法提出了一种新的模块度指标:EQ=12mΣiΣv∈C,w∈C1OvOw[Avw-kvkw2m].]]>式中Qv是节点v所属的社团的数目。通常选择在EQ值最大的位置对生成树进行切割,进而得到理想的社团划分。但是,由于EAGLE算法采用了团作为节点来凝聚,即其划分方法(也就是边界条件)是基于社团的相似度来进行社团划分。而在移动手机客户社团分析过程中,无法判断任意两个社团的相似度,即使两个团的结构(点数,边数)相近,也不能简单地认为两个团属于一个大的社团。因此,EAGLE算法不适用与移动手机客户社团的分析过程。现有技术还提出了一种发现交叠社团的快速层次化算法,其针对大多数层次聚类算法无法识别实际复杂网络中存在的交叠社区等缺陷,提出一种度量社团间连通性的指标,并在此基础上设计一种发现交叠社团的快速层次化算法“F-HOC”。F-HOC以社团连通性为依据,用凝聚法对“k-团”进行弱社团检测、递归合并,以达到网络可交叠层次化快速聚类的目的。F-HOC算法从极大团开始进行扩展,F-HOC先找出所有大于等于k的极大团即k-团,k一般取3~6。社团连通性CAB是评价两个社团连接是否紧密的指标:CAB=|EAB|+|EO′|+2|EO||EAB|+|EA|+|EB|.]]>参数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∈某个数据元素集合
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1