CN107480685B - 一种基于GraphX的分布式幂迭代聚类方法和装置 - Google Patents

一种基于GraphX的分布式幂迭代聚类方法和装置 Download PDF

Info

Publication number
CN107480685B
CN107480685B CN201610402954.4A CN201610402954A CN107480685B CN 107480685 B CN107480685 B CN 107480685B CN 201610402954 A CN201610402954 A CN 201610402954A CN 107480685 B CN107480685 B CN 107480685B
Authority
CN
China
Prior art keywords
clustering
iteration
affinity matrix
data
cleaning 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
CN201610402954.4A
Other languages
English (en)
Other versions
CN107480685A (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.)
National Computer Network and Information Security Management Center
Original Assignee
National Computer Network and Information Security Management Center
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 National Computer Network and Information Security Management Center filed Critical National Computer Network and Information Security Management Center
Priority to CN201610402954.4A priority Critical patent/CN107480685B/zh
Publication of CN107480685A publication Critical patent/CN107480685A/zh
Application granted granted Critical
Publication of CN107480685B publication Critical patent/CN107480685B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

本发明公开了一种基于GraphX的分布式幂迭代聚类方法和装置。该方法包括:获取分布式存储的多个数据;对所述多个数据分别进行数据清洗,得到多个清洗数据;基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵;基于GraphX,利用设置的随机初始向量对所述亲和矩阵进行迭代处理;利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果。本发明有效地解决了基于图的聚类算法可扩展性不强、计算复杂度高的问题。

Description

一种基于GraphX的分布式幂迭代聚类方法和装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种基于GraphX的分布式幂迭代聚类方法和装置。
背景技术
幂迭代聚类是在谱聚类的基础上演化出的一种聚类算法。幂迭代聚类建立在图论中的谱图理论基础上,本质上是将聚类问题转化为图的最优划分问题。与经典的图聚类选取相似矩阵的几个特征向量构成低维子空间进行聚类不同,幂迭代聚类对所有的特征向量进行线性组合,对得到的一维子空间进行聚类。所以,幂迭代聚类的效果一般比谱聚类要好。幂迭代聚类的核心计算是矩阵与向量的乘法计算,不需要计算矩阵的特征值和特征向量。所以,幂迭代聚类比谱聚类更加简单、快速。为了让该算法应用在大规模数据分析中,研究人员基于多点接口(Multi Point Interface,MPI)并行实现了幂迭代聚类,但仍存在节点失效的问题。还有基于Hadoop MapReduce的幂迭代聚类研究,但由于MapReduce计算框架每次shuffle都要读写磁盘,对于需要进行多次迭代的算法存在性能瓶颈。
因此,在现有技术中,基于图的聚类算法可扩展性不强、计算复杂度高。
发明内容
本发明提供一种基于GraphX的分布式幂迭代聚类方法和装置,用以克服现有的大多数基于图的聚类可扩展性不强、计算复杂度高的问题。
针对上述技术问题,本发明是通过以下技术方案来解决的。
本发明提供了一种基于GraphX的分布式幂迭代聚类方法,包括:获取分布式存储的多个数据;对所述多个数据分别进行数据清洗,得到多个清洗数据;基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵;基于GraphX,利用设置的随机初始向量对所述亲和矩阵进行迭代处理;利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果。
其中,所述基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵,包括:在n个清洗数据中,利用预设的相似度算法sim,计算第i个清洗数据xi和第j个清洗数据xj之间的相似度;将计算得到的相似度sim(xi,xj)作为n维亲和矩阵的第i行、第j列的元素Aij;其中,1≤i≤n,1≤j≤n,n>0。
其中,所述利用设置的随机初始向量对所述亲和矩阵进行迭代处理,包括:对所述亲和矩阵进行归一化处理;根据归一化后的所述亲和矩阵,设置随机初始向量;利用归一化后的所述亲和矩阵和所述随机初始向量,在GraphX组件中构建图,并对所述图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止。
其中,所述根据归一化后的所述亲和矩阵,设置随机初始向量,包括:对所述亲和矩阵按行进行归一化处理;利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量。
其中,利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果,包括:利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到所述最后一次迭代得到的迭代向量的聚类处理结果;根据所述聚类处理结果,确定所述多个清洗数据的聚类结果;其中,所述最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。
本发明还提供了一种基于GraphX的分布式幂迭代聚类装置,包括:获取模块,用于获取分布式存储的多个数据;清洗模块,用于对所述多个数据分别进行数据清洗,得到多个清洗数据;构建模块,用于基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵;迭代模块,用于基于GraphX,利用设置的随机初始向量对所述亲和矩阵进行迭代处理;聚类模块,用于利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果。
其中,所述构建模块,具体用于:在n个清洗数据中,利用预设的相似度算法sim,计算第i个清洗数据xi和第j个清洗数据xj之间的相似度;将计算得到的相似度sim(xi,xj)作为n维亲和矩阵的第i行、第j列的元素Aij;其中,1≤i≤n,1≤j≤n,n>0。
其中,所述迭代模块,具体用于:对所述亲和矩阵进行归一化处理;根据归一化后的所述亲和矩阵,设置随机初始向量;利用归一化后的所述亲和矩阵和所述随机初始向量,在GraphX组件中构建图,并对所述图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止。
其中,所述迭代模块,进一步用于:对所述亲和矩阵按行进行归一化处理;利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量。
其中,所述聚类模块,具体用于:利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到所述最后一次迭代得到的迭代向量的聚类处理结果;根据所述聚类处理结果,确定所述多个清洗数据的聚类结果;其中,所述最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。
本发明有益效果如下:
本发明将数据转化成亲和矩阵,并基于GraphX组件,对亲和矩阵进行迭代处理,进而通过迭代向量,确定数据的聚类结果,本发明简化了聚类流程,降低了计算复杂度,采用了Spark中的GraphX组件,增加了聚类的可扩展性。
附图说明
图1是根据本发明一实施例的基于GraphX的分布式幂迭代聚类方法的流程图;
图2是根据本发明一实施例的图的分割示意图;
图3是根据本发明一实施例的基于GraphX的分布式幂迭代聚类装置的结构图。
具体实施方式
本发明基于Spark大规模数据计算引擎及其GraphX组件,提升了聚类的可扩展性。本发明可以在交互式或者批处理环境中进行高效的大规模的分布式聚类,且方便对大规模的数据进行分析处理,简化了用户从未标记样本中提取出有用信息的过程,降低了计算复杂度,克服了现有的大多数基于图的聚类算法可扩展性不强、计算复杂度高的问题。
Spark是一个基于内存的分布式计算框架,适合于迭代计算。GraphX是一个结合了图并行和数据并行的分布式图计算框架,方便了用户在Spark上实现图算法。GraphX扩展了Spark里的弹性分布式数据集(Resilient Distributed Dataset,RDD),引进了弹性分布式图(Resilient Distributed Graph,RDG)。RDG具有分布式、不可变、容错三大特点。
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明提供一种基于GraphX的分布式幂迭代聚类方法。图1是根据本发明一实施例的基于GraphX的分布式幂迭代聚类方法的流程图。
步骤S110,获取分布式存储的多个数据。
从Spark分布式计算环境的分布式存储系统中,获取分布式存储的多个数据。分布式存储系统例如是:HDFS、EC2、Cassandra等。
本实施例中,将数据进行分布式存储,可以提高运算的时间效率。而且,Spark还支持交互式分析,提供了对Scala、Java、Python、R这4种语言的支持。Spark拥有完整的数据分析栈BDAS(Berkeley Data Analytics Stack,伯克利数据分析栈),BDAS中包括:SparkStreaming、Spark SQL、MLlib、GraphX、Bagel和SparkR。同时,Spark具有良好的可扩展性和容错性。
步骤S120,对该多个数据分别进行数据清洗,得到多个清洗数据。
数据清洗是指:发现并纠正数据文件中可识别的错误。
数据清洗包括:检查数据一致性,处理无效值和缺失值等。
每个数据对应一个清洗数据;多个清洗数据组成清洗数据集X={x1,x2,…,xn},其中,n为清洗数据的个数,n>0。本实施例需要对清洗数据集中的清洗数据进行聚类。
步骤S130,基于该多个清洗数据中两两之间的相似度,构建亲和矩阵。
利用预设的相似度算法,计算多个清洗数据中两两之间的相似度,也即是计算多个清洗数据中每两个清洗数据的相似度,根据得到的多个相似度,构建亲和矩阵。
相似度算法包括但不限于:信息检索与数据挖掘的加权算法(term frequency–inverse document frequency,TF-IDF)、余弦定理、Jaccard。
亲和矩阵为n维对称矩阵A,A∈Rn×n,A中的元素Aij=sim(xi,xj)。
其中,sim为相似度算法,xi和xj分别代表清洗数据集中的第i个和第j个清洗数据,其中,n是清洗数据的个数,1≤i≤n,1≤j≤n,R表示实数,即矩阵A中的元素都为实数。
具体的,在n个清洗数据中,利用相似度算法sim,计算第i个清洗数据和第j个清洗数据的相似度,将计算得到的相似度sim(xi,xj)作为亲和矩阵的第i行、第j列的元素,即Aij。相似度的取值范围是[0,1],相似度的值越大代表两个清洗数据越相似,相似度的值越小代表两个清洗数据越不相似。相似度为0代表两个清洗数据完全不相似,相似度为1代表两个清洗数据完全一致。
亲和矩阵A为对称矩阵,亲和矩阵A中的元素满足以下条件:
Figure BDA0001012601070000051
步骤S140,基于GraphX,利用设置的随机初始向量对该亲和矩阵进行迭代处理。
GraphX是基于Spark的一个子系统,GraphX将图并行系统和数据并行系统进行互补。基于数据并行引擎Spark,GraphX在一个系统中对图并行计算和数据并行计算进行了结合,计算复杂度低,运算速度高。
利用归一化后的亲和矩阵和随机初始向量,在GraphX组件中构建图,并对该图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止。
设置随机初始向量,包括:对所述亲和矩阵进行归一化处理;根据归一化后的所述亲和矩阵,设置随机初始向量;或者,使用高斯函数生成器对预设的初始向量中的每个元素进行填充,得到随机初始向量。进一步地,对亲和矩阵按行进行归一化处理;利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量;
预设的初始向量可以任意选取,但要需要保证初始向量的维度和清洗数据的个数相同,初始向量的主特征向量方向的分量不为0。那么,得到的随机初始向量的维度和清洗数据的个数相同,且在主特征向量方向上,每个元素的位置对应一个所述清洗数据。也就是说,随机初始向量中的元素和清洗数据集中的清洗数据一一对应。
步骤S150,利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到多个清洗数据的聚类结果。
利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到最后一次迭代得到的迭代向量的聚类处理结果。因为迭代向量是随机初始向量对归一化后的亲和矩阵进行迭代处理得到的,所以迭代向量中的元素和随机初始向量中的元素一一对应,而且随机初始向量中的元素和清洗数据集中的清洗数据一一对应,也即是,最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。根据该对应关系、以及聚类处理结果,可以得到多个清洗数据的聚类结果。
具体的,在最后一次迭代得到的迭代向量中,计算多个元素中两两之间的相似度;将相似度大于相似度阈值的元素聚为同一分类,将相似度小于相似度阈值的元素分属不同的分类;利用该迭代向量中的元素与清洗数据集中的清洗数据的一一对应关系,得到清洗数据的聚类结果。
进一步地,设置多个相似度阈值,在最后一次迭代得到的迭代向量中,将每两个元素的相似度和最大的相似度阈值进行比较,如果大于最大的相似度阈值,则将该两个元素聚为一类;在该迭代向量中剩下元素中,将每两个元素的相似度和第二大的相似度阈值进行比较,如果大于该第二大的相似度阈值,则将该两个元素聚为一类;以此类推,直到该迭代向量中所有的元素聚类完成。相似度阈值可以根据经验值或实验数据进行设置。
在聚类的时候,把相互之间相似度高的元素聚为同一类。所以,理想情况是聚类完成后,同类内的元素之间相似度较高,而类间的元素之间相似度较低。
最后一次迭代得到的迭代向量中的元素与清洗数据集中的清洗数据的一一对应关系,是指:该迭代向量中的第1个元素对应清洗数据集中的第1个清洗数据,该迭代向量中的第2个元素对应清洗数据集中的第2个清洗数据,……该迭代向量中的第n个元素对应清洗数据集中的第n个清洗数据。
该迭代向量中的元素的聚类关系已经确定,那么可以根据元素的聚类关系,将清洗数据集中对应位置的清洗数据进行聚类。例如:该迭代向量中,第1个元素和第5个元素聚为一类,对应的,清洗数据集中的第1个清洗数据和第5个清洗数据也聚为一类。
在本实施例中,由于KMeans对初始中心的选取比较敏感,本实施例优选使用KMeans++算法,防止其陷入局部极小。KMeans++选取的初始聚类中心之间的相互距离要尽可能的远。
针对步骤S140,具体而言:
对亲和矩阵按行进行归一化,包括:在亲和矩阵的每行中,计算该行中的元素的绝对值之和,并将该行中的每个元素除以该绝对值之和,以归一化该行中的元素;或者,利用对角矩阵,对亲和矩阵按行进行归一化。
例如:定义度矩阵D,该D为对角矩阵,满足
Figure BDA0001012601070000081
对亲和矩阵A进行归一化后得到矩阵W=D-1A。W既可以被看做一个矩阵,也可以被看做一个图,该图的顶点为X={x1,x2,…,xn}。
利用行归一化后的亲和矩阵初始化预设的初始向量,包括:将归一化后的亲和矩阵的元素Aij看做图的第i个顶点到第j个顶点的一条边,该边的权值为Aij。在图论中,该边称为顶点i的一个出度,顶点j的一个入度;计算所有顶点的出度边的权值之和;利用所有顶点的出度边的权值之和,对初始向量进行初始化,得到初始化度向量,将该初始化度向量作为随机初始向量。具体而言:
步骤1,计算以顶点i为出度的所有边的权值之和:
Figure BDA0001012601070000082
步骤2,计算所有顶点的出度边的权值之和:
Figure BDA0001012601070000083
步骤3,利用所有顶点的出度边的权值之和,初始向量v0的每个元素进行初始化:
Figure BDA0001012601070000084
得到初始化度向量,即随机初始向量v0,随机初始向量v0的表示形式为:
Figure BDA0001012601070000085
本实施例采用基于快结束的聚类算法进行t次迭代,具体如下:
利用行归一化后的亲和矩阵W和随机初始向量v0,在GraphX组件中构建一个图。在该图中,Wij是顶点i到顶点j的边的权值,v0(i)是第i个顶点的属性值。每次迭代更新的过程中,矩阵W不变,迭代向量发生改变,可以得到一系列的迭代向量:v1,v2,…,vt,…。
基于随机初始向量v0,利用下面的公式(1),对W进行t次迭代,得到:
Figure BDA0001012601070000091
在GraphX组件中构建的图的顶点和边各维持一个属性,顶点xi的属性值为vt(i),从顶点xi到顶点xj的属性值为Wij。在迭代的过程中,边的属性值不变,每次迭代只更新顶点的属性值。进一步地,顶点i的属性值为vt(i),上标t代表迭代次数,迭代开始之前,顶点i的属性值为v0(i),一次迭代后为v1(i),两次迭代后为v2(i),……,以此类推,t次迭代后为vt(i)。所以顶点i的属性值是不断迭代更新的。
由于矩阵W是对亲和矩阵A进行了行归一化后得到的,所以W的主特征值是1,主特征向量是c(1,1,…,1)t,其中,c为常数,且c≠0。向量vt在收敛于主特征向量的过程中的一个有用特性:假设数据集{x1,x2,…,xn}可以划分为k个类簇,k≥1,第i个类簇为
Figure BDA0001012601070000094
且满足约束
Figure BDA0001012601070000092
经过t次迭代,可以得到:
迭代向量:vt
收敛速度:δt+1=||vt+1-vt||1(t=0,1,2,…);
收敛加速度:εt+1=|δt+1t|(t=1,2,3,…)。
vt的收敛过程可以分为两个阶段:第一个阶段是每个类簇内部的点进行快速的收敛,第二个阶段是类簇之间的点进行平稳的收敛。当t→∞时,vt中的每一个元素都收敛于1/n。第一阶段的收敛加速度的值较大,第二阶段收敛加速度趋近于0。
基于这一特性,本实施例以收敛加速度为指标,当收敛加速度小于某个收敛阈值
Figure BDA0001012601070000093
时,停止迭代,再用KMeans++算法对向量vt进行聚类。
为了不无限迭代下去,得到
Figure BDA0001012601070000101
的结果,需要在第t次迭代后,提前结束迭代。本实施例在收敛加速度小于预设的收敛阈值时的迭代为第t次迭代。进一步地,收敛阈值可以是收敛进入第二阶段的收敛加速度,收敛阈值可以通过实验获得。
每迭代一次,就判断本次迭代的收敛加速度是否小于预设的收敛阈值,如果是,则执行步骤S150;如果否,则继续进行迭代处理。
本发明可以利用相似度方法,将原始数据(清洗数据)转换成一个可视为图的亲和矩阵;然后,通过顶点切割,把行归一化后的亲和矩阵切分成若干个子图,分别存储在系统中不同的机器上;最后,利用Spark基于内存计算的特点,对存储在系统中的图进行多次迭代计算,得到该图的一个切割,图的每一个划分子图对应一个类簇。
例如:将一个在逻辑上是一个很大的图,通过顶点切割,分割为若干个子图,并若干个子图分别存储在不同的机器上。如图2所示的切割图的示意图。该逻辑图包括5个顶点(顶点1、2、3、4、5),在顶点切割时,以顶点1为切割顶点,把图切分为三个子图,分别为:
子图 顶点
第一子图 1,2,3 (1,2),(2,1),(1,3),(3,1)
第二子图 1,4,5 (1,4),(4,1),(4,5),(5,4)
第三子图 1,5,6 (1,5),(5,1),(1,6),(6,1),(5,6),(6,5)
子图的存储采用的是哈希策略。对于顶点i,若hashVertex(i)=y,则顶点i的信息存储在第y台机器上。对于边(i,j),若hashEdge(i,j)=z,则边(i,j)的信息存储在第z台机器上。
选取不同的哈希函数就形成了不同的策略,例如:RandomVertexCut、EdgePartition1D、EdgePartition2D和CanonicalRandomVertexCut这四种策略。
假设KMeans++将n个元素(对应图的n个顶点,也对应n个清洗数据)分为了k类,每个类簇有
Figure BDA0001012601070000111
个元素,设第i类的ni个元素分别为
Figure BDA0001012601070000112
这ni个元素分别对应图的第
Figure BDA0001012601070000113
个顶点,这些顶点就构成了一个子图。k个类簇对应k个子图,即原来的大图被切分成了k个部分,每一个部分称为一个子图,一个子图和一个类簇是一一对应的关系。
在Graph组件中,对图的操作有很多种,包括构建图的操作、更改图的顶点和边的属性值的操作和更改图的结构信息的操作等。本实施例的基于GraphX的分布式幂迭代聚类方法,给出几种重要的操作的定义。
1、fromExistingRDDs。根据分布式图的表示可知,一个图可以表示成一个EdgeRDD和一个VertexRDD。fromExistingRDDs的作用是:对于给定的EdgeRDD和VertexRDD,构建出相应的图,并返回该图。
2、aggregateMessages。该方法接收三个参数:sendMsg、mergeMsg和tripletFields。sendMsg和mergeMsg是两个用户自定义的函数,sendMsg作用于每一条边,表示如何向其源点或终点发送消息;mergeMsg作用于每一个顶点,表示如何对接收到的消息进行聚集。tripletFields是一个优化参数,可以用于减少网络开销。幂迭代聚类中需要用该方法归一化亲和矩阵以及实现矩阵和向量的乘法。在GraphX中,aggregate Messages可以在降低网络开销的条件下有效实现这一计算。
3、joinVertices。在很多情况下,现有图的VertexRDD需要利用外部VertexRDD的信息,以改变顶点的属性值。joinVertices先对两个VertexRDD做等值连接,再对其做一个map操作,最后返回新的VertexRDD与原EdgeRDD构成的图。
本发明还提供了一种基于GraphX的分布式幂迭代聚类装置,图3所示,为根据本发明一实施例的基于GraphX的分布式幂迭代聚类装置的结构图。
该装置包括:
获取模块310,用于获取分布式存储的多个数据;
清洗模块320,用于对多个数据分别进行数据清洗,得到多个清洗数据;
构建模块330,用于基于多个清洗数据中两两之间的相似度,构建亲和矩阵。
迭代模块340,用于基于GraphX,利用设置的随机初始向量对亲和矩阵进行迭代处理。
聚类模块350,用于利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到多个清洗数据的聚类结果。
构建模块330,具体用于在n个清洗数据中,利用预设的相似度算法sim,计算第i个清洗数据xi和第j个清洗数据xj之间的相似度;将计算得到的相似度sim(xi,xj)作为n维亲和矩阵的第i行、第j列的元素Aij;其中,1≤i≤n,1≤j≤n,n>0。
迭代模块340,具体用于对所述亲和矩阵进行归一化处理;根据归一化后的所述亲和矩阵,设置随机初始向量;利用归一化后的所述亲和矩阵和所述随机初始向量,在GraphX组件中构建图,并对所述图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止。
迭代模块340,进一步用于对所述亲和矩阵按行进行归一化处理;利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量。
聚类模块350,具体用于利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到所述最后一次迭代得到的迭代向量的聚类处理结果;根据所述聚类处理结果,确定所述多个清洗数据的聚类结果;其中,所述最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。
本实施例所述的装置的功能已经在图1和图2所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

Claims (6)

1.一种基于GraphX的分布式幂迭代聚类方法,其特征在于,包括:
获取分布式存储的多个数据;
对所述多个数据分别进行数据清洗,得到多个清洗数据;
基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵;
基于GraphX,利用设置的随机初始向量对所述亲和矩阵进行迭代处理;
利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果;
所述利用设置的随机初始向量对所述亲和矩阵进行迭代处理,包括:
对所述亲和矩阵进行归一化处理;
根据归一化后的所述亲和矩阵,设置随机初始向量;
利用归一化后的所述亲和矩阵和所述随机初始向量,在GraphX组件中构建图,并对所述图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止;
利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果,包括:
利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到所述最后一次迭代得到的迭代向量的聚类处理结果;
根据所述聚类处理结果,确定所述多个清洗数据的聚类结果;
其中,所述最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。
2.如权利要求1所述的方法,其特征在于,所述基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵,包括:
在n个清洗数据中,利用预设的相似度算法sim,计算第i个清洗数据xi和第j个清洗数据xj之间的相似度;
将计算得到的相似度sim(xi,xj)作为n维亲和矩阵的第i行、第j列的元素Aij
其中,1≤i≤n,1≤j≤n,n>0。
3.如权利要求1所述的方法,其特征在于,所述根据归一化后的所述亲和矩阵,设置随机初始向量,包括:
对所述亲和矩阵按行进行归一化处理;
利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量。
4.一种基于GraphX的分布式幂迭代聚类装置,其特征在于,包括:
获取模块,用于获取分布式存储的多个数据;
清洗模块,用于对所述多个数据分别进行数据清洗,得到多个清洗数据;
构建模块,用于基于所述多个清洗数据中两两之间的相似度,构建亲和矩阵;
迭代模块,用于基于GraphX,利用设置的随机初始向量对所述亲和矩阵进行迭代处理;
聚类模块,用于利用KMeans++算法,对迭代向量进行聚类处理,并根据处理结果得到所述多个清洗数据的聚类结果;
所述迭代模块,进一步用于:对所述亲和矩阵按行进行归一化处理;利用行归一化后的亲和矩阵初始化预设的初始向量,得到随机初始向量;
所述聚类模块,具体用于:利用KMeans++算法,对最后一次迭代得到的迭代向量进行聚类处理,得到所述最后一次迭代得到的迭代向量的聚类处理结果;根据所述聚类处理结果,确定所述多个清洗数据的聚类结果;其中,所述最后一次迭代得到的迭代向量中的元素和所述多个清洗数据组成的清洗数据集中的清洗数据一一对应。
5.如权利要求4所述的装置,其特征在于,所述构建模块,具体用于:
在n个清洗数据中,利用预设的相似度算法sim,计算第i个清洗数据xi和第j个清洗数据xj之间的相似度;
将计算得到的相似度sim(xi,xj)作为n维亲和矩阵的第i行、第j列的元素Aij
其中,1≤i≤n,1≤j≤n,n>0。
6.如权利要求4所述的装置,其特征在于,所述迭代模块,具体用于:
对所述亲和矩阵进行归一化处理;
根据归一化后的所述亲和矩阵,设置随机初始向量;
利用归一化后的所述亲和矩阵和所述随机初始向量,在GraphX组件中构建图,并对所述图进行多次迭代,直到迭代获得的收敛加速度小于预设的收敛阈值为止。
CN201610402954.4A 2016-06-08 2016-06-08 一种基于GraphX的分布式幂迭代聚类方法和装置 Expired - Fee Related CN107480685B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610402954.4A CN107480685B (zh) 2016-06-08 2016-06-08 一种基于GraphX的分布式幂迭代聚类方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610402954.4A CN107480685B (zh) 2016-06-08 2016-06-08 一种基于GraphX的分布式幂迭代聚类方法和装置

Publications (2)

Publication Number Publication Date
CN107480685A CN107480685A (zh) 2017-12-15
CN107480685B true CN107480685B (zh) 2021-02-23

Family

ID=60594559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610402954.4A Expired - Fee Related CN107480685B (zh) 2016-06-08 2016-06-08 一种基于GraphX的分布式幂迭代聚类方法和装置

Country Status (1)

Country Link
CN (1) CN107480685B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108650309A (zh) * 2018-04-25 2018-10-12 深圳市创艺工业技术有限公司 一种基于大数据的农产品储运环境智能监控系统
CN110942081B (zh) * 2018-09-25 2023-08-18 北京嘀嘀无限科技发展有限公司 图像处理方法、装置、电子设备及可读存储介质
CN110321971A (zh) * 2019-07-12 2019-10-11 北京迈格威科技有限公司 图像数据清洗方法、图像处理方法及装置
CN112395365B (zh) * 2019-08-14 2022-02-08 北京海致星图科技有限公司 一种知识图谱批量离线查询解决方案
CN111784528A (zh) * 2020-05-27 2020-10-16 平安科技(深圳)有限公司 异常社群检测方法、装置、计算机设备及存储介质
CN112988693A (zh) * 2021-03-26 2021-06-18 武汉大学 一种异常数据检测中谱聚类算法并行化方法及系统
CN113239990A (zh) * 2021-04-27 2021-08-10 中国银联股份有限公司 对序列数据进行特征处理的方法、装置及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495876A (zh) * 2011-12-02 2012-06-13 浙江大学 一种基于非负局部坐标分解的聚类方法
CN103399852A (zh) * 2013-06-27 2013-11-20 江南大学 基于局部密度估计和近邻关系传播的多路谱聚类方法
KR101377260B1 (ko) * 2012-10-19 2014-03-27 경희대학교 산학협력단 디플레이션 기반의 거듭제곱 반복 군집화 방법
CN103886072A (zh) * 2014-03-24 2014-06-25 河南理工大学 煤矿搜索引擎中检索结果聚类系统
CN104268564A (zh) * 2014-09-16 2015-01-07 南京航空航天大学 一种基于截断幂的稀疏基因表达数据分析方法
CN106067034A (zh) * 2016-05-27 2016-11-02 中国电力科学研究院 一种基于高维矩阵特征根的配电网负荷曲线聚类方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069039B (zh) * 2015-07-22 2018-05-18 山东大学 一种基于spark平台的内存迭代的重叠社区并行发现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495876A (zh) * 2011-12-02 2012-06-13 浙江大学 一种基于非负局部坐标分解的聚类方法
KR101377260B1 (ko) * 2012-10-19 2014-03-27 경희대학교 산학협력단 디플레이션 기반의 거듭제곱 반복 군집화 방법
CN103399852A (zh) * 2013-06-27 2013-11-20 江南大学 基于局部密度估计和近邻关系传播的多路谱聚类方法
CN103886072A (zh) * 2014-03-24 2014-06-25 河南理工大学 煤矿搜索引擎中检索结果聚类系统
CN104268564A (zh) * 2014-09-16 2015-01-07 南京航空航天大学 一种基于截断幂的稀疏基因表达数据分析方法
CN106067034A (zh) * 2016-05-27 2016-11-02 中国电力科学研究院 一种基于高维矩阵特征根的配电网负荷曲线聚类方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《GraphX graph processing in a distributed dataflow framework》;Joseph E. Gonzalez等;《This paper is included in the Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation》;20141008;598-613页 *

Also Published As

Publication number Publication date
CN107480685A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN107480685B (zh) 一种基于GraphX的分布式幂迭代聚类方法和装置
Zhou et al. Accelerating online cp decompositions for higher order tensors
WO2017167097A1 (zh) 一种基于随机森林的模型训练方法和装置
Sarazin et al. SOM clustering using spark-mapreduce
CN112988693A (zh) 一种异常数据检测中谱聚类算法并行化方法及系统
Liu et al. Decentralized robust subspace clustering
Demirci et al. Partitioning sparse deep neural networks for scalable training and inference
Sun Personalized music recommendation algorithm based on spark platform
Wan et al. ICGT: A novel incremental clustering approach based on GMM tree
CN112948345A (zh) 一种基于云计算平台的大数据聚类方法
Zhang et al. Multi-view clustering via graph regularized symmetric nonnegative matrix factorization
He et al. Parallel outlier detection using kd-tree based on mapreduce
Shibla et al. Improving efficiency of DBSCAN by parallelizing kd-tree using spark
Dass et al. Distributed QR decomposition framework for training support vector machines
Wang et al. Towards scalable spectral clustering via spectrum-preserving sparsification
Kong et al. An effective neural learning algorithm for extracting cross-correlation feature between two high-dimensional data streams
CN115168326A (zh) Hadoop大数据平台分布式能源数据清洗方法及系统
Ansarifar et al. A novel algorithm for adaptive data stream clustering
Zhang et al. Feature selection embedded robust K-means
Zhang et al. Self-Adaptive-Means Based on a Covering Algorithm
Gan et al. A soft subspace clustering algorithm with log-transformed distances
Łukasik et al. Efficient astronomical data condensation using approximate nearest neighbors
Meenakshi et al. Fault prediction using quad tree and expectation maximization algorithm
Karimov et al. k-means Performance Improvements with Centroid Calculation Heuristics both for Serial and Parallel environments
Ren et al. Parallel set determination and k-means clustering for data mining on telecommunication networks

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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210223

Termination date: 20210608