CN109242027A - 一种可交互的大数据并行k-means聚类方法 - Google Patents
一种可交互的大数据并行k-means聚类方法 Download PDFInfo
- Publication number
- CN109242027A CN109242027A CN201811082996.XA CN201811082996A CN109242027A CN 109242027 A CN109242027 A CN 109242027A CN 201811082996 A CN201811082996 A CN 201811082996A CN 109242027 A CN109242027 A CN 109242027A
- Authority
- CN
- China
- Prior art keywords
- cluster
- data
- big
- computation
- cluster centre
- 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.)
- Pending
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
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种可交互的大数据并行k‑means聚类方法,本发明是一种可交互的大数据并行k‑means聚类方法,主要应用在针对大数据集的k‑means聚类,把一个大数据集分割成不同的类,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大,本发明可提高针对大数据集的k‑means聚类处理的响应时间,另外,在聚类过程中,用户可通过给定聚类差别值约束条件对聚类过程进行干预,本发明根据类别差异度调整迭代次数,得到满足用户给定聚类差别值约束条件的聚类结果。
Description
技术领域
本发明属于数据挖掘技术领域,具体涉及一种可交互的大数据并行k-means聚类方法。
背景技术
聚类分析是计算机科学及相关领域中的一个基础问题,在数据挖掘、模式识别、网络、生物信息等许多领域有着广泛的研究和应用。聚类分析就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大。即聚类之后,使得同一类的数据尽量聚集到一起,不同类的数据尽量分离。在许多应用中需要对网页按照其内容进行聚类,或者对用户按照其行为进行聚类。例如,在社交网络中将具有某种关系准则联系在一起的人们划分为一个群体,然后可以针对这个群体预测其购买行为,设计针对性的营销方案等。随着互联网的飞速发展和数据的急剧增长,网络图以及社交网络图变得越来越大,例如,网络图可能包含数万亿条边。聚类计算任务所面临的数据规模越来越庞大,以至于单个节点无法满足数据存储,基于单节点单进程的串行执行方法已不可用。因此,设计云环境下的分布式k-means算法成为了目前亟需解决的问题。
K-means算法从n个数据对象中随机地选取k个对象作为初始聚类中心,这就导致了聚集结果的好坏以及算法的效率直接受到初始聚类中心选择的影响。
K-means算法是最为经典的基于划分的聚类方法,其基本思想是:选取n个数据对象中的k个作为初始聚类中心,对数据集中剩余的每个对象,根据其与各个聚类中心的距离将每个对象划分到最近的类簇中。重新计算每个聚类的均值,更新聚类中心的值。重复这一过程,直到标准准则函数收敛为止。通常采用误差平方和准则函数作为聚类准则函数,误差平分和函数定义为:其中V是数据集中对象与所在类簇的中心的平方差的总和。V越大说明类簇内的对象与中心的距离越大,类簇内的相似性就越低,反之则说明类簇内的相似性就越高。k是类簇的个数,x是类簇内的一个对象,Si表示第i个类簇,μi是Si类簇的聚类中心。
MapReduce云计算框架是当下驾驭大型计算机集群能力的一种流行方式。MapReduce以数据为中心的思想,使得程序员只需要专注于应用到数据记录集上的转换操作,而关于分布式计算、网络通信、容错等细节统统交由MapReduce框架进行处理。
在MapReduce计算框架下,程序员需要将计算表达为一系列的任务。任务的输入规定了产生key-value对的规范。每个任务都包括了两个阶段——map阶段和reduce阶段。第一阶段map,使用用户自定义的map函数对每条输入记录进行处理,产生一系列的中间结果key-value对。第二阶段reduce,map将具有相同key值的中间结果key-value对输出给同一个reduce,使用用户自定义的reduce函数对相同key值的中间values进行处理。MapReduce能够自动将这些函数执行并行化,并保证容错。
在k-means算法中,计算样本集中对象与聚类中心之间距离这个基本操作是最为耗时的部分。由于样本集中某个对象与k个聚类中心进行距离比较的同时,样本集中其他对象也可以与k个聚类中心进行距离比较。因此,这个基本操作很容易并行化处理。
基于MapReduce框架的k-means聚类算法思想:一个MapReduce任务对应了串行k-means算法的一次迭代过程。在Map阶段,进行样本集中数据对象与k个聚类中心的距离比较,在Reduce阶段进行新的聚类中心的计算。
发明内容
本发明的目的是提供一种可交互的大数据并行k-means聚类方法,能高效地找出大数据集的聚类结果,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大。
本发明提供了如下的技术方案:
一种可交互的大数据并行k-means聚类方法,包括以下步骤:
S1:面向大数据的初始聚类中心选择:对数据集进行随机采样,并使得采样的数据能够保留原始数据集中数据分布的特征;
S2:基于聚类中心进行数据划分:把一个数据集分割成不同的类,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大;
S3:聚类中心重计算:基于MapReduce计算框架,重计算的结果首先写入内存,当内存满时,再写入硬盘,直接进入下一轮的迭代运算,进行聚类中心的重计算;
S4:聚类中心重计算后,新的聚类中心集合和聚类偏差写入分布式共享内存中,若当前聚类偏差小于用户给定的偏差,则终止迭代运算。
优选的,所述S1中面向大数据的初始聚类中心选择包括以下步骤:
S11:对于数据集V中每个点p,产生R个随机数{v1,...vR};
S12:{v1,...vR}中vi,若vi大于概率q,则将p点放入第i个样本中;
S13:产生R个采样样本,混洗到R个Reduce任务中;
S14:对每个样本进行k-means聚类,得到聚类中心;
S15:计算R组聚类中心的误差平方和,选择结果最小的一组聚类中心作为初始聚类中心。
优选的,所述S2中基于聚类中心进行数据划分包括以下步骤:
(1)min-distance=MAXDISTANCE;
(2)foreach point p in V do;
(3)for(i=0;i<k;i++)do;
(4)if(distance(p,c[i])<min-distance);
(5)min-distance=distance(p,c[i]);
(6)cID=i;
(7)Emit(p,cID);
优选的,所述S3中聚类中心重计算包括以下步骤:
(1)foreach point p in a cluster do;
(2)Num++;
(3)for(i=0;i<dimension;i++)do;
(4)sum[i]+=p[i];
(5)for(i=0;i<dimension;i++)do;
(6)newmean[i]=sum[i]/Num;
(7)Emit(cID,newmean)。
优选的,所述S3-S4的聚类过程中,用户通过分布式共享内存获取聚类结果和实时的聚类中心,根据这些数据和领域知识实时调整用户给定的偏差,得到满足用户给定的偏差的聚类结果。
本发明的有益效果是:在基于采样的初始聚类中心的选取过程中,由于采样的数据样本远远小于原始数据集,因此迭代的次数很少,执行速度很快。当原始数据集的数据量非常大时,基于采样选取初始聚类中心的时间可以忽略不计,在面向大数据的计算模型中,由多个计算节点协同完成k-means聚类算法。假定每个计算节点完成M个任务,则面向大数据计算框架的k-means聚类算法的时间复杂度为k×n×i×O/M。但由于基于采样的初始聚类中心算法所选取的初始聚类中心比随机选取的初始聚类中心更接近真正数据分布的聚类中心,因此迭代次数i的值将会大大降低,算法的时间复杂度也会降低,算法的执行效率将会更高;
在基于MapReduce计算框架的k-means算法中,每一次的迭代过程均需要在Map阶段从HDFS读取整个数据集,在Reduce阶段需要将最终结果写入到HDFS中,由于HDFS读写是基于磁盘的,因此读写速度相对较慢,而且HDFS中写入数据都是默认写三份的。每次迭代产生的结果只是中间结果,并不需要持久保存,因此基于MapReduce计算框架的k-means算法的I/O开销较大,输入代价为O(i*n),输出代价为O(3i*n)。而面向大数据计算框架的k-means算法是按照数据流来建模的,各个任务之间的数据是直接流动的,即无需借助HDFS作为共享数据存储系统,一个作业将处理后产生的数据直接传递给下一个作业。DKmeans算法任务1和任务2的输入代价均为O(n),总输入代价为O(2n),任务1的输出代价忽略不计,任务2的输出代价为O(3n)。在数据量特别大的情况下,I/O已成为性能瓶颈,DKmeans算法I/O代价与基于MapReduce计算框架的k-means算法相比,DKmeans算法I/O代价明显减小,提高了整个算法的执行效率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明基于MapReduce框架的k-means聚类算法的处理流程图;
图2是本发明k-means聚类方法的总体框架示意图;
图3是本发明执行算法实施例一示意图;
图4是本发明执行算法实施例二示意图;
图5是本发明执行算法实施例三示意图。
具体实施方式
本发明的总体流程如下:1.面向大数据的初始聚类中心选择:原始的K-means算法需要从包含n个数据对象集合V中随机地选取k个对象作为初始聚类中心。初始聚类中心的选择又直接关系到聚集结果的好坏和算法的效率,通过对数据集进行随机采样,使得采样的数据能够保留原始数据集中数据分布的特征;2.基于聚类中心进行数据划分,把一个数据集分割成不同的类,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大;3.聚类中心重计算,在反复迭代的重计算过程中,现有基于MapReduce的方法受到计算框架的约束和限制,需要将计算结果写入磁盘,为了保证可靠性,通常情况下需要写两份副本。计算结果写入磁盘后,在下一次迭代过程中,需要将其重新读入内存,进行聚类中心的重计算,本发明对MapReduce框架进行改进,重计算的结果首先写入内存,当内存满时,再写入硬盘,这样保证计算结果存储在内存中,直接进入下一轮的迭代运算。
具体的,聚类中心重计算后,新的聚类中心集合和聚类偏差写入分布式共享内存中,若当前聚类偏差小于用户给定的偏差,则终止迭代运算,另外,在聚类过程中,用户通过分布式共享内存获取聚类结果和实时的聚类中心,可根据这些数据和领域知识实时调整用户给定的偏差,得到满足用户给定的偏差的聚类结果。
具体的,如图1-图2所示,图1给出了基于MapReduce框架的k-means聚类算法的处理流程。一个MapReduce任务对应了串行k-means算法的一次迭代过程。在Map阶段,进行样本集中数据对象与k个聚类中心的距离比较。在Reduce阶段进行新的聚类中心的计算。图2给出了面向大数据的k-means聚类方法的总体框架。与MapReduce计算框架不同,不再将一次迭代过程作为一个MapReduce任务,而是将整个k-means过程看成一个大的计算任务,大的计算任务包括了若干小的计算任务,这些小的计算任务就包括数据记录按类簇进行划分和计算类簇的聚类中心。小的计算任务之间存在着一定的依赖关系,将这些小的计算任务按照数据流图来建模。
实验证明:
实验的环境是:集群有8个节点,CPU:Xeon E5-2620(双核2.00GHz),内存:8G,硬盘:6T(硬盘实际可用空间为44.03T);操作系统:CentOS6.4(64bit);分布式文件系统:HDFS;MapReduce框架开源实现版:Hadoop;面向大数据的计算框架是基于MapReduce框架之上的,其中一个节点为master,剩下节点均为worker节点。
实验数据使用移动用户数据,对移动用户数据进行聚类得到不同特征类型的用户群组。每条数据包括了35个数值类型的属性。为了测试性能并与其他算法进行性能对比,从数据集中随机提取了3组数据集,如下表1所示,要求生成5个聚类类别。
实施例一:图3显示了在计算节点固定为8,数据量不同时,算法的执行时间。从图中可以看出,随着数据规模的不断增大,DKmeans算法执行时间随数据规模增长呈近线性的增长,这说明该DKmeans算法具有较好的可扩展性。计算节点是衡量可扩展性的一个重要维度,若计算任务不变,当计算节点增加一倍,则执行时间应当减少一半。然而在实际算法运行过程中,受容错、数据通信等各方面因素的影响,其执行时间以一种近线性的速率递减。当数据量较小时,如图中数据量为A时,随着节点的增加,会出现资源闲置的情况,效率并不能得到进一步的提升。
实施例二:图4显示了在节点数目分别为2,4,8时,不同数据规模下,文献[16]提出的PKmeans算法(图中表示为MR k-means)与本发明提出的DKmeans方法的执行时间。由于在MapReduce框架中,每个MapReduce任务都需要读写HDFS,即使某些MapReduce任务产生的数据仅是临时数据。显然,这种表达作业依赖关系的方式效率不高。而且PKmeans算法的初始聚类中心是随机选取的,因此效率更低。从图中可以看出,在处理相同数据规模的数据时,DKmeans算法要比PKmeans算法效率明显更高。而且随着数据量的增大的,面向大数据的计算框架比基于MapReduce框架的优势将会更加明显,这是优于面向大数据的计算框架减少了任务间数据的读写,从而大大降低了I/O开销。
实施例三:图5显示了在节点数目分别为2,4,8时,不同数据规模下,DKmeans算法分别采用随机选择初始聚类中心(R k-means)和基于采样选择初始聚类中心(Dk-means)两种方法的执行时间。在选择初始聚类中心时,随机选择要比基于采样选择更加的节省时间。但是由于,初始聚类中心的选择又直接关系到聚集结果的好坏和算法的效率。所以,选择好的初始聚类中心是有助于提高算法的效率的。从图中可以看出,采用基于采样选择初始聚类中心的算法的性能始终是优于采用了随机选择算法的。而且,当数据规模越大时,基于采样选择初始聚类中心算法的优势更加明显,因为好的初始聚类中心能够大大减少算法的迭代次数,而随着数据规模的增大,一次迭代的代价会更大。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种可交互的大数据并行k-means聚类方法,其特征在于,包括以下步骤:
S1:面向大数据的初始聚类中心选择:对数据集进行随机采样,并使得采样的数据能够保留原始数据集中数据分布的特征;
S2:基于聚类中心进行数据划分:把一个数据集分割成不同的类,使得同一个类里面的数据对象之间的相似性尽可能的大,同时不在同一个类里面的数据对象之间的差异性尽可能的大;
S3:聚类中心重计算:基于MapReduce计算框架,重计算的结果首先写入内存,当内存满时,再写入硬盘,直接进入下一轮的迭代运算,进行聚类中心的重计算;
S4:聚类中心重计算后,新的聚类中心集合和聚类偏差写入分布式共享内存中,若当前聚类偏差小于用户给定的偏差,则终止迭代运算。
2.根据权利要求1所述的一种可交互的大数据并行k-means聚类方法,其特征在于,所述S1中面向大数据的初始聚类中心选择包括以下步骤:
S11:对于数据集V中每个点p,产生R个随机数{v1,...vR};
S12:{v1,...vR}中vi,若vi大于概率q,则将p点放入第i个样本中;
S13:产生R个采样样本,混洗到R个Reduce任务中;
S14:对每个样本进行k-means聚类,得到聚类中心;
S15:计算R组聚类中心的误差平方和,选择结果最小的一组聚类中心作为初始聚类中心。
3.根据权利要求1所述的一种可交互的大数据并行k-means聚类方法,其特征在于,所述S2中基于聚类中心进行数据划分包括以下步骤:
(1)min-distance=MAXDISTANCE;
(2)foreach point p in V do;
(3)for(i=0;i<k;i++)do;
(4)if(distance(p,c[i])<min-distance);
(5)min-distance=distance(p,c[i]);
(6)cID=i;
(7)Emit(p,cID)。
4.根据权利要求1所述的一种可交互的大数据并行k-means聚类方法,其特征在于,所述S3中聚类中心重计算包括以下步骤:
(1)foreach point p in a cluster do;
(2)Num++;
(3)for(i=0;i<dimension;i++)do;
(4)sum[i]+=p[i];
(5)for(i=0;i<dimension;i++)do;
(6)newmean[i]=sum[i]/Num;
(7)Emit(cID,newmean)。
5.根据权利要求1所述的一种可交互的大数据并行k-means聚类方法,其特征在于,所述S3-S4的聚类过程中,用户通过分布式共享内存获取聚类结果和实时的聚类中心,根据这些数据和领域知识实时调整用户给定的偏差,得到满足用户给定的偏差的聚类结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082996.XA CN109242027A (zh) | 2018-09-17 | 2018-09-17 | 一种可交互的大数据并行k-means聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811082996.XA CN109242027A (zh) | 2018-09-17 | 2018-09-17 | 一种可交互的大数据并行k-means聚类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109242027A true CN109242027A (zh) | 2019-01-18 |
Family
ID=65058960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811082996.XA Pending CN109242027A (zh) | 2018-09-17 | 2018-09-17 | 一种可交互的大数据并行k-means聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109242027A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705606A (zh) * | 2019-09-12 | 2020-01-17 | 武汉大学 | 一种基于Spark分布式内存计算的空间K均值聚类方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220841A (zh) * | 2016-03-22 | 2017-09-29 | 上海市玻森数据科技有限公司 | 一种基于商业数据的聚类系统 |
CN107451183A (zh) * | 2017-06-19 | 2017-12-08 | 中国信息通信研究院 | 基于文本聚类思想的知识地图构建方法 |
-
2018
- 2018-09-17 CN CN201811082996.XA patent/CN109242027A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220841A (zh) * | 2016-03-22 | 2017-09-29 | 上海市玻森数据科技有限公司 | 一种基于商业数据的聚类系统 |
CN107451183A (zh) * | 2017-06-19 | 2017-12-08 | 中国信息通信研究院 | 基于文本聚类思想的知识地图构建方法 |
Non-Patent Citations (2)
Title |
---|
王飞: "《云环境下海量数据查询处理与分析技术研究》", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
程德强: "《流媒体覆盖网络及其关键技术研究》", 31 October 2008, 中国矿业大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705606A (zh) * | 2019-09-12 | 2020-01-17 | 武汉大学 | 一种基于Spark分布式内存计算的空间K均值聚类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487771B2 (en) | Per-node custom code engine for distributed query processing | |
Sardar et al. | An analysis of MapReduce efficiency in document clustering using parallel K-means algorithm | |
US20220343172A1 (en) | Dynamic, automated fulfillment of computer-based resource request provisioning using deep reinforcement learning | |
Hu et al. | Flutter: Scheduling tasks closer to data across geo-distributed datacenters | |
US9449115B2 (en) | Method, controller, program and data storage system for performing reconciliation processing | |
JP2021517295A (ja) | レコメンダシステムのための高効率畳み込みネットワーク | |
Wang et al. | Clustering aggregation by probability accumulation | |
Xin et al. | ELM∗: distributed extreme learning machine with MapReduce | |
US10268749B1 (en) | Clustering sparse high dimensional data using sketches | |
TW201737058A (zh) | 一種基於隨機森林的模型訓練方法和裝置 | |
US9338234B2 (en) | Functional programming in distributed computing | |
US10146828B2 (en) | System and method of storing and analyzing information | |
Sarazin et al. | SOM clustering using spark-mapreduce | |
Gu et al. | A parallel computing platform for training large scale neural networks | |
Martino et al. | Efficient approaches for solving the large-scale k-medoids problem: Towards structured data | |
Sardar et al. | An analysis of distributed document clustering using MapReduce based K-means algorithm | |
Zdravevski et al. | Feature ranking based on information gain for large classification problems with mapreduce | |
Shafiq et al. | A parallel K-medoids algorithm for clustering based on MapReduce | |
Bhuiyan et al. | Fast parallel algorithms for edge-switching to achieve a target visit rate in heterogeneous graphs | |
CN110175172B (zh) | 基于稀疏二分图的极大二分团并行枚举方法 | |
CN109242027A (zh) | 一种可交互的大数据并行k-means聚类方法 | |
Arifuzzaman et al. | Distributed-memory parallel algorithms for counting and listing triangles in big graphs | |
Papanikolaou | Distributed algorithms for skyline computation using apache spark | |
Alam | HPC-based parallel algorithms for generating random networks and some other network analysis problems | |
Yasir et al. | Performing in-situ analytics: Mining frequent patterns from big IoT data at network edge with D-HARPP |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190118 |