CN106203507A - 一种基于分布式计算平台改进的k均值聚类方法 - Google Patents

一种基于分布式计算平台改进的k均值聚类方法 Download PDF

Info

Publication number
CN106203507A
CN106203507A CN201610541225.7A CN201610541225A CN106203507A CN 106203507 A CN106203507 A CN 106203507A CN 201610541225 A CN201610541225 A CN 201610541225A CN 106203507 A CN106203507 A CN 106203507A
Authority
CN
China
Prior art keywords
limit
algorithm
weights
feature
distance
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
Application number
CN201610541225.7A
Other languages
English (en)
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.)
Shanghai Branch Intelligent Technology Co Ltd
Original Assignee
Shanghai Branch Intelligent Technology Co Ltd
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 Shanghai Branch Intelligent Technology Co Ltd filed Critical Shanghai Branch Intelligent Technology Co Ltd
Priority to CN201610541225.7A priority Critical patent/CN106203507A/zh
Publication of CN106203507A publication Critical patent/CN106203507A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于分布式计算平台改进的k均值聚类方法,针对海量数据处理慢的问题引入了分布式计算平台Spark的,针对迭代次数过多的问题,引入卡洛斯卡尔算法,针对没有考虑向量各特征间的相关性,引入谷本距离。首先,通过克洛斯卡尔算法来对随机选取的k个点来构造最小生成树并求出对应的权值和,重复n次,然后按照这n次得到的权值和,从中选取出最大的权值和并且确保由k个点组成的边之间的距离值相差不大,这样可以保证簇心相对均匀分布,最后使用经谷本距离改进后的k均值算法进行聚类运算。

Description

一种基于分布式计算平台改进的k均值聚类方法
技术领域
本发明涉及一种在机器学习中适用于分布式计算平台Spark改进的k均值聚类方法,属于数据挖掘技术领域。
背景技术
互联网技术和信息技术的飞速发展导致了信息资源的急剧增长,从而引起严重的信息过载的问题。如何从海量的数据中挖掘出隐含的有用的信息引起人们越来越多的关心,机器学习技术由此产生。聚类分析就是其中相当重要的一部分。它将抽象或者物理的对象的集合组成多个类,使得同一个类的对象之间具有较高的相似度,而不同类的对象之间相似度尽可能的低。在机器学习领域,国内外提出了划分型类聚、密度型类聚、网络型类聚类聚算法。就目前的聚类算法而言还存在如下这些问题:对于初始中心选择敏感,极易陷入局部最优解的问题;对于海量数据和高维数据的处理能力有限的问题等。k均值算法是非常经典的基于划分的聚类算法,由Macqueen在1967年提出的解决聚类问题的经典算法。
k均值算法由于其快速简单而被广泛的使用,然而在实际中发现了k均值存在一些问题,如对初始中心敏感,必须给出簇的数目,聚类的结果容易受到噪声的干扰,对海量数据的处理速度,数据的迭代次数多等问题。目前,国内外学者提出一系列对此改的方法,但是这些改进增加了k均值算法的复杂度,增加了数据处理的迭代次数以及对海量数据的处理十分慢。
所以本发明提出一种基于分布式计算平台改进的k均值聚类方法来解决上述问题。
现有技术一
单机版本的通过卡洛斯卡尔算法来对初始中心进行选择后改进的k均值算法。
现有技术一的技术方案
根据克洛斯卡尔算法对随机选取的k个点求出这k个点的最小生成树权值和,重复n次,然后根据这n次的权值和选取出权值和最大的,最后使用k均值算法进行聚类运算。具体步骤如下:
1)从样本中随机选取k个数据向量,对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,对这选取的k个数据向量,使用克洛斯卡尔算法,求出最小生成树的权值和,重复这个过程n次,记第i次计算得到的最小生成树权值和为di
2)求出最小生成树权值和中的最大值MAX(d1,d2,...,dn)对应的由k个数据向量组成的点集;
3)根据欧式距离公式计算数据向量到k个簇心的距离,根据计算获得k个距离值,取到簇中心距离最小的数据向量放入这个簇心对应的蔟中,然后根据每个簇的所有数据向量求平均值来更新蔟中心,此时,计算上一次k个蔟中心与更新后对应的蔟中心之间的欧式距离,得到k个欧氏距离值,倘若k个欧氏距离值都小于规定的误差阈值或达到迭代次数时,转步骤4),否则继续迭代;
4)输出聚类结果。
现有技术一的缺点
1)对于海量数量和数据向量维度特别的大的时候,单机版本的通过卡洛斯卡尔算法来对初始中心进行选择后改进的k均值算法的处理速度十分的缓慢或者根本无法运行。
2)选择初始中心以后进行k均值运算时,没有考虑每个数据向量之间的相似度,直接使用欧氏距离来计算到每个簇心的距离来判定每个数据向量所属的簇,这样会导致实际的误差平方函数的数值增大。
现有技术二
分布式平台Spark自带的k均值++算法
现有技术二的技术方案
主要目的是尽量保证初始聚类中心点互相之间距离尽可能的远,具体步骤如下:
1)从数据向量集合中随机选一个向量作为聚类的第一个中心点。
2)对于数据向量集合中每个向量v,然后计算它与刚选择得到聚类的中心点之间的距离记为D(v)。
3)从中选一个新的数据向量作为下一个聚类的中心点,选择准则是:D(v)值越大的点,有更大的概率被选为为聚类的中心点。
4)重复步骤2),步骤3)直到k个聚类的中心点都被选出来为止。
5)这k个聚类中心点作为聚类的初始中心点来运行k均值算法。
现有技术二的缺点
由于k均值++没有很好的选择初始中心,没有很好的解决随机选择初始中心带来的迭代次数过多的问题。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于分布式计算平台改进的k均值聚类方法。针对现有技术一对海量数据和维数特别大的数据集处理速度慢或者根本无法运算的问题,本发明使用分布式计算平台Spark,可以通过搭建Spark集群来并行化运算,可以大大提高处理速度。针对现有技术一选取最小生成树和中的最大值而没有保证簇心相对均匀分布的问题,本发明提出,如果所选簇心点集中各点之间距离不能保证相差不大,这里需要设置一个阈值,则移除这个簇心点集,从剩下的那些点集中选择最小生成树权值和最大值的对应的点集作为簇心点集,判断此时簇心点集中各点之间距离是否保证相差不大,重复上述过程,这样可以有效地减少迭代次数。针对现有技术一没有考虑每个数据向量之间相关性问题,本发明引入谷本距离来进行计算每个数据向量到簇心的距离来判定每个数据向量应该属于哪个簇,这样选择的k个初始聚类中心可以减少误差平方函数的值,从而可以提高算法的正确率。针对现有技术二一次选取选取没有很好解决随机性的问题,本发明通过克洛斯卡尔来选择初始中心,通过重复n次来尽可能减少随机性所带来的问题,可以较好地减少迭代次数。
技术方案:一种基于分布式计算平台改进的k均值聚类方法,由于k均值算法存在随机选取初始中心导致最终簇心局部化最优解,对海量数据处理速度慢,数据迭代次数过多以及没有考虑向量之间的关联关系等问题,所以针对海量数据处理慢的问题引入了分布式计算平台Spark的,针对迭代次数过多的问题,引入卡洛斯卡尔算法,针对没有考虑向量各特征间的相关性,引入谷本距离。首先,通过克洛斯卡尔算法来对随机选取的k个点来构造最小生成树并求出对应的权值和,重复n次,然后按照这n次得到的权值和,从中选取出最大的权值和并且确保由k个点组成的边之间的距离值相差不大,这样可以保证簇心相对均匀分布,最后使用经谷本距离改进后的k均值算法进行聚类运算。其步骤如下:
1)从样本中随机选取k个数据向量,对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,对选取的k个数据向量,使用克洛斯卡尔算法,求出最小生成树的权值和,重复这个过程n次,记第i次计算得到的最小生成树权值和为di
2)求出最小生成树权值和中的最大值MAX(d1,d2,...,dn)对应的由k个数据向量组成的点集;
3)倘若求出的点集的各边的权值相差不大于0.1时,则将该点集作为初始簇中心的k个初始中心,转步骤4);否则排除该点集,转步骤2);
4)运行基于分布式计算平台Spark改进后的k均值算法;
对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,运行过程中根据谷本距离公式计算每个数据向量到k个簇中心的距离,根据计算得到的k个距离值,将数据向量放入到距离最小的这个簇心所对应的蔟中,然后通过每个簇中所有数据向量求平均值来更新蔟中心,此时,计算上一次k个蔟中心与更新后对应的蔟中心之间的欧式距离,得到k个欧氏距离值,倘若k个欧氏距离值都小于规定的误差阈值或达到迭代次数时,转步骤5),否则继续迭代;这里迭代是指迭代簇中心,通过迭代来更新蔟中心;
5)输出聚类结果。
所述的分布式计算平台Spark,介绍如下:
Spark是一个围绕易用性、速度和复杂分析构建的大数据处理框架,在大数据环境下提高了处理数据的实时性,并且保证了高可伸缩性和高容错性,此外可以将Spark部署由大量廉价机器之上来形成集群。
所述的克洛斯卡尔最小生成树算法,具体描述如下:
克洛斯卡尔算法的基本思想为:选择无向加权连通图G中权值最小,并且不和已经选择的边形成的环的边,并将其添加到边集E中;否则就选择下一条边,知道边集E中有n-1跳变为止(图G中有n个顶点)。
在无向加权连通图G=(V,E)中,V={V1,V2,...,Vn}是n个顶点构成的集合,E={e1,e2,...,em}是m条边构成的集合,W={W1,W2,...,Wm}是每条边对应的权值。构造生成树记住T=G{e1,e2,...,en-1}。
算法实现步骤:
1)初始化顶点集边集所有边的权值WT=0。
2)将所有的边的权值按照从小到大进行排序,记为E'。
3)选择没有在边集E中,权值最小,不和边集E中的边构成环,并且WT+Weij<<Wr+We′ij的边eij(e0是连接顶点i和j的边,Wij是eij的权值,e'ij是么有选择的边中的其它任何一边,W'是边e'ij的权值),将顶点i,j中没有在点集A中的点添加到A中,并将边eij添加到边集E中;否则不选择这条边。
4)重复第3步直到顶点集有n个顶点,边集中有n-1条边。
所述的最小生成树,具体描述如下:
在一个无向加权连通图所有生成树中,各边代价之和最小的那棵生成树称为该连通图的最小生成树。
所述的k均值算法,具体描述如下:
本发明所论述的k均值算法是在Spark中Spark Mllib这个子工程中实现的,在本发明的实现过程中,需要修改k均值的源码实现,并且需要重新编译整个Spark项目(25个子项目)。k均值算法实现步骤:
1)随机选取k个中心点。
2)计算所有数据向量到k个初始聚类的中心点的距离,将每个数据向量划分到距离最近的中心点所在的簇中。
3)计算每个聚类簇中各点的平均值,并作为新的中心点。
4)重复步骤2),3),直到这k个簇点不再变化或者收敛或者达到所设定的迭代次数。
所述的误差平方函数H定义为
H = Σ i = 1 k Σ j = 1 n i | | X i j - m i | | 2 - - - ( 1 )
其中Xij表示第i个类的第j个样本,i=1,2,...,k;j=1,2,...,ni,ni表示第i个类簇中的样本数,mi表示第i个的聚类中心。
所述的特征的规范化,定义为:
特征的规范化可以通过将每个特征转换为标准得分来完成,对每个特征取平均值,用每个特征减去平均值,然后除以特征的标准差,计算公式如下:
normalized i j = feature i j - μ j σ j - - - ( 2 )
其中normalizedij表示第i个数据向量的第j个特征的规划化后的值,featureij表示第i个数据向量的第j个特征值,μj表示所有数据向量的第j个特征的平均值,σj表示所有数据向量的第j个特征的标准差。
所述的聚类簇中心更新的计算公式,定义为:
k i = 1 m i Σ j = 1 m i X i j - - - ( 3 )
其中i=1,2,...,k,Ki表示第i个聚类蔟中心,Xij为第i簇中第j个样本。
所述的欧式距离计算公式,定义为
数据向量N=(n1,n2,...,np)和M=(m1,m2,...,mp)之间的距离d(m,n)为
d ( m , n ) = ( m 1 - n 1 ) 2 + ( m 2 - n 2 ) 2 + ... + ( m p - n p ) 2 - - - ( 4 )
其中m1,m2,...,mp是数据向量M的1维至p维数据集,n1,n2,...,np是数据向量N的1维至p维数据集。
谷本距离,定义为:
两个n维向量(a1,a2,...,an)和(b1,b2,...,bn)之间的谷本距离d,公式为:
d = 1 - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) ( a 1 2 + a 2 2 + ... + a n 2 ) + ( b 1 2 + b 2 2 + ... + b n 2 ) - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) - - - ( 5 ) .
有益效果:与现有技术相比,基于分布式计算平台改进的k均值聚类方法,通过使用KDD Cup 1999数据集(KDD Cup是一项数据挖掘竞赛,这是1999年竞赛的数据集,网址:http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html)进行测试,实验证明本发明的Spark集群TKKM算法比SKKM算法的有更短的运算时间和更大处理海量数据的能力,比Spark集群SKKM算法在数据向量之间具有相关性方面有更高的准确率,比Spark自带的k均值++算法有更少的迭代次数。
附图说明
图1是k均值算法的迭代过程,其中(a)为随机初始化三个簇中心,(b)为经过一次迭代以后,(c)为经过二次迭代以后,(d)为经过三次迭代以后;
图2是Spark生态系统图;
图3是Spark的任务执行图;
图4是基于分布式计算平台改进的k均值聚类方法流程图;
图5是克洛斯卡尔算法构造最小生成树的过程图;
图6是随着簇的个数增加,平方误差函数的值H的变化图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
基本思想:本发明是一种基于分布式计算平台改进的k均值聚类方法,由于k均值算法存在随机选取初始中心导致最终簇心局部化最优解,对海量数据处理速度慢,数据迭代次数过多以及没有考虑向量之间的关联关系等问题,所以针对对海量数据处理慢的问题引入了分布式计算平台Spark的,针对迭代次数过多的问题,引入卡洛斯卡尔算法,针对没有考虑向量各特征间的相关性,引入谷本距离。首先,根据克洛斯卡尔算法对随机选取的k个点求出这k个点的最小生成树权值和,重复n次,然后根据这n次的权值和选取出权值和最大并保证k个点的各边的权值相差不大,这样可以保证簇心相对均匀分布,最后使用经谷本距离改进后的k均值算法进行聚类运算。
其步骤如下:
1)从样本中随机选取k个数据向量,对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,对选取的k个数据向量,使用克洛斯卡尔算法,求出最小生成树的权值和,重复这个过程n次,记第i次计算得到的最小生成树权值和为di
2)求出最小生成树权值和中的最大值MAX(d1,d2,...,dn)对应的由k个数据向量组成的点集;
3)倘若求出的点集的各边的权值相差不大于0.1时,则将该点集作为初始簇中心的k个初始中心,转步骤4);否则排除该点集,转步骤2);
4)然后运行基于分布式计算平台Spark改进后的k均值算法:对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,运行过程中根据谷本距离公式计算每个数据向量到k个簇中心的距离,根据计算得到的k个距离值,将数据向量放入到距离最小的这个簇心所对应的蔟中,然后通过每个簇中所有数据向量求平均值来更新蔟中心,此时,计算上一次k个蔟中心与更新后对应的蔟中心之间的欧式距离,得到k个欧氏距离值,倘若k个欧氏距离值都小于规定的误差阈值或达到迭代次数时,转步骤5),否则继续迭代;
5)输出聚类结果。
分布式计算平台Spark,介绍如下:
Spark是一个围绕易用性、速度和复杂分析构建的大数据处理框架,在大数据环境下提高了处理数据的实时性,并且保证了高可伸缩性和高容错性,此外可以将Spark部署由大量廉价机器之上来形成集群。
克洛斯卡尔最小生成树算法,具体描述如下:
克洛斯卡尔算法的基本思想为:选择无向加权连通图G中权值最小,并且不和已经选择的边形成的环的边,并将其添加到边集E中;否则就选择下一条边,知道边集E中有n-1跳变为止(图G中有n个顶点)。
在无向加权连通图G=(V,E)中,V={V1,V2,...,Vn}是n个顶点构成的集合,E={e1,e2,...,em}是m条边构成的集合,W={W1,W2,...,Wm}是每条边对应的权值。构造生成树记住T=G{e1,e2,...,en-1}。
算法实现步骤:
1)初始化顶点集边集所有边的权值WT=0。
2)将所有的边的权值按照从小到大进行排序,记为E'。
3)选择没有在边集E中,权值最小,不和边集E中的边构成环,并且WT+Weij<<Wr+We′ij的边eij(e0是连接顶点i和j的边,Wij是eij的权值,e'ij是么有选择的边中的其它任何一边,W'是边e'ij的权值),将顶点i,j中没有在点集A中的点添加到A中,并将边eij添加到边集E中;否则不选择这条边。
4)重复第3步直到顶点集有n个顶点,边集中有n-1条边。
最小生成树,具体描述如下:
在一个无向加权连通图所有生成树中,各边代价之和最小的那棵生成树称为该连通图的最小生成树。
所述的k均值算法,具体描述如下:
本发明的k均值算法是在Spark中Spark Mllib这个子工程中实现的,在本发明的实现过程中,需要修改k均值的源码实现,并且需要重新编译整个Spark项目(25个子项目)。k均值算法实现步骤:
1)随机选取k个中心点。
2)计算所有数据向量到k个初始聚类的中心点的距离,将每个数据向量划分到距离最近的中心点所在的簇中。
3)计算每个聚类簇中各点的平均值,并作为新的中心点。
4)重复步骤2),3),直到这k个簇点不再变化或者收敛或者达到所设定的迭代次数。
误差平方函数H定义为
H = Σ i = 1 k Σ j = 1 n i | | X i j - m i | | 2 - - - ( 1 )
其中Xij表示第i个类的第j个样本,i=1,2,...,k;j=1,2,...,ni,ni表示第i个类簇中的样本数,mi表示第i个的聚类中心。
特征的规范化,定义为:
特征的规范化可以通过将每个特征转换为标准得分来完成,对每个特征取平均值,用每个特征减去平均值,然后除以特征的标准差,计算公式如下:
normalized i j = feature i j - μ j σ j - - - ( 2 )
其中normalizedij表示第i个数据向量的第j个特征的规划化后的值,featureij表示第i个数据向量的第j个特征值,μj表示所有数据向量的第j个特征的平均值,σj表示所有数据向量的第j个特征的标准差。
聚类簇中心更新的计算公式,定义为:
k i = 1 m i Σ j = 1 m i X i j - - - ( 3 )
其中i=1,2,...,k,Ki表示第i个聚类蔟中心,Xij为第i簇中第j个样本。
欧式距离计算公式,定义为
数据向量N=(n1,n2,...,np)和M=(m1,m2,...,mp)之间的距离d(m,n)为
d ( m , n ) = ( m 1 - n 1 ) 2 + ( m 2 - n 2 ) 2 + ... + ( m p - n p ) 2 - - - ( 4 )
其中m1,m2,...,mp是数据向量M的1维至p维数据集,n1,n2,...,np是数据向量N的1维至p维数据集。
谷本距离,定义为:
两个n维向量(a1,a2,...,an)和(b1,b2,...,bn)之间的谷本距离d,公式为:
d = 1 - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) ( a 1 2 + a 2 2 + ... + a n 2 ) + ( b 1 2 + b 2 2 + ... + b n 2 ) - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) - - - ( 5 ) .
本发明所使用的数据集基本特征如表1所示。
表1 数据集基本特征
本发明所使用的平台是分布式计算平台Spark,在实验中Spark是以Spark集群的方式,基本情况如下表2所示。
表2 Spark集群的各机器的参数配置和运行进程
机器IP 内存 cpu 运行进程
192.168.189.150 6g 2个酷睿i7处理器 Master、Slave
192.168.189.151 3g 2个酷睿i7处理器 Slave
192.168.189.152 3g 2个酷睿i7处理器 Slave
这里简记通过卡洛斯卡尔算法改进的k均值算法为SKKM算法。
这里简记能运行在Spark集群环境的SKKM算法为Spark集群SKKM算法。
这里简记通过谷本距离和克洛斯卡尔算法改进的K均值算法为TKKM算法。
这里简记能运行在Spark集群环境的TKKM算法为Spark集群TKKM算法。
这里需要说明一下,为了使SKKM算法和TKKM算法能够运行在Spark集群上,需要通过修改Spark机器学习中k均值的源码,然后通过maven来实现对Spark整体工程重新编译。
为了能获得更好的性能之前需要选择合适的K值。本发明通过Spark自带的随机初始中心的k均值算法进行选择合适的k值,k从10到120进行,步进为10,评价指标位误差平方函数H,重复20次,实验结果图6所示,此处需要说明一下图6的误差平方函数值缩小了108倍,仅仅是为了显示方便。
根据图6所示当k=100时,平方误差函数值H已经趋近平稳,取大于100的k值,反而会增加计算的复杂度。
针对现有技术一第一个技术缺点:处理海量数据和很大维度数据向量数据集运算速度慢或无法运算的问题,本发明通过Spark集群的方式解决,本文中通过eclipse运行SKKM算法来模拟单机版,Spark集群运行SKKM算法和TKKM算法,重复20次上述运算,记录每一次运算的时间,取平均值的方式来消除偶然因素的影响。记录结果如下表3。
根据表3结果可以看到,当数据量很小的时候,单机版本SKKM算法运行时间比Spark集群SKKM算法及Spark集群TKKM算法短,当数据不断增大时,单机版本SKKM算法的时间开始快速增加,Spark集群SKKM算法和Spark集群TKKM算法的运行时间增加相对缓慢,当数据量超出单机版本运算能力时,Spark集群SKKM算法和Spark集群TKKM算法还能很快完成运算。这边需要说明一下,本发明的是能运行在Spark集群上的TKKM算法,这里之所以运算时间比Spark集群SKKM算法长是因为谷本距离的时间复杂度比欧氏距离的大。当前信息技术快速发展,信息以爆炸式增长,远远超出单机的运算能力,而Spark可以通过不断添加廉价的机器扩展集群大小来满足运算的需求,这就是本发明第一个优势。
表3 单机和分布式集群运算时间
数据样本个数 单机SKKM算法 Spark集群SKKM算法 Spark集群TKKM算法
1000 41s 92s 92s
10000 59s 105s 107s
100000 70s 112s 118s
1000000 136s 150s 161s
10000000 1045s 189s 203s
20000000 内存溢出无法运行 265s 284s
针对现有技术一第二个技术缺点:选择初始中心以后进行k均值运算时,没有考虑每个数据向量之间的相似度。本发明引入谷本距离来计算每个数据向量到每个簇心的距离来决定每个数据向量属于哪个簇,默认使用的是欧氏距离,使用谷本距离的算法是Spark集群TKKM算法,使用欧氏距离的算法是Spark集群SKKM算法,本发明通过误差平方函数H来评价这两个算法在性能上的情况。通过重复20次求平均值来减少误差,结果记录如下表4所示。
表4 Spark集群SKKM算法和Spark集群TKKM算法的误差平方函数值E
算法 Spark集群SKKM算法 Spark集群TKKM算法
误差平方函数值H 229.551758969970706 164.192648887949918
根据表4可以看到,Spark集群TKKM算法的误差平方函数值H比Spark集群SKKM算法的误差平方函数值H降低了,可以看出在数据向量之间存在相关性的数据集上引入谷本距离可以降低k均值算法的误差平方函数值,从而得到更好的聚类结果。
针对现有技术二Spark自带的k均值++算法的缺点:由于k均值++没有很好的选择初始中心,没有很好的解决随机选择初始中心带来的迭代次数过多的问题。本发明引入克洛斯卡尔算法,为了消除谷本距离引入带来的影响,本发明还需Spark集群SKKM算法作一个参照。这里使用运算的迭代次数作为指标。重复20次,记录每次的各个算法的迭代次数来消除偶然因素带来的影响。实验结果记录在表5中,这里需要说明一下,记录数据采用四舍五入的方式。
表5 各种算法在相同环境下的迭代次数
算法 Spark自带k均值 Spark自带k均值++ Spark集群SKKM Spark集群TKKM
迭代次数 143 20 16 16
根据表5可以看到,Spark自带k均值由于随机选择初始中心,导致迭代次数特别的多,Spark集群SKKM算法与Spark集群TKKM算法的迭代次数基本相当,说明谷本距离的引入对于迭代次数而言并没有增加,Spark集群TKKM算法的迭代次数比Spark自带k均值迭代次数减少了4次,减少了25%,很好的说明Spark集群TKKM算法可以很好的减少运算的迭代次数。
综合上面实验结果数据证明本发明的Spark集群TKKM算法比SKKM算法的有更短的运算时间和更大处理海量数据的能力,比Spark集群SKKM算法在数据向量之间具有相关性方面有更高的准确率,比Spark自带的k均值++算法有更少的迭代次数。

Claims (8)

1.一种基于分布式计算平台改进的k均值聚类方法,其特征在于:首先,根据克洛斯卡尔算法对随机选取的k个点求出该点集的最小生成树权值和,重复n次,然后根据这n次的权值和选取出权值和最大并保证该点集的各边的权值相差不大,这样可以保证簇心相对均匀分布,最后使用经谷本距离改进后的k均值算法进行聚类运算,其步骤如下:
1)从样本中随机选取k个数据向量,对每个数据向量的每一特征进行规范化,使数据向量的每一特征的取值在0~1之间,对选取的k个数据向量,使用克洛斯卡尔算法,求出最小生成树的权值和,重复这个过程n次,记第i次计算得到的最小生成树权值和为di
2)求出最小生成树权值和中的最大值MAX(d1,d2,...,dn)对应的由k个数据向量组成的点集;
3)倘若求出的点集的各边的权值相差不大时,则将该点集作为初始簇中心的k个初始中心,转步骤4);否则排除该点集,转步骤2);
4)然后运行基于分布式计算平台Spark改进后的k均值算法;
运行过程中根据谷本距离公式计算每个数据向量到k个簇中心的距离,根据计算得到的k个距离值,将数据向量放入到距离最小的这个簇心所对应的蔟中,然后通过每个簇中所有数据向量求平均值来更新蔟中心,此时,计算上一次k个蔟中心与更新后对应的蔟中心之间的欧式距离,得到k个欧氏距离值,倘若k个欧氏距离值都小于规定的误差阈值或达到迭代次数时,转步骤5),否则继续迭代;
5)输出聚类结果。
2.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的克洛斯卡尔最小生成树算法,具体描述如下:
克洛斯卡尔算法的基本思想为:选择无向加权连通图G中权值最小,并且不和已经选择的边形成的环的边,并将其添加到边集E中;否则就选择下一条边,知道边集E中有n-1跳变为止(图G中有n个顶点);
在无向加权连通图G=(V,E)中,V={V1,V2,...,Vn}是n个顶点构成的集合,E={e1,e2,...,em}是m条边构成的集合,W={W1,W2,...,Wm}是每条边对应的权值。构造生成树记住T=G{e1,e2,...,en-1};
算法实现步骤:
1)初始化顶点集边集所有边的权值WT=0;
2)将所有的边的权值按照从小到大进行排序,记为E';
3)选择没有在边集E中,权值最小,不和边集E中的边构成环,并且WT+Weij<<Wr+We′ij的边eij(e0是连接顶点i和j的边,Wij是eij的权值,e'ij是么有选择的边中的其它任何一边,W'是边e'ij的权值),将顶点i,j中没有在点集A中的点添加到A中,并将边eij添加到边集E中;否则不选择这条边;
4)重复第3步直到顶点集有n个顶点,边集中有n-1条边;
所述的最小生成树,具体描述如下:
在一个无向加权连通图所有生成树中,各边代价之和最小的那棵生成树称为该连通图的最小生成树。
3.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的k均值算法实现步骤:
1)随机选取k个中心点;
2)计算所有数据向量到k个初始聚类的中心点的距离,将每个数据向量划分到距离最近的中心点所在的簇中;
3)计算每个聚类簇中各点的平均值,并作为新的中心点;
4)重复步骤2),3),直到这k个簇点不再变化或者收敛或者达到所设定的迭代次数。
4.如权利要求3所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,k均值性能指标的误差平方函数H定义为
H = Σ i = 1 k Σ j = 1 n i | | X i j - m i | | 2 - - - ( 1 )
其中Xij表示第i个类的第j个样本,i=1,2,...,k;j=1,2,...,ni,ni表示第i个类簇中的样本数,mi表示第i个的聚类中心。
5.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的特征的规范化,定义为:
特征的规范化可以通过将每个特征转换为标准得分来完成,对每个特征取平均值,用每个特征减去平均值,然后除以特征的标准差,计算公式如下:
normalized i j = feature i j - μ j σ j - - - ( 2 )
其中normalizedij表示第i个数据向量的第j个特征的规划化后的值,featureij表示第i个数据向量的第j个特征值,μj表示所有数据向量的第j个特征的平均值,σj表示所有数据向量的第j个特征的标准差。
6.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的聚类簇中心更新的计算公式,定义为:
k i = 1 m i Σ j = 1 m i X i j - - - ( 3 )
其中i=1,2,...,k,Ki表示第i个聚类蔟中心,Xij为第i簇中第j个样本。
7.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的欧式距离计算公式,定义为
数据向量N=(n1,n2,...,np)和M=(m1,m2,...,mp)之间的距离d(m,n)为
d ( m , n ) = ( m 1 - n 1 ) 2 + ( m 2 - n 2 ) 2 + ... + ( m p - n p ) 2 - - - ( 4 )
其中m1,m2,...,mp是数据向量M的1维至p维数据集,n1,n2,...,np是数据向量N的1维至p维数据集。
8.如权利要求1所述的基于分布式计算平台改进的k均值聚类方法,其特征在于,所述的谷本距离,定义为:
两个n维向量(a1,a2,...,an)和(b1,b2,...,bn)之间的谷本距离d,公式为:
d = 1 - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) ( a 1 2 + a 2 2 + ... + a n 2 ) + ( b 1 2 + b 2 2 + ... + b n 2 ) - ( a 1 b 1 + a 2 b 2 + ... + a n b n ) - - - ( 5 ) .
CN201610541225.7A 2016-07-11 2016-07-11 一种基于分布式计算平台改进的k均值聚类方法 Pending CN106203507A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610541225.7A CN106203507A (zh) 2016-07-11 2016-07-11 一种基于分布式计算平台改进的k均值聚类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610541225.7A CN106203507A (zh) 2016-07-11 2016-07-11 一种基于分布式计算平台改进的k均值聚类方法

Publications (1)

Publication Number Publication Date
CN106203507A true CN106203507A (zh) 2016-12-07

Family

ID=57474202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610541225.7A Pending CN106203507A (zh) 2016-07-11 2016-07-11 一种基于分布式计算平台改进的k均值聚类方法

Country Status (1)

Country Link
CN (1) CN106203507A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682116A (zh) * 2016-12-08 2017-05-17 重庆邮电大学 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
CN106777090A (zh) * 2016-12-14 2017-05-31 大连交通大学 基于视觉词汇表与多特征匹配的Skyline的医学大数据检索方法
CN106777094A (zh) * 2016-12-14 2017-05-31 大连大学 基于视觉词汇表与多特征匹配的Skyline的医学大数据检索系统
CN107291873A (zh) * 2017-06-16 2017-10-24 晶赞广告(上海)有限公司 地理位置聚类方法
CN107423764A (zh) * 2017-07-26 2017-12-01 西安交通大学 基于NSS‑AKmeans和MapReduce处理大数据的K‑Means聚类方法
CN107480694A (zh) * 2017-07-06 2017-12-15 重庆邮电大学 基于Spark平台采用两次评价的加权选择集成三支聚类方法
CN107707494A (zh) * 2017-10-10 2018-02-16 苏州大学 用于64‑qam相干光通信系统的光纤非线性均衡方法
CN109033084A (zh) * 2018-07-26 2018-12-18 国信优易数据有限公司 一种语义层次树构建方法以及装置
CN110261828A (zh) * 2019-07-22 2019-09-20 西安电子工程研究所 基于距离-角误差二维聚类的横向干扰判定方法
CN110543588A (zh) * 2019-08-27 2019-12-06 中国科学院软件研究所 一种面向大规模流数据的分布式聚类方法及系统
CN110705606A (zh) * 2019-09-12 2020-01-17 武汉大学 一种基于Spark分布式内存计算的空间K均值聚类方法
CN111145223A (zh) * 2019-12-16 2020-05-12 盐城吉大智能终端产业研究院有限公司 多摄像头识别人员行为轨迹分析方法
CN113298103A (zh) * 2020-05-27 2021-08-24 阿里巴巴集团控股有限公司 向量聚类训练方法及装置
CN114138966A (zh) * 2021-11-30 2022-03-04 四川大学 一种基于弱监督学习的网络威胁情报文本关键信息抽取方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106682116A (zh) * 2016-12-08 2017-05-17 重庆邮电大学 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
CN106682116B (zh) * 2016-12-08 2020-08-04 重庆邮电大学 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
CN106777090A (zh) * 2016-12-14 2017-05-31 大连交通大学 基于视觉词汇表与多特征匹配的Skyline的医学大数据检索方法
CN106777094A (zh) * 2016-12-14 2017-05-31 大连大学 基于视觉词汇表与多特征匹配的Skyline的医学大数据检索系统
CN107291873B (zh) * 2017-06-16 2020-02-18 晶赞广告(上海)有限公司 地理位置聚类方法
CN107291873A (zh) * 2017-06-16 2017-10-24 晶赞广告(上海)有限公司 地理位置聚类方法
CN107480694B (zh) * 2017-07-06 2021-02-09 重庆邮电大学 基于Spark平台采用两次评价的加权选择集成三支聚类方法
CN107480694A (zh) * 2017-07-06 2017-12-15 重庆邮电大学 基于Spark平台采用两次评价的加权选择集成三支聚类方法
CN107423764A (zh) * 2017-07-26 2017-12-01 西安交通大学 基于NSS‑AKmeans和MapReduce处理大数据的K‑Means聚类方法
CN107707494B (zh) * 2017-10-10 2020-02-11 苏州大学 用于64-qam相干光通信系统的光纤非线性均衡方法
CN107707494A (zh) * 2017-10-10 2018-02-16 苏州大学 用于64‑qam相干光通信系统的光纤非线性均衡方法
CN109033084B (zh) * 2018-07-26 2022-10-28 国信优易数据股份有限公司 一种语义层次树构建方法以及装置
CN109033084A (zh) * 2018-07-26 2018-12-18 国信优易数据有限公司 一种语义层次树构建方法以及装置
CN110261828A (zh) * 2019-07-22 2019-09-20 西安电子工程研究所 基于距离-角误差二维聚类的横向干扰判定方法
CN110261828B (zh) * 2019-07-22 2022-12-06 西安电子工程研究所 基于距离-角误差二维聚类的横向干扰判定方法
CN110543588A (zh) * 2019-08-27 2019-12-06 中国科学院软件研究所 一种面向大规模流数据的分布式聚类方法及系统
CN110705606A (zh) * 2019-09-12 2020-01-17 武汉大学 一种基于Spark分布式内存计算的空间K均值聚类方法
CN111145223A (zh) * 2019-12-16 2020-05-12 盐城吉大智能终端产业研究院有限公司 多摄像头识别人员行为轨迹分析方法
CN113298103A (zh) * 2020-05-27 2021-08-24 阿里巴巴集团控股有限公司 向量聚类训练方法及装置
CN114138966A (zh) * 2021-11-30 2022-03-04 四川大学 一种基于弱监督学习的网络威胁情报文本关键信息抽取方法
CN114138966B (zh) * 2021-11-30 2023-05-23 四川大学 一种基于弱监督学习的网络威胁情报文本关键信息抽取方法

Similar Documents

Publication Publication Date Title
CN106203507A (zh) 一种基于分布式计算平台改进的k均值聚类方法
Zhang et al. An improved quantile regression neural network for probabilistic load forecasting
CN107862179A (zh) 一种基于相似性和逻辑矩阵分解的miRNA‑疾病关联关系预测方法
Lin et al. Machine learning templates for QCD factorization in the search for physics beyond the standard model
CN105404783A (zh) 一种盲源分离方法
CN106570250A (zh) 面向电力大数据的微电网短期负荷预测方法
CN103455612B (zh) 基于两阶段策略的非重叠与重叠网络社区检测方法
Smȩtek et al. Selection of heterogeneous fuzzy model ensembles using self-adaptive genetic algorithms
CN109978050A (zh) 基于svm-rf的决策规则提取及约简方法
Wang et al. A Multistrategy‐Integrated Learning Sparrow Search Algorithm and Optimization of Engineering Problems
CN103440275A (zh) 一种基于普利姆的k均值聚类方法
Srivastava et al. An adaptive chaotic class topper optimization technique to solve economic load dispatch and emission economic dispatch problem in power system
CN109978051A (zh) 基于混合神经网络的监督分类方法
CN104318306B (zh) 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
Pavlov-Kagadejev et al. Optimizing long-short-term memory models via metaheuristics for decomposition aided wind energy generation forecasting
CN104933103A (zh) 整合结构聚类和属性分类的多目标社区发现方法
CN104615679A (zh) 一种基于人工免疫网络的多智能体数据挖掘方法
CN110348623A (zh) 基于设计结构矩阵的复杂产品开发时间预测及优化方法
CN104573331A (zh) 一种基于MapReduce的K近邻数据预测方法
Pelikan et al. Learn from the past: Improving model-directed optimization by transfer learning based on distance-based bias
CN107257307A (zh) 一种基于Spark的并行化遗传算法求解多终端协同接入网络方法
CN116451859A (zh) 一种基于贝叶斯优化的生成对抗网络股票预测方法
Dash et al. A multi-objective feature selection and classifier ensemble technique for microarray data analysis
Tian et al. Combinatorial optimization and local search: A case study of the discount knapsack problem
Alsariera et al. Hybridized BA & PSO t-way algorithm for test case generation

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: 20161207