CN105760478A - 一种基于机器学习的大规模分布式的数据聚类方法 - Google Patents
一种基于机器学习的大规模分布式的数据聚类方法 Download PDFInfo
- Publication number
- CN105760478A CN105760478A CN201610086276.5A CN201610086276A CN105760478A CN 105760478 A CN105760478 A CN 105760478A CN 201610086276 A CN201610086276 A CN 201610086276A CN 105760478 A CN105760478 A CN 105760478A
- Authority
- CN
- China
- Prior art keywords
- data
- data point
- point
- index
- density
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于机器学习的大规模分布式的数据聚类方法,输入需要分类的数据点以及聚类个数k,其中包含数据点索引以及数据点的坐标,数据形式如下,<n,coordinate>;对数据点进行预处理,即给数据加上索引;根据索引数据计算距离矩阵;根据距离矩阵计算每个数据点的密度信息;根据距离矩阵及密度信息得到每个数据点的最小距离信息以及其对应索引;根据密度信息及最小距离信息确定k个聚类中心;根据最小距离信息及聚类中心对所有未被分配类标的数据点进行聚类,直到所有数据点都被分到一个类标。本发明能在可扩展的大规模分布式平台上执行聚类,在面对大规模数据量的时候可适量扩展机器以提升计算能力,在可接受的时间内得出准确度较高的聚类结果。
Description
技术领域
本发明涉及计算机及数据挖掘领域,具体来说涉及一种基于机器学习的大规模分布式的数据聚类方法。
背景技术
目前,随着大数据、云计算为核心的互联网技术的迅速发展,作为大数据核心技术的数据分析技术正在吸引越来越多的研究和关注。其中数据聚类是数据处理中最关键的步骤。在面对如今庞大的数据时,为了得到准确的数据分析结果,必须尽可能的提高数据聚类算法的准确率与效率。
在现有的数据聚类算法中,分别有基于划分,基于密度,基于网格等不同的算法,这些算法采用不同的方法来分割与度量数据点,从而得到不同的聚类。
这些算法往往是基于单机设备进行设计的,在面对小规模数据时,上述算法尚可以得到理想的结果,而在处理大规模数据时,由于算法无法在多机上进行有效的扩展,因此存在准确度下降,迭代次数过多等问题。这样一来,可能会导致算法无法在有效时间内得出结果,或者是得出的聚类不准确。
发明内容
为了解决现有聚类算法在面对大规模数据时性能不足的问题,本发明将聚类算法根据MapReduce框架进行了并行化创新,提出了一种基于机器学习的大规模分布式的数据聚类方法,该方法是能够提供有效扩展的高性能的基于大规模分布式平台Spark的并行化数据聚类算法。
为了实现以上目的,本发明的技术方案为:
一种基于机器学习的大规模分布式的数据聚类方法,包括以下步骤:
1)输入需要分类的数据点以及聚类个数k,其中包含数据点索引以及数据点的坐标,数据形式如下,<n,coordinate>,其中n表示第n个数据点,coordinate表示数据点的坐标;
2)对数据点进行预处理,即给数据加上索引;
3)根据索引数据计算距离矩阵;
4)根据步骤3)得到的距离矩阵计算每个数据点的密度信息;
5)根据步骤3)得到的距离矩阵以及步骤4)得到的密度信息得到每个数据点的最小距离信息以及其对应索引;
6)根据步骤4)的密度信息以及步骤5)得到的最小距离信息确定k个聚类中心;
7)根据步骤4)的最小距离信息以及步骤6)确定的聚类中心对所有未被分配类标的数据点进行聚类,直到所有数据点都被分到一个类标。上述步骤2)输入包含的索引指的是点索引,是一个一维坐标,表明是第n个点;预处理中的索引是所求距离在距离矩阵的索引,是一个二维坐标,表明是求第i个点和第j个点的之间的距离。
进一步地,所述步骤4)的实现方式为:
步骤41),对每一个数据点i,由距离矩阵得到与数据点i距离大于给定值dc的所有数据点,对每一个数据点输出(i,1);
步骤42),对数据点i相同的所有数据进行求和,即可得到数据点i的密度。
进一步地,所述步骤6)的实现方式为:
步骤61),将每个数据点的最小距离与密度求出乘积。
步骤62),对该结果进行降序排序,取前k个点作为聚类中心。是根据聚类中心在其聚类中拥有最大密度,与此同时,聚类中心应当与其他类的中心的距离极大,因此上述结果较大的点最有可能是聚类中心,故取前k个点作为聚类中心。
与现有技术相比,本发明具有以下效果:本发明是能够在可扩展的大规模分布式平台上执行聚类算法,在面对大规模数据量的时候可以适量扩展机器以提升计算能力,在可接受的时间内得出准确度较高的聚类结果。
附图说明
图1为本发明的算法流程图。
图2为MapReduce运行原理图。
图3为本发明并行化运行原理图。
图4为本发明的聚类结果图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。
一种基于机器学习的大规模分布式的数据聚类方法,包括以下步骤:
1)输入需要分类的数据点以及聚类个数k,其中包含数据点索引以及数据点的坐标,数据形式如下,<n,coordinate>。
2)对数据点进行预处理,即使用MapReduce框架中的Map函数为数据点添加索引,步骤如下:
21)对每一个数据点,根据距离矩阵生成若干个键值对,其中每一个点生成的键值对的数量根据它在距离矩阵中需要的次数而定,生成的键值对形如<<index_x,index_y>,coordinate>;
22)通过Reduce函数合并键相同的键值对,并计算出两个坐标之间的距离,得到距离矩阵<<index_x,index_y>,distance>;
3)定义点的密度公式如下:ρi=ΣX(dij-dc),其中Χ(m)是一个判别函数,当m大于0时输出1,否则输出0。dc是自定义的一个最小距离,dij表示点i与点j之间的距离;
4)基于步骤3)得到的距离信息,依据上面定义的密度公式使用Map函数处理每一对数据点,<<index_x,index_y>,distance>,对这些数据点生成新的键值对。即若distance大于给定的值,则输出<x,1>,<y,1>,否则不产生任何输出。
5)通过Reduce操作合并键相同的键值对,计算出每个数据点对应的密度,因此可以得到每个数据点的密度信息,<x,ρx>;
6)定义点j的最小距离如下:基于步骤5)得到的密度信息,对每一个数据点进行排序。对排序过的数据,使用一个Map函数为它们加上一个新的索引,形如<sortedIndex,<x,ρx>>,由此得到了加过排序索引的数据。此时需要使用另外一个Map函数对这个拥有排序索引的数据进行处理。对每一个数据,Map函数输出两类键值对,<sortedIndex,<i,TRUE>>,以及<x,<i,FALSE>>。其中x从sortedIndex取到n,也就是待分类的样本点的个数。
7)接下来使用一个Combine函数将上面产生的数据进行合并。这样可以得到一个形如<sortedIndex,List<i,bool>>键值对。再次使用Map函数对数据进行处理,对每一个点i,输出<<i,j>,pointIndex>,j从i取到n。其中pointIndex指得是i与j亮点中密度较小点的索引。
8)得到Map函数的输出后,将该数据与距离信息<<i,j>,distance>连接,得到形如<<i,j>,<pointIndex,dij>>的数据。
9)使用Reduce函数对步骤8)得到的数据进行处理,对其中的每一个i,可以找到一个点near,使点near是密度大于数据点i的点中与数据点i距离最近的点。该函数的输出为<pointIndex,<near,distance>>;
10)根据以上步骤,对于每一个数据点均能得到两个重要数据,一个是该点的密度信息,一个是该点与密度比该点大的点的最近距离。根据这两个数据可以确定出数据点的聚类中心,计算每个数据点的θi,定义为θi=δi*ρi。
11)将θi从大到小进行排序,取前k个数据点作为聚类的中心。这样就得到了k个聚类中心。
12)根据这k个中心点,配合之前计算得到的每个点的最小距离及其索引,通过宽度优先搜索,可以将每个点的类标都分配为这k个中心点中的一个。具体步骤如下:
对未分配的数据点i进行查找,根据δi数据可以查找到数据点near,数据点near的密度大于数据点i,且距离数据点i最近,根据本发明的思想,数据点i的类标应该与数据点near相同。因此将数据点i的类标置为与数据点near相同。循环迭代此操作,所有的点都会被分到一个类中。
以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (3)
1.一种基于机器学习的大规模分布式的数据聚类方法,其特征在于,包括以下步骤:
1)输入需要分类的数据点以及聚类个数k,其中包含数据点索引以及数据点的坐标,数据形式如下,<n,coordinate>,其中n表示第n个数据点,coordinate表示数据点的坐标;
2)对数据点进行预处理,即给数据加上索引;
3)根据索引数据计算距离矩阵;
4)根据步骤3)得到的距离矩阵计算每个数据点的密度信息;
5)根据步骤3)得到的距离矩阵以及步骤4)得到的密度信息得到每个数据点的最小距离信息以及其对应索引;
6)根据步骤4)的密度信息以及步骤5)得到的最小距离信息确定k个聚类中心;
7)根据步骤4)的最小距离信息以及步骤6)确定的聚类中心对所有未被分配类标的数据点进行聚类,直到所有数据点都被分到一个类标。
2.根据权利要求1所述的数据聚类方法,其特征在于,所述步骤4)的实现方式为:
步骤41),对每一个数据点i,由距离矩阵得到与数据点i距离大于给定值dc的所有数据点,对每一个数据点输出(i,1);
步骤42),对数据点i相同的所有数据进行求和,即可得到数据点i的密度。
3.根据权利要求1所述的数据聚类方法,其特征在于,所述步骤6)的实现方式为:
步骤61),将每个数据点的最小距离与密度求出乘积。
步骤62),对该结果进行降序排序,取前k个数据点作为聚类中心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610086276.5A CN105760478A (zh) | 2016-02-15 | 2016-02-15 | 一种基于机器学习的大规模分布式的数据聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610086276.5A CN105760478A (zh) | 2016-02-15 | 2016-02-15 | 一种基于机器学习的大规模分布式的数据聚类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760478A true CN105760478A (zh) | 2016-07-13 |
Family
ID=56330809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610086276.5A Pending CN105760478A (zh) | 2016-02-15 | 2016-02-15 | 一种基于机器学习的大规模分布式的数据聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760478A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389140A (zh) * | 2017-08-14 | 2019-02-26 | 中国科学院计算技术研究所 | 基于Spark的快速寻找聚类中心的方法和系统 |
CN109711478A (zh) * | 2018-12-29 | 2019-05-03 | 中山大学 | 一种基于时序密度聚类的大规模数据群组搜索方法 |
CN111597187A (zh) * | 2017-08-30 | 2020-08-28 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
CN103150372A (zh) * | 2013-03-08 | 2013-06-12 | 江苏唯实科技有限公司 | 基于中心索引的海量高维数据的聚类方法 |
CN103544328A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的并行k均值聚类方法 |
CN104615638A (zh) * | 2014-11-25 | 2015-05-13 | 浙江银江研究院有限公司 | 一种面向大数据的分布式密度聚类方法 |
-
2016
- 2016-02-15 CN CN201610086276.5A patent/CN105760478A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102915347A (zh) * | 2012-09-26 | 2013-02-06 | 中国信息安全测评中心 | 一种分布式数据流聚类方法及系统 |
CN103150372A (zh) * | 2013-03-08 | 2013-06-12 | 江苏唯实科技有限公司 | 基于中心索引的海量高维数据的聚类方法 |
CN103544328A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的并行k均值聚类方法 |
CN104615638A (zh) * | 2014-11-25 | 2015-05-13 | 浙江银江研究院有限公司 | 一种面向大数据的分布式密度聚类方法 |
Non-Patent Citations (2)
Title |
---|
WEIZHONG ZHAO 等: ""Parallel K-Means Clustering Based on Mapreduce"", 《IEEE INTERNATIONAL CONFERENCE ON CLOUD COMPUTING》 * |
冀素琴 等: ""面向海量数据的K-means聚类优化算法"", 《计算机工程与应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109389140A (zh) * | 2017-08-14 | 2019-02-26 | 中国科学院计算技术研究所 | 基于Spark的快速寻找聚类中心的方法和系统 |
CN111597187A (zh) * | 2017-08-30 | 2020-08-28 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN111597187B (zh) * | 2017-08-30 | 2023-09-01 | 第四范式(北京)技术有限公司 | 用于执行机器学习的分布式系统及其方法 |
CN109711478A (zh) * | 2018-12-29 | 2019-05-03 | 中山大学 | 一种基于时序密度聚类的大规模数据群组搜索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sreedhar et al. | Clustering large datasets using K-means modified inter and intra clustering (KM-I2C) in Hadoop | |
Xiao et al. | SMK-means: an improved mini batch k-means algorithm based on mapreduce with big data | |
Qiang et al. | Fast multi-view discrete clustering with anchor graphs | |
Luo et al. | A parallel dbscan algorithm based on spark | |
Kumar et al. | Canopy clustering: a review on pre-clustering approach to k-means clustering | |
Ali et al. | A novel approach for big data classification based on hybrid parallel dimensionality reduction using spark cluster | |
CN105760478A (zh) | 一种基于机器学习的大规模分布式的数据聚类方法 | |
Chen et al. | Clustering in big data | |
Zhang et al. | Enabling in-situ data analysis for large protein-folding trajectory datasets | |
Li et al. | Scalable random forests for massive data | |
Lu et al. | Distributed density peaks clustering revisited | |
CN109978051A (zh) | 基于混合神经网络的监督分类方法 | |
CN108108251A (zh) | 一种基于MPI并行化的参考点k近邻分类方法 | |
Liu et al. | A weight-incorporated similarity-based clustering ensemble method | |
Jiang et al. | Hierarchical solving method for large scale TSP problems | |
CN108021935B (zh) | 一种基于大数据技术的维度约简方法及装置 | |
Yang et al. | A fast and efficient grid-based K-means++ clustering algorithm for large-scale datasets | |
Suryawanshi et al. | A novel approach for data clustering using improved Kmeans algorithm | |
CN108268620A (zh) | 一种基于hadoop数据挖掘的文档分类方法 | |
CN105354243B (zh) | 基于归并聚类的并行化频繁概率子图搜索方法 | |
He et al. | A novel DBSCAN based on binary local sensitive hashing and binary-KNN representation | |
Kang et al. | Spectral clustering for large-scale social networks via a pre-coarsening sampling based nyström method | |
Zhang et al. | Coarse-grained parallel AP clustering algorithm based on intra-class and inter-class distance | |
CN103150372B (zh) | 基于中心索引的海量高维音频数据的聚类方法 | |
CN102663141B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |