CN102222092B - 一种MapReduce平台上的海量高维数据聚类方法 - Google Patents
一种MapReduce平台上的海量高维数据聚类方法 Download PDFInfo
- Publication number
- CN102222092B CN102222092B CN 201110148982 CN201110148982A CN102222092B CN 102222092 B CN102222092 B CN 102222092B CN 201110148982 CN201110148982 CN 201110148982 CN 201110148982 A CN201110148982 A CN 201110148982A CN 102222092 B CN102222092 B CN 102222092B
- Authority
- CN
- China
- Prior art keywords
- dimension
- grid
- cluster
- class
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于云计算与数据挖掘技术领域,具体为一种MapReduce平台上的海量高维数据聚类方法。该方法首先对原始数据的每一维进行分割,用切分好的非空小格代替原数据中的点集进行聚类,减小数据规模。利用MapReduce的开源实现,使得聚类过程可以在分布式集群上并行完成,克服了单机算法在存储和计算上的限制。聚类过程采用K-mediods算法的思想,并提出高效的欧式距离计算方法。本发明适用于处理海量高维数据,用户可以根据集群的计算能力、算法的时间期望以及对聚类精确性的要求对算法进行手动调整,满足了不同用户的需要。
Description
技术领域
本发明属于云计算与数据挖掘技术领域,具体涉及一种利用MapReduce分布式计算框架对海量高维数据的进行聚类的方法。
背景技术
高维数据的分析一直是数据挖据中的难题,当维度达到一定高度时,很多对低维数据很有效的聚类方法便不再适用。对于海量高维数据来说,分析和挖掘更涉及到内存和硬盘的限制。
近年来,MapReduce及其开源版本Hadoop的研究非常活跃。许多单机算法都在Hadoop上予以重新实现,为各种算法处理海量数据提供了高可用性和可扩展性。
Mahout是 Apache 旗下基于Hadoop的一个开源项目,提供一些可扩展的机器学习领域经典算法在Hadoop上的实现,包括聚类、分类、推荐过滤、频繁子项挖掘。Mahout将很多数据挖掘的经典算法,例如K-means,贝叶斯分类,SVM等在Hadoop-MapReduce平台上重新实现,使得这些传统算法具有并行处理海量数据的能力。通过使用 Hadoop,Mahout 中的各种数据挖据算法可以有效地扩展到分布式集群中。
但是,在Mahout中针对坐标的聚类方法例如K-means,往往是面向低维数据,在对海量高维数据进行聚类时往往会出现内存不足,性能不佳等问题。
发明内容
本发明的目的是针对海量高维数据的聚类问题,提出一种利用MapReduce分布式计算框架对海量高维数据的进行高效聚类的方法,为用户提供可定制性和可扩展性,并优化算法效率。
本发明提出的高维数据聚类方法,利用Hadoop分布式计算框架,结合切格处理和高效距离计算,对海量高维数据进行分布式并行聚类,实现了高可扩展性和可定制性,提高了聚类的效率和实际应用价值。
首先对一些基本概念进行介绍和定义:
定义1. MapReduce:MapReduce是谷歌提出的分布式并行计算框架,它让程序员只需关注数据的处理,而数据的分布式存储和容错都交给计算框架来解决。在MapReduce平台上的计算过程中,数据首先被切分到集群的不同节点上,以Key→Value的形式存储在分布式文件系统中;计算过程主要分为两个阶段:Map阶段和Reduce阶段。集群中的每台机器都有一些几个Map和Reduce任务,Map过程是生成一些<key,value>,共享同一个key的<key,value>由同一个Reduce来处理。而我们所使用的Hadoop是MapReduce的开源实现,由Apache基金会开发。
定义2. K-mediods算法:K-mediods算法是一种基于坐标的聚类算法,算法基本过程是首先选择一些中心点代表每个类,之后按每个点与中心点的距离将所有点分配到类中,再将每个类中的所有点坐标求中位数得到新的类中心点,反复迭代,直到中心点不再变化。K-mediods算法类似于K-Means算法,但克服了K-Means算法对孤立点的敏感性。
定义3. 切格:设初始数据中的每个点都有D维,本方法将每一维切成N等份(N由用户指定),切分完毕后,,每个点都落入唯一的格子中,所有格子在每一维的坐标都是[0,N )的一个整数。本发明在聚类过程中使用所有非空格子代替初始点集进行聚类。
定义4. 记录:在处理过程中,本发明用每一行记录代表一个点或一个非空格子的所有维坐标。例如“0 7 6 3 5”,代表一个5维格子的坐标。
定义5. 用ASCII码计算欧氏距离:在计算欧式的距离过程中,由于每一维的切格数N往往小于128,一般情况下常常小于10,可以用每一行记录的各有效位的ASCII码直接相减,再求平方和得到欧式距离。例如N=10,两个格子坐标行分别为“7 5 6 2”和“4 6 8 0”,可以用两行的单数位ASCII码直接相减,不用将每个坐标字符转换为数字再相减,大大提高了计算效率;
根据以上定义,给定海量高维数据集合,每一行为一个点的D维坐标,本发明提出的聚类方法是基于以下性质的:
(1)在将每一维切成N格后,每个点都落入唯一的D维格子中,N越大,每个D维格子中的点越少,用D维格子进行聚类与用原始点集进行聚类的结果越接近。
(2)由于非空的D维格子数量小于原始点集的数量,而且D维格子的所有坐标均为整数,而原始点集的坐标往往为浮点数,所以数据规模必然下降。
(3)在K-mediods迭代聚类过程中,当所有中心点坐标不再变化,每个D维格子已经分配给固定的类,聚类过程完毕。
(4)在计算欧式距离时,当坐标值小于128,用两个ASCII码直接相减和两个数字相减求距离结果是一样的。
基于以上性质,本发明方法利用切格和高效距离计算方法,在MapReduce平台上实现海量高维数据聚类,整个聚类过程具体步骤为:
(1)对于输入的海量高维数据(假设为D维)进行预处理,首先是对原数据各维进行标准化,之后将每一维切成N格,生成非空D维格子的集合;
(2)以步骤(1)输出的结果作为输入,实现MapReduce平台上的K-mediods并行算法,通过迭代计算对所有非空的D维格子进行聚类;
(3)将步骤(2)得出的D维格子聚类的结果还原成原始的D维数据聚类结果,并按照用户的需求进行最终整理输出。
整个聚类过程步骤(1)中,所述预处理的操作如下:
(1)由用户指定每一维切成几格,假设切成N格。N越大,聚类效果越精确,但聚类时间会更长。N越小,聚类的时间越短,但聚类效果会较差; N由用户根据需求自己设定;
(2)利用MapReduce计算每一维的最大值和最小值:Map过程读入所有数据,将每行记录中每一维分别输出,而每个Reduce处理所有记录在某一维上的坐标,并计算出所有点在此维的最大值和最小值;
(3)利用操作(2)的结果,将原始数据每个坐标标准化即映射为[0,N)之间的某个整数。假设输入坐标为doublenum,此维度的最大值最小值分别为Max和Min,则标准化后的此维度的坐标值为(doublenum-Min)*10/(Max-Min),省略小数部分,输出整数结果。即所有切格后非空的D维格子的坐标;
(4)去除坐标重复的D维格子,通过排序后一边扫描进行去重;
(5)将去重后的数据上传到HDFS(Hadoop的分布式文件系统上)。
整个聚类过程步骤(2)中,所述K-mediods并行算法的操作如下:
(1)首先在所有的D维格子中选出一些类中心点:假设要求将所有点聚成C个类,在上述说明2中所生成的非空格子集合中随机选择C个格子作为中心点,作为最初的中心点集合;
(2)将中心点集合分发到集群中所有机器的本地硬盘上;
(3)分类过程:Map过程将所有格子均匀分布到每台机器上,每台机器的Reduce过程收集分配给它的所有D维格子,并从本地读取此时的中心点集合,计算每个D维格子离哪个中心点最近,将格子分配给与其距离最近的中心点所管辖的类中。在计算距离过程中,由于每一维的切格数N往往小于128,可以用两个格子的坐标记录中各有效位的ASCII码直接相减再求平方和得到欧式距离。可以极大提高计算效率;
(4)更新中心点集合:Map过程将离每个中心点所管辖的类中的所有D维格子分配给同一个Reduce来处理。而每个Reduce计算本类中所有格子坐标在每一维上的中位数,作为新的中心点坐标,并输出;
(5)按照操作(4)的输出生成新的中心点集合,并分发到集群中所有机器的本地硬盘上,取代之前的集合;
(6)重复操作步骤(3)、(4)和(5),直到中心点集合中的所有坐标都不再改变;
(7)输出聚类结果。
整个聚类过程步骤(3)中所述还原输出过程的操作如下:
(1)匹配过程:Map输入数据为两部分:一是所有的D维格子及其所属的类编号,二是原始数据,即所有的初始点坐标。Map根据这两部分数据计算每个点坐标在哪个格子内,并根据每个格子所属的类,将其匹配关系及每个点的类号输出给Reduce;
(2)每个Reduce收集属于一个类的所有点,并将其输出;
(3)将输出结果按用户需求进行相关格式调整,输出最终结果。
根据以上步骤进行的聚类方法,在预处理阶段减小了数据规模,在聚类阶段使用了高效的距离计算方法,从而改善了系统运行的时间。附图2为采用切格方法与不采用切格方法的聚类时间对比,附图3为用ASCII码计算欧氏距离与将坐标记录转换为数字再计算距离的时间对比。从图中可以看出,本发明方法的显著的改善了聚类的执行时间。
综上所述,本发明首先对原始数据的每一维进行分割,用切分好的非空小格代替原数据中的点集进行聚类,减小数据规模。分割规则可以由用户指定,实现了良好的可定制性。利用MapReduce的开源实现——Hadoop,使得聚类过程可以在分布式集群上并行完成,克服了单机算法在存储和计算上的限制。聚类过程采用K-mediods算法的思想,并提出高效的欧式距离计算方法。本发明适用于处理海量高维数据,用户可以根据集群的计算能力、算法的时间期望以及对聚类精确性的要求对算法进行手动调整,满足了不同用户的需要。
附图说明
图1显示了MapReduce分布式框架的计算处理过程。
图2显示了采用切格方法与不采用切格方法的聚类时间对比。二者均不采用ASCII码计算欧氏距离。取的时间为K-mediods每轮迭代的时间。
图3显示了在同是切成6格和10格的情况下,使用ASCII码计算欧氏距离与将坐标记录转换为数字再计算距离的时间对比。取的时间为K-mediods每轮迭代的时间。
图4显示了一部分聚类结果。
具体实施方式
本发明所描述的高维聚类方法是基于MapReduce分布式计算平台和K-mediods算法的,下面将通过一个例子详细描述本发明所述方法的具体实施方式:
输入数据为2000个音乐特征文件,是从2000首中文歌曲中提取出的。每首歌被分割成约5000帧,每帧有26个属性,用浮点数表示,要求将所有帧聚成1500个类。我们将此约1000万帧看做点集合,每个点的26个属性作为26维坐标,按照以下步骤进行聚类:
(1)首先将每一维切成10格(N=10),得到所有非空的26维格子,并去重。由于N=10,所以每一维的坐标值为 [0,9]范围内的整数。
(2)在步骤(1)输出的所有26维格子中随机选择1500个格子作为最初的中心点。
(3)将步骤(1)输出的所有26维格子在MapReduce分布式平台上进行聚类。在计算距离时,用两个格子坐标记录中的0,2,4…50为的ASCII码直接相减求平方和得到欧氏距离。
(4)用当前每个类中所有格子在每一维上坐标求中位数,作为新的类中心点坐标。更新所有的中心点坐标。
(5)重复步骤(3)、(4)直到所有中心点坐标不再变化。
(6)将已经聚好类的26维格子还原成原本的点集。并按用户的需求输出最终结果。
Claims (1)
1.一种MapReduce平台上的海量高维数据聚类方法,其特征在于具体步骤如下:
(1)对于输入的海量高维数据进行预处理,设高维数据为D维,首先是对原数据各维进行标准化,之后将每一维切成N格,生成非空的D维格子集合;
(2)以步骤(1)输出的结果作为输入,实现MapReduce平台上的K-mediods并行算法,通过迭代计算对D维格子集合进行聚类;
(3)将步骤(2)得出的D维格子聚类的结果还原成原始的D维点集聚类结果,并按照用户的需求进行最终整理及输出;其中,
步骤(1)中所述预处理的操作如下:
(1)由用户指定每一维切成几格,假设切成N格,N由用户指定;
(2)利用MapReduce计算每一维的最大值和最小值;
(3)利用操作(2)的结果,将原始高维数据标准化,即将每个坐标映射为[0,N)之间的某个整数;
(4)去除坐标重复的D维格子;
(5)将去重后的数据上传到HDFS上;
步骤(2)中所述K-mediods过程的操作如下:
(1)首先在所有的D维格子中选出一些类中心点,作为最初的中心点集合,每个中心点管辖一个类;
(2)将中心点集合分发到集群中所有机器的本地硬盘上;
(3)分类:计算每个D维格子离哪个中心点最近,将格子分配给与其距离最近的中心点所管辖的类中;
(4)更新中心点集合:计算每个类中所有格子坐标在每一维上的中位数,作为新的中心点坐标,并输出;
(5)按照操作(4)的输出生成新的中心点集合,并分发到集群中所有机器的本地硬盘上,取代之前的集合;
(6)重复操作(3)、(4)和(5),直到中心点集合中的所有坐标都不再改变;
(7)输出聚类结果;
步骤(3)中所述还原输出过程的操作如下:
(1)通过点与格子进行匹配,格子与类的关系,输出每个点属于哪个类;
(2)收集每个类中的所有点,并将其输出;
(3)按用户需求进行调整,输出最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110148982 CN102222092B (zh) | 2011-06-03 | 2011-06-03 | 一种MapReduce平台上的海量高维数据聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110148982 CN102222092B (zh) | 2011-06-03 | 2011-06-03 | 一种MapReduce平台上的海量高维数据聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102222092A CN102222092A (zh) | 2011-10-19 |
CN102222092B true CN102222092B (zh) | 2013-02-27 |
Family
ID=44778644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110148982 Expired - Fee Related CN102222092B (zh) | 2011-06-03 | 2011-06-03 | 一种MapReduce平台上的海量高维数据聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102222092B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591940B (zh) * | 2011-12-27 | 2013-09-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于Map/Reduce的快速支持向量数据描述方法及系统 |
CN102750309B (zh) * | 2012-03-19 | 2015-06-17 | 南京大学 | 一种基于Hadoop的并行化SVM求解方法 |
CN102902716A (zh) * | 2012-08-27 | 2013-01-30 | 苏州两江科技有限公司 | 基于Hadoop分布式计算平台的存储系统 |
CN103020315B (zh) * | 2013-01-10 | 2015-08-19 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
CN103064991A (zh) * | 2013-02-05 | 2013-04-24 | 杭州易和网络有限公司 | 一种海量数据聚类方法 |
TWI499971B (zh) * | 2013-03-05 | 2015-09-11 | Univ Nat Cheng Kung | 聯合多運算叢集系統執行映射化簡程式的方法 |
CN103198099A (zh) * | 2013-03-12 | 2013-07-10 | 南京邮电大学 | 基于云计算的面向电信业务的数据挖掘应用方法 |
CN103235825B (zh) * | 2013-05-08 | 2016-05-25 | 重庆大学 | 一种基于Hadoop云计算框架的海量人脸识别搜索引擎设计方法 |
CN103440244A (zh) * | 2013-07-12 | 2013-12-11 | 广东电子工业研究院有限公司 | 一种大数据存储优化方法 |
CN103500089A (zh) * | 2013-09-18 | 2014-01-08 | 北京航空航天大学 | 一种适应于Mapreduce计算模型的小文件存储系统 |
CN103593323A (zh) * | 2013-11-07 | 2014-02-19 | 浪潮电子信息产业股份有限公司 | 一种MapReduce任务资源配置参数的机器学习方法 |
CN105005570B (zh) * | 2014-04-23 | 2018-02-16 | 国家电网公司 | 基于云计算的海量智能用电数据挖掘方法及装置 |
CN105095244A (zh) * | 2014-05-04 | 2015-11-25 | 李筑 | 用于创业云平台的大数据算法 |
CN104156463A (zh) * | 2014-08-21 | 2014-11-19 | 南京信息工程大学 | 一种基于MapReduce的大数据聚类集成方法 |
CN104239479A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 一种文档分类方法和系统 |
CN104503820B (zh) * | 2014-12-10 | 2018-07-24 | 华南师范大学 | 一种基于异步启动的Hadoop优化方法 |
CN104462585A (zh) * | 2014-12-29 | 2015-03-25 | 芜湖乐锐思信息咨询有限公司 | 一种大数据分类系统 |
CN105573834B (zh) * | 2015-12-16 | 2018-12-11 | 复旦大学 | 一种基于异构平台的高维词汇树构建方法 |
CN105740604A (zh) * | 2016-01-22 | 2016-07-06 | 湖南大学 | 基于冗余距离消除和极端点优化的并行k-means聚类方法 |
CN106648451B (zh) * | 2016-05-10 | 2020-09-08 | 深圳前海信息技术有限公司 | 基于内存的MapReduce引擎数据处理方法和装置 |
CN106202388B (zh) * | 2016-07-08 | 2017-12-08 | 武汉斗鱼网络科技有限公司 | 一种用户等级自动划分方法及系统 |
CN106909942B (zh) * | 2017-02-28 | 2022-09-13 | 北京邮电大学 | 一种面向高维度大数据的子空间聚类方法及装置 |
CN109528203A (zh) * | 2019-01-21 | 2019-03-29 | 郑州大学 | 一种基于多源信息融合的交互式脑卒中患者步态训练及评测系统 |
CN109980700B (zh) * | 2019-04-09 | 2023-01-10 | 广东电网有限责任公司 | 一种分布式电源多目标优化规划方法、装置和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003029A (en) * | 1997-08-22 | 1999-12-14 | International Business Machines Corporation | Automatic subspace clustering of high dimensional data for data mining applications |
CN101339553A (zh) * | 2008-01-14 | 2009-01-07 | 浙江大学 | 面向海量数据近似快速聚类和索引方法 |
-
2011
- 2011-06-03 CN CN 201110148982 patent/CN102222092B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102222092A (zh) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102222092B (zh) | 一种MapReduce平台上的海量高维数据聚类方法 | |
Anchalia et al. | MapReduce design of K-means clustering algorithm | |
CN103020256B (zh) | 一种大规模数据的关联规则挖掘方法 | |
US10381106B2 (en) | Efficient genomic read alignment in an in-memory database | |
Cao et al. | An improved k-medoids clustering algorithm | |
CN103678665A (zh) | 一种基于数据仓库的异构大数据整合方法和系统 | |
Saeed et al. | Big data clustering techniques based on spark: a literature review | |
CN105959372A (zh) | 一种基于移动应用的互联网用户数据分析方法 | |
Gao et al. | Runtime performance prediction for deep learning models with graph neural network | |
CN103488537A (zh) | 一种数据抽取、转换和加载etl的执行方法及装置 | |
CN105912666A (zh) | 一种面向云平台的混合结构数据高性能存储、查询方法 | |
CN105069039A (zh) | 一种基于spark平台的内存迭代的重叠社区并行发现方法 | |
Wei et al. | Incremental FP-Growth mining strategy for dynamic threshold value and database based on MapReduce | |
CN105574032A (zh) | 规则匹配运算方法及装置 | |
CN101697167A (zh) | 基于聚类-决策树的玉米良种选育方法 | |
CN106294805A (zh) | 数据处理方法及装置 | |
Guðmundsson et al. | Towards engineering a web-scale multimedia service: A case study using Spark | |
CN104504018A (zh) | 基于浓密树和自顶向下的大数据实时查询优化方法 | |
Jena et al. | A survey work on optimization techniques utilizing map reduce framework in hadoop cluster | |
CN112651618A (zh) | 用于计量数据在线审计的审计维度模型的构建方法 | |
CN107590225A (zh) | 一种基于分布式数据挖掘算法的可视化管理系统 | |
CN103823881B (zh) | 分布式数据库的性能优化的方法及装置 | |
CN103984723A (zh) | 一种针对增量数据对频繁项进行更新数据挖掘方法 | |
Dong | Research of big data information mining and analysis: Technology based on Hadoop technology | |
CN103198099A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130227 Termination date: 20160603 |