基于Spark内存计算大数据平台的OPTICS点排序聚类方法技术

技术编号:15391646 阅读:107 留言:0更新日期:2017-05-19 04:52
本发明专利技术提供一种基于Spark大数据平台的OPTICS聚类算法,涉及计算机信息获取和处理技术。本发明专利技术通过对并行数据结构划分,得到最优数据集划分并生成对应的RDD,并行计算邻居样本数量和核心距离,对每个分区并行执行OPTICS算法得到每个分区的簇排序并持久化存储,通过簇排序给每个分区赋予簇后,通过合并分区,每个样本能够得到全局的簇号。利用Spark分布式并行技术,找到最优的划分结构,并行计算得到每个分区的簇排序。通过OPTICS的簇排序,用户可以从不同层次结构进行观察数据集的内在聚类结构。该方法可以处理串行算法不能处理的大规模的数据集,并大幅度提高得到聚类结果的时间。

OPTICS point sorting clustering method based on Spark memory computing large data platform

The invention provides a OPTICS clustering algorithm based on a large data platform of Spark, which relates to the acquisition and processing technology of computer information. The present invention based on parallel data structure, the optimal partition data set and generate the corresponding RDD, the number of samples and core parallel computing neighbor distance for each partition of the parallel execution of OPTICS algorithm for each partition of the clusters are sorted and stored, sorted by cluster for each partition given cluster, by merging partitions, each sample to get a global cluster number. Using the Spark distributed parallel technology, the optimal partitioning structure is found, and the cluster ordering of each partition is computed in parallel. By sorting OPTICS clusters, users can observe the intrinsic clustering structure of data sets from different hierarchical structures. This method can deal with large-scale data sets which can not be processed by serial algorithms, and can greatly improve the time of clustering results.

【技术实现步骤摘要】
基于Spark内存计算大数据平台的OPTICS点排序聚类方法
本专利技术涉及计算机数据挖掘、计算机信息处理

技术介绍
随着计算机信息领域的飞速发展,大量的数据从生活的各个方面被收集起来,互联网上各种各样信息的规模也在成几何倍数的增大,从海量的数据中迅速分析从而提取隐藏在数据中的信息变得越来越重要。聚类分析是数据分析的一个主要方法,聚类(clustering)是将数据对象进行分类的过程,使同一簇中的对象之间具有很高的相似度,而不同簇中的对象高度相异。与分类过程不同的是,聚类不依赖预先定义的类和类标号,同时聚类过程中的分类标准和类型数量均是未知的。近来聚类分析方法得到了相当多的关注。传统的聚类分析算法存在三个问题:第一,需要输入参数,但输入参数难以获取;第二,对输入参数特别敏感,参数设置的细微不同可能导致聚类的差别很大;第三,高维的数据集一般都具有非常倾斜的分布,全局密度参数不能刻画内置的聚类结构。基于密度的聚类方法OPTICS(OrderingPointToIdentifytheClusterStructure)是通过扩展传统的DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)算法,对数据集中数据对象通过计算基于密度的簇排序,从簇排序序列中提取有用的聚类信息的数据分析方法。OPTICS算法相对于传统的聚类算法,对输入参数不敏感。随着数据量的增大和数据维度的增加,采用传统的串行方法难以应对百万条以上的数据集,通常会出现时间过长,内存溢出和宕机等问题,不能满足现实中工程的需要。Spark是一个基于内存的分布式计算系统,是由UCBerkeleyAMPLab实验室开发的开源数据分析集群计算框架。拥有MapReduce的所有优点,与MapReduce不同的是,Spark将计算的中间结果数据持久地存储在内存中,通过减少磁盘I/O,使后续的数据运算效率更高。Spark的这种架构设计尤其适合于机器学习、交互式数据分析等应用。这些应用都需要重复地利用计算的中间数据。在Spark(基于内存计算框架)和HadoopMapReduce(并行计算框架)的性能基准测试对比中,运行基于内存的logisticregression,在迭代次数相同的情况下,Spark的性能超出HadoopMapReduce100倍以上。两者之间在计算过程中也存在一些不同之处,比如MapReduce输出的中间结果需要读写HDFS,而Spark框架会把中间结果保存在内存中。这些不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。而弹性分布式数据集(RDD,ResilientDistributedDatasets)是Spark框架的核心数据结构,它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。Spark将数据集运行的中间结果保存在内存中能够极大地提高性能,资源开销也极低,非常适合多次迭代的机器学习算法。文章ZAHARIAM,CHOWDHURYM,FRANKLINMJ,etal.Spark:clustercomputingwithworkingsets[C]//BookofExtremes.2010:1765-1773.采用基于Spark大数据平台并行聚类方法,能够快速的处理大规模的数据集。Spark的核心是RDD(resilientdistributeddataset),是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭代计算时要进行大量的磁盘IO操作。RDD正是解决这一缺点的方法。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术在处理大批量数据时进行聚类容易内存溢出、时间过长和无法运行宕机等缺点,本专利技术提出一种基于Spark(基于内存计算平台)大数据平台的通过点排序识别聚类结构OPTICS(OrderingPointsToIdentifyTheClusteringStructure)算法,能够处理大批量的数据集,并可以在极短的时间内得到簇排序。能够有效的解决上述问题,并可以在不同层次观察导出内在的聚类结构,满足用户的期望输出。本专利技术解决上述问题的技术方案是,提出一种基于内存计算Spark大数据平台的OPTICS算法,具体包括:读取大规模数据集,创建分布式数据集RDD,完成初始化操作;对数据结构进行并行划分,得到最优数据集分区;根据最优数据集分区生成的RDD,并行计算邻居样本数量和核心距离,对每个分区并行执行OPTICS(通过点排序识别聚类结构)算法可以得到每个分区的簇排序并持久化存储;通过簇排序给每个分区赋予簇号,合并分区,使每个样本得到全局的簇号。本专利技术利用Spark分布式并行技术,找到数据结构的最优划分结构,并行计算得到每个分区的簇排序,通过OPTICS算法的簇排序,用户可以从不同层次结构观察数据集的内在聚类结构。本专利技术具体包括以下步骤:从分布式文件系统HDFS(HadoopDistributedFileSystem,Hadoop)上读入数据集,并创建一个Spark的上下文SparkContext(程序运行初始环境)对象,利用对象的抽象数据结构函数parallelize(DataSet)或textFile(DataSetURL)创建分布式数据集RDD,创建完成的分布式数据集可以被并行操作。把RDD中每个样本通过map()(每行数据执行同一操作的函数)函数转换为对应的自定义类Point(用来存储每个样本的各种信息),Point类中存储有每个样本的值及其相关信息。可以输入聚类初始的半径ε和半径内最小的邻居数MinPts。对RDD进行划分得到数据集的最优结构,具体可采用如下方法:(1)通过RDD的行动函数(reduce()或者fold()(一种通过折叠RDD来计算整个RDD信息的函数))计算数据集的所有维度,得到维度数N(一般维度差异最大的有5个维度),广播整个数据集。(2)把RDD分成N个分区,每个分区能够获取到前面的广播变量,每个分区分别根据相关维度,各自生成树形结构。树的每个节点都是一个盒子(box类),盒子有前边界和后边界及存储包括的样本数组。生成树形结构时,按照维度进行数据集的划分。首先按照维度将数据集等距离进行平分,形成两个盒子,这两个盒子再进行等距离平分,直到盒子的样本数据个数小于设定值或者盒子的前边界值减去后边界值小于2×ε。标记每个样本属于的盒子,或是否属于每个盒子的前后边界。标记每个样本与所属盒子的前后边界的关系。例如某个样本点到所属盒子的前边界线的距离小于ε,则为此盒子的前边界点,若到所属盒子的后边界线的距离小于ε,则为此盒子的后边界点。(3)遍历所有分区的划分树,得到盒子数组。调用Spark平台所提供的累加变量,汇集所有分区盒子数组的情况,寻找到盒子数组划分本文档来自技高网
...
基于Spark内存计算大数据平台的OPTICS点排序聚类方法

【技术保护点】
一种基于Spark大数据平台的数据集聚类方法,其特征在于,将数据集转化成Spark平台的分布式数据集RDD,对RDD数据集进行划分,得到最优的数据划分结构,分割得到最优分区;并行获取每个最优分区中所有样本点的邻居样本点编号,并赋予OPTICS算法的核心距离;对每个分区执行OPTICS算法,得到每个分区的簇排序并将其存储;根据每个分区的簇排序,赋予每个样本在分区内的簇号,计算全局簇号转换Map;根据全局簇号转换Map,合并分区并更换簇号,得到聚类结果。

【技术特征摘要】
1.一种基于Spark大数据平台的数据集聚类方法,其特征在于,将数据集转化成Spark平台的分布式数据集RDD,对RDD数据集进行划分,得到最优的数据划分结构,分割得到最优分区;并行获取每个最优分区中所有样本点的邻居样本点编号,并赋予OPTICS算法的核心距离;对每个分区执行OPTICS算法,得到每个分区的簇排序并将其存储;根据每个分区的簇排序,赋予每个样本在分区内的簇号,计算全局簇号转换Map;根据全局簇号转换Map,合并分区并更换簇号,得到聚类结果。2.根据权利要求1所述的方法,其特征在于,进一步包括:输入聚类初始半径ε和半径内最小的邻居数MinPts,将输入的数据集转化成Spark平台的分布式数据集RDD,创建一个SparkContext环境对象,然后用SparkContext环境对象的parallelize或textFile函数创建一个可以被并行操作的分布式数据集RDD。3.根据权利要求1所述的方法,其特征在于,寻找最优的数据划分结构进一步包括,调用RDD的行动函数计算数据集维度差异最大的N个维度,将RDD划分成N个分区,使每个分区能够获取前面的广播变量;每个分区分别根据各自的维度生成树形结构,树的每个节点是一个盒子box;根据维度进行数据集划分。4.根据权利要求1所述的方法,其特征在于,并行计算分区中每个样本的邻居数并赋予OPTICS算法的核心距离,具体包括:广播盒子数组,生成盒子中样本数组的RDD,每个分区分别获得序号相对应的盒子;每个分区分别根据广播的盒子数组中对应的盒子及其前后盒子计算样本点邻居;根据样本与邻居间的欧几里得距离,得到每个样本对应的核心距离。5.根据权利要求1所述的方法,其特征在于,计算全局簇号转换Map,具体包括;根据用户的预定距离值B,从每个分区的簇排序中按顺序提取样本,赋予样本一个初始类别,如果该样本的可达距离不大于B则属于当前类别,如果可达距离大于B且核心距离大于B,则为噪声,当可达距离大于B且核心...

【专利技术属性】
技术研发人员:胡峰瞿原邓维斌于洪张清华
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

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

1