MapReduce平台上基于本地密度的聚类方法

文档序号:9261416阅读:402来源:国知局
MapReduce平台上基于本地密度的聚类方法
【技术领域】
[0001] 本发明设及数据处理技术领域,尤其设及一种MapRe化ce平台上基于本地密度的 聚类方法。
【背景技术】
[0002] 聚类分析是数据挖掘的一个重要算法。聚类分析W相似性为基础,在一个聚类中 的模式之间比不在同一聚类中的模式之间具有更多的相似性。聚类分析的算法可W分为划 分法、层次法、基于密度的方法、基于网格的方法、基于模型的方法等。随着云计算大数据时 代的到来,社会信息化和网络化的高速发展导致数据呈爆炸式增长。利用聚类分析遇到大 数据时,需要与分布式计算平台结合W摆脱计算机单机本身资源有限等所带来的限制。
[0003] MapRe化ce是谷歌提出的分布式并行计算框架,用于大规模数据集的并行运算, 主要通过"Map(映射)"和"Re化ce(化简)"该两个步骤来并行处理大规模的数据集。在 MapRe化ce平台上的计算过程中,输入数据首先被切分到集群的不同计算机上,集群中其 他计算机分配为执行Map作业或Re化ce作业;Map作业从输入数据中抽取出键值对<Key, Value〉,每一个键值对都作为参数传递给map函数,map函数产生的中间键值对被缓存在内 存中,缓存的中间键值对会被定期写入本地磁盘,而且该些中间键值对被分为R个区,R的 大小是由用户定义的,将来每个区会对应一个Re化ce作业;带有相同Key的键值对由同一 个Re化ce作业来处理,Re化ce作业读取该些中间键值对,对于每个唯一的键,都将键与关 联的值传递给re化ce函数,re化ce函数产生的输出会添加到该个分区的输出文件中。Map/ Re化ce作业和map/re化ce函数的区别;Map作业处理一个输入数据的分片,可能需要调用 多次map函数来处理每个输入键值对;Re化ce作业处理一个分区的中间键值对,期间要对 每个不同的键调用一次re化ce函数,Re化ce作业最终也对应一个输出文件。整个过程中, 输入数据是来自底层分布式文件系统的,中间数据是放在本地文件系统的,最终输出数据 是写入底层分布式文件系统。
[0004] 中国专利申请CN201410814330. 4 "虚拟人建立方法及装置"中设及了一种基于本 地密度的聚类方法。该基于本地密度的聚类方法主要包括;W连通图中的节点表征数据,并 W节点之间的边的长度表征数据之间的相似度,节点之间的边越短,节点所表征的数据之 间相似度越高;分别求出每个节点的本地密度化0,化0定义为连接本节点的长度低于预定 义值化的邻边的数目;分别求出每个节点的离散度Delta,Delta定义为本节点所有连接 更高化0值邻居节点的邻边中最短边的边长,若不存在该样的邻居节点,则取本节点最长 邻边的边长;将化0值和Delta值分别高于预设阔值R_T和D_T的节点标识为类的中屯、节 点;将非中屯、节点归类为到该非中屯、节点距离最短且化0值高于该非中屯、节点的中屯、节点 所属的类。边长表征节点之间属于同一个类的可能性(相似度)的衡量成ho表征当前节 点对其邻接点的重要性;Delta表征若W当前节点为类中屯、,其相对其他类中屯、的可区别 性。为了能实现对海量数据的处理,克服单机本身资源有限所带来的限制,亟需将该基于本 地密度的聚类方法在MapRe化ce平台上加W实现。

【发明内容】

[0005] 因此,本发明的目的在于提供一种MapRe化ce平台上基于本地密度的聚类方法, 实现对海量数据的处理,克服单机本身资源有限所带来的限制。
[0006] 为实现上述目的,本发明提供了一种MapRe化ce平台上基于本地密度的聚类方 法,包括:
[0007] 步骤10、对待聚类的数据进行预处理,构造W节点表征数据的连通图,并W节点之 间的边的长度表征数据之间的相似度,节点之间的边越短,节点所表征的数据之间相似度 越局;
[000引步骤20、W连通图中的节点和边的信息作为输入数据,通过Map作业生成包括节 点W及邻边信息的键值对,通过Re化ce作业生成包括节点、节点的本地密度化0W及节点 所有邻边信息的输出,化0定义为连接本节点的长度低于预定义值化的邻边的数目;
[0009] 步骤30、对于步骤20中Re化ce作业的输出,通过Map作业生成包括节点、节点 化0、邻居节点化0W及邻边信息的键值对,对每个节点,通过Re化ce作业遍历节点化0、所 有邻居节点化0W及所有邻边信息,得出每个节点的离散度Delta,Delta定义为本节点所 有连接更高化0值邻居节点的邻边中最短边的边长,若不存在该样的邻居节点,则取本节 点最长邻边的边长;再结合预定规则来进行类标识。
[0010] 其中,所述预定规则包括;节点的化〇和Delta分别高于作为输入参数的阔值R_ T和阔值D_T,则该节点为一个类的中心该节点的类标识取其自身类标识;否则,节点的类 标识取距离其最近且化0更高的邻居节点的类标识;
[0011] 孤立节点的类标识为自身类标识。
[001引其中,所述预定规则包括:预先划分化0值可能取值区间W及对应的Delta值可能 取值区间,如果节点的Rho值属于Rho值可能取值区间且节点的Delta值属于对应的Delta 值可能取值区间,则该节点为一个类的中屯、,该节点的类标识取其自身类标识;否则,节点 的类标识取距离其最近且化0更高的邻居节点的类标识;
[0013] 孤立节点的类标识为自身类标识。
[0014] 其中,步骤20中,连通图中的节点和边的信息作为输入数据的数据格式包括标识 节点的字段、标识邻居节点的字段、W及标识该节点和邻居节点之间邻边的边长的字段。
[0015] 其中,步骤20中Re化ce作业的输出存储于关系数据库或键值数据库中。
[0016] 其中,步骤30中的Map作业中,通过对步骤20中Re化ce作业的输出进行笛卡尔 积,实现对邻居节点化0的遍历。
[0017] 其中,步骤20包括;
[0018] 步骤21、连通图中的节点和边的信息作为输入数据经由Map作业生成键值对,其 中,键包括标识节点的字段,值包括标识邻居节点的字段和标识该节点和邻居节点之间邻 边的边长的字段;
[0019] 步骤22、对键值对按照键所包括的节点进行分区,键包括相同节点的键值对分配 至同一分区;
[0020] 步骤23、对于同一分区内的键值对按照键所包括的节点进行分组,键包括相同节 点的键值对分配至同一组;
[0021] 步骤25、经由Re化ce作业,通过对属于同一组的键值对的值的迭代来遍历同一节 点的所有的邻边,生成包括节点、节点的本地密度化0W及节点所有邻边信息的输出。
[0022] 其中,步骤20还包括:
[0023] 步骤21中,键还包括标识该节点和邻居节点之间邻边的边长的字段;
[0024] 步骤24、对于属于同一组的键值对按照键所包括的邻边的边长进行排序。
[0025] 其中,步骤24中的排序为升序排序。
[0026] 其中,步骤25中Re化ce作业的输出为键值对,其中,键包括标识节点的字段,值包 括标识节点的字段、标识节点化0的字段W及标识节点所有邻边信息的字段。
[0027] 其中,步骤30包括;
[002引步骤31、对于步骤20中Re化ce作业的输出经由Map作业生成键值对,其中,键包 括标识节点的字段,值包括标识邻居节点的字段、标识该节点和邻居节点之间邻边的边长 的字段、标识该邻居节点化0的字段和标识该节点化0的字段;
[0029] 步骤32、对键值对按照键所包括的节点进行分区,键包括相同节点的键值对分配 至同一分区;
[0030] 步骤33、对于同一分区内的键值对按照键所包括的节点进行分组,键包括相同节 点的键值对分配至同一组;
[0031] 步骤35、经由Re化ce作业,对每个节点,通过对属于同一组的键值对的值的迭代 来遍历节点化0、所有邻居节点化0W及所有邻边信息,得出每个节点的离散度Delta,再结 合预定规则来进行类标识。
[0032] 其中,步骤30还包括:
[0033] 步骤31中,键还包括标识该邻居节点化〇的字段;
[0034] 步骤34、对于属于同一组的键值对按照键所包括的邻居节点化0进行排序。
[0035] 综上所述,本发明借助流行的MapRe化ce分布式计算思想在集群上实现了基于本 地密度的聚类,弱化了处理时单机本身资源有限等所带来的限制,能实现对海量数据的处 理,更快的完成聚类操作。
【附图说明】
[003
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1