CN102222092B - 一种MapReduce平台上的海量高维数据聚类方法 - Google Patents

一种MapReduce平台上的海量高维数据聚类方法 Download PDF

Info

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
Application number
CN 201110148982
Other languages
English (en)
Other versions
CN102222092A (zh
Inventor
廖松博
何震瀛
汪卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN 201110148982 priority Critical patent/CN102222092B/zh
Publication of CN102222092A publication Critical patent/CN102222092A/zh
Application granted granted Critical
Publication of CN102222092B publication Critical patent/CN102222092B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于云计算与数据挖掘技术领域,具体为一种MapReduce平台上的海量高维数据聚类方法。该方法首先对原始数据的每一维进行分割,用切分好的非空小格代替原数据中的点集进行聚类,减小数据规模。利用MapReduce的开源实现,使得聚类过程可以在分布式集群上并行完成,克服了单机算法在存储和计算上的限制。聚类过程采用K-mediods算法的思想,并提出高效的欧式距离计算方法。本发明适用于处理海量高维数据,用户可以根据集群的计算能力、算法的时间期望以及对聚类精确性的要求对算法进行手动调整,满足了不同用户的需要。

Description

一种MapReduce平台上的海量高维数据聚类方法
技术领域
本发明属于云计算与数据挖掘技术领域,具体涉及一种利用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)按用户需求进行调整,输出最终结果。
CN 201110148982 2011-06-03 2011-06-03 一种MapReduce平台上的海量高维数据聚类方法 Expired - Fee Related CN102222092B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 浙江大学 面向海量数据近似快速聚类和索引方法

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