CN113128617A - 基于Spark和ASPSO的并行化K-means的优化方法 - Google Patents

基于Spark和ASPSO的并行化K-means的优化方法 Download PDF

Info

Publication number
CN113128617A
CN113128617A CN202110501668.4A CN202110501668A CN113128617A CN 113128617 A CN113128617 A CN 113128617A CN 202110501668 A CN202110501668 A CN 202110501668A CN 113128617 A CN113128617 A CN 113128617A
Authority
CN
China
Prior art keywords
data
grid
point
cluster
value
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.)
Granted
Application number
CN202110501668.4A
Other languages
English (en)
Other versions
CN113128617B (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.)
Dragon Totem Technology Hefei Co ltd
Original Assignee
Jiangxi University of Science and Technology
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 Jiangxi University of Science and Technology filed Critical Jiangxi University of Science and Technology
Priority to CN202110501668.4A priority Critical patent/CN113128617B/zh
Publication of CN113128617A publication Critical patent/CN113128617A/zh
Application granted granted Critical
Publication of CN113128617B publication Critical patent/CN113128617B/zh
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本发明提出了一种基于Spark和ASPSO的并行化K‑means的优化方法,包括以下步骤:S1,通过分割函数粗略的划分数据集,并利用网格划分策略PCCV来计算数据网格的皮尔逊相关系数与相关系数阈值,再对数据网格进行划分,获取网格单元;S2,采用SPFG策略,对数据点进行局部区域覆盖,更新数据集中的样本点,形成区域簇,获取局部聚类的簇数;S3,采用ASPSO策略,计算自适应参数,获取局部簇质心;S4,采用CRNN策略计算每个簇的簇半径,并根据簇的相似性函数进行相似度判断,结合Spark并行计算框架将相似度大的簇进行合并;S5,输出聚类结果。本发明在运行效率和聚类精确度上都有显著的提高,此外通过该方法所挖掘出的知识,能够在生物学,医学,天文地理学上提供巨大的帮助。

Description

基于Spark和ASPSO的并行化K-means的优化方法
技术领域
本发明涉及大数据挖掘领域,尤其涉及一种基于Spark和ASPSO的并行化K-means的优化方法。
背景技术
聚类算法作为数据挖掘中的一种无监督的学习算法,可以根据数据的相似特征对数据集进行自动划分,按一定规则根据对象划分成不同的类别,同一类别下的对象具有一定的相似性,而不同类别对象之间则差异较大。因此,聚类算法可以从样本数据中发现潜在的分布模式,被广泛应用于计算机科学、生物信息学、图像处理、社会网络、天文学以及许多其他的领域。
随着人工智能时代的到来,各种感知和通信设备以及存储设备的普及,使当前的数据形式发生翻天覆地的变化,数据规模爆炸式增长。相较于传统数据,大数据拥有数据规模大、数据种类多样化、数据价值密度低、数据增长速度快等基本特征。然而传统的K-means聚类算法所需时间复杂度高,只适用于小规模的数据,在处理大数据时,其时间的消耗无疑是巨大的。因此,如何使K-means聚类算法能更快的处理大数据,是国内外重点关注的问题。
随着传统的数据挖掘算法在分布式计算框架的广泛应用,以Hadoo、Spark为代表的分布式架构受到了越来越多的关注。其中,Spark凭借计算速度快,简洁易用、通用性强和支持多种运行模式等优势深受广大学者青睐。因此,目前许多基于Spark计算框架已成功应用到大数据的分析与处理领域中。其中,M Laszlo等人提出了一种基于遗传算法GA的并行化划分聚类算法SP-GAKMS,该算法基于遗传算法优化了K-means算法的初始质心,通过对种群个体的多次选择、交叉、变异的遗传操作,使得种群个体逐渐优化并逐步逼近最优解,最终得到最优的初始质心集。同时,设计了一种基于局部聚合的自动迭代聚簇算法,通过局部聚簇寻找数据集中连接紧密的节点集,并迭代合并局部簇,实现了对局部簇的并行化合并。SP-GAKMS在运行时间与聚类效果上都要优于传统的K-means算法。但该算法依然存在以下四点不足:算法没有考虑到数据离散系数较大、局部簇簇数难以确定、不能获取全局最优初始质心及局部簇并行化合并效率低等问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于Spark和ASPSO的并行化K-means的优化方法。
为了实现本发明的上述目的,本发明提供了一种基于Spark和ASPSO的并行化K-means的优化方法,包括以下步骤:
S1,通过分割函数粗略的划分数据集,并利用基于皮尔逊相关系数和方差的网格划分策略PCCV来计算数据网格的皮尔逊相关系数与相关系数阈值,再通过与阈值比较,对数据网格进行划分,获取网格单元,减小了数据划分的数据离散系数;
S2,采用SPFG策略,对数据点进行局部区域覆盖,并通过更新函数,更新数据集中的样本点,形成以不同样本点为核心的区域簇,获取局部聚类的簇数,解决了簇数的难以确定的问题;
S3,采用ASPSO策略,计算自适应参数,通过自适应参数更新粒子的位置和速度,获取局部簇质心,避免了局部簇质心的随机性;
S4,采用CRNN策略计算每个簇的簇半径,通过簇半径计算出簇与簇之间的邻居节点,并根据簇的相似性函数进行相似度判断,结合Spark并行计算框架将相似度大的簇进行合并,避免了在并行化运算过程中对所有簇的点与边集同时展开搜索,提高了局部簇并行化合并的效率;
S5,输出聚类结果:最终的聚类中心以及每个样本所属的类别。
进一步地,所述S1包括:
S1-1,数据集的粗略划分:首先获取划分数据集,并将其标记为Gs;其次提出分割函数FD(xi)计算出划分阈值,分别与每个数据点比较,对于大于阈值的数据则放入网格Gmax中,小于阈值的数据则放入Gmin中;最后获得Gmax与Gmin两个数据网格;
所述分割函数FD(xi)为:
k={max(Si/di)|i=1,2,...u} (1)
Figure BDA0003056618060000031
其中,k表示分割维度,Si为空间数据集中第i维度的数据的方差,di为空间数据集中第i维度的数据之和,u表示u个数据维度,
Figure BDA0003056618060000032
为第k分割维度下的数据值,num为网格中的数据点的个数。
S1-2,网格的划分:在获取Gmax与Gmin两个数据网格之后,由于分割函数只能对数据集进行粗略的划分,无法对相似度较大的数据进行网格划分,导致无法获取网格单元。因此,需要对网格Gmax与Gmin进行进一步的数据划分;
S1-2-1,首先计算网格中数据点的皮尔逊相关系数阈值PCCk值,以PCCk值作为网格划分阈值来对数据网格进行划分,通过比较数据皮尔逊相关系数与PCCk的大小,将系数大于PCCk的数据进行标记为core,系数小于PCCk的数据则标记为uncore;
S1-2-2,将网格中数据标记为core与uncore的两种数据分别划分为两个更小的网格,并取消标记;
S1-2-3,对网格进行数据的判断,如果数据点的个数大于网格单元的阈值maxNum,则返回步骤S1-2-1,否则停止对网格进行划分;其中maxNum表示数据的总的个数n与并行化节点Partition个数的比值;
S1-2-4,将划分好的网格单元进行标记,得到网格单元G1,G2,G3...Gm
令PCCk为任意两个数据点的皮尔逊相关系数值,则阈值PCCk为:
Figure BDA0003056618060000041
Figure BDA0003056618060000042
其中,PCCi,j代表数据点i、j之间的关联程度,sum(·)为求和函数,Gnum为网格单元的数据个数,ω为数据点的密度权重,xk,i、xk,j分别表示第k个网格中的任意两个数据点的值,m表示数据网格总数。
进一步地,所述S1还包括:
S1-3,离群点的过滤:
在获取网格单元G1,G2,G3...Gm后,由于网格单元存在离群点,也会导致数据的离散系数增大。为了进一步减小数据的离散系数,提出了一种离群因子GOF来对离群点过滤,其具体过程为:计算网每个格单元中数据的GOF值,若GOF值>>ε,则将该数据点视为离群点,并对其进行删除;其中G1为第一网格单元,G2为第二网格单元,G3为第三网格单元,Gm为第m网格单元;>>表示远大于,ε表示网格单元数据阈值;
离群因子GOF为:
Figure BDA0003056618060000043
Figure BDA0003056618060000044
Figure BDA0003056618060000045
其中,d表示当前网格中其余的m-1个数据点的欧氏距离,d(xi,xj)表示网格中数据点xi、xj的欧氏距离,
Figure BDA0003056618060000046
表示网格单元的中心点,xi表示网格中第i个数据点,xj表示网格中第j个数据点,mc表示网格中数据点的个数,m表示数据网格总数,
Figure BDA0003056618060000047
表示当前数据点到网格中心的距离。
进一步地,所述S2包括:
S2-1,对数据集中任意一对数据xi,xj,计算其作用势γ(xi,xj),并以xi为基准样本,将其他的样本点对xj的作用势进行累加,得到每个样本点的作用势集合为:ρ={ρ12,...,ρn},其中ρ1表示第1个样本点的作用势,ρ2表示第2个样本点的作用势,ρn表示第n个样本点的作用势;
S2-2,从ρ中选择最大作用势ρi放入一个空的集合M{}中,并以ρi为当前的高斯核中心,以给定的核宽σ建立相应的高斯核来对原始数据的一个局部区域有效覆盖;
S2-3,消除当前高斯核所覆盖的局部区域的样本势值,提出基于高斯核函数的更新函数FU(xi,yj)对数据集中的其他样本点进行更新;
更新函数FU(xi,yj)如下所示:
Figure BDA0003056618060000051
其中,ρi为高斯核中心,ρj为集合中的样本点,σk表示核宽,
Figure BDA0003056618060000052
表示高斯内核;
更新后每个样本点的作用势集合为ρ'={ρ1',ρ'2,...,ρ'n},当更新后的势值满足max{ρ1',ρ'2,...,ρ'n}>δ时,即可从ρ'中选择势值最大的样本点,放入集合M2{}中,其中δ表示作用势的一个阈值。
进一步地,所述S3包括:
为了实现初始质心的全局最优解,需要设计自适应参数来避免局部最优:
S-A,提出粒子群体平均速度
Figure BDA0003056618060000053
作为第一个自适应参数,计算出
Figure BDA0003056618060000054
值,设置其为控制变异步长的参数;
粒子群体平均速度为:
Figure BDA0003056618060000055
其中,n为数据的总的个数,vk,i为粒子的速度;
S-B,引入的变异算子为柯西变异算子,并将其与参数粒子群体平均速度
Figure BDA0003056618060000056
结合,根据公式(10)对陷入局部最优的粒子进行位置更新,跳出局部最优;
Figure BDA0003056618060000061
其中,
Figure BDA0003056618060000062
为当前粒子位置,
Figure BDA0003056618060000063
为更新后的位置,
Figure BDA0003056618060000064
为粒子群体平均速度,C(1)为柯西变异算子;
S-C,设计边界限制参数η,由于C(1)是引入的柯西算子,是由t=1的柯西分布函数产生的随机数,并不能得到有效搜索区域,因此,在进行数据集搜索时,对搜索区域进行边界限制,只对满足边界限制参数η的数据区域进行搜索。:
参数
Figure BDA0003056618060000065
对于任意的x满足
Figure BDA0003056618060000066
其中,x0为xi的中位数,
Figure BDA0003056618060000067
Figure BDA0003056618060000068
分别表示xi左侧和右侧时的尺度参数,γi表示尺度参数,xi表示第i个数据点的值即第i个数据点。
进一步地,所述S3还包括质心初始化,所述质心初始化包括以下步骤:
S-1,将每个网格单元的数据看作一群粒子S1,S2...,So,并对其进行初始化;其中S1表示第1个粒子,S2表示第2个粒子,So表示第o个粒子;
S-2,计算每个粒子的适应值,并将其与粒子本身的最佳位置
Figure BDA0003056618060000069
种群的历史最佳位置
Figure BDA00030566180600000610
进行比较,如果适应值较优,则用适应值替换掉当前的
Figure BDA00030566180600000611
进行适应值更新;
S-3,计算边界限制参数η的值,获取有效搜索区域,根据更新的适应值,在有效搜索区域中对粒子的速度与粒子的位置进行更新;
S-4,将每次更新的种群的历史最佳位置
Figure BDA00030566180600000612
记录在集合W{}中,得到
Figure BDA00030566180600000613
并对集合W{}中的值进行比较,选取前K个较大的值,并找到其对应的粒子点,便是数据集的初始质心。
进一步地,所述S3还包括局部并行化聚类:
S001,将各个网格单元G1,G2,G3...Gm分配到Partition;其中G1为第一网格单元,G2为第二网格单元,G3为第三网格单元,Gm为第m网格单元;
S002,通过mapRartitions算子计算出各个网格单元的中心点
Figure BDA0003056618060000071
所述mapRartitions算子为:
Figure BDA0003056618060000072
其中
Figure BDA0003056618060000073
表示第i个网格单元的中心点,xi表示第i个数据,mcount表示各个网格中的数据总数;
S003,将各个网格单元中的质心点集
Figure BDA0003056618060000074
与网格中心点
Figure BDA0003056618060000075
输入flatMap算子,并找到质心点所对应的网格单元,并标记为:C1,C2,...,CP计算出网格中心点与质心点之间的欧氏距离Di,其中flatMap算子为:
Figure BDA0003056618060000076
输出Di值;其中
Figure BDA0003056618060000077
表示第j个质心点,xp表示第p个数据点,mcount表示各个网格中的数据总数;
其中,
Figure BDA0003056618060000078
表示网格单元中的第1个质心点,
Figure BDA0003056618060000079
表示网格单元中的第2个质心点,
Figure BDA00030566180600000710
表示网格单元中的第k个质心点;C1表示第1个质心点所对应的网格单元,C2表示第2个质心点所对应的网格单元,CP表示第3个质心点所对应的网格单元;
S004,根据输出的Di值,通过mapToPair算子选取值最小的网格单元进行合并,即
Figure BDA00030566180600000711
反复循环,直到所有网格单元合并完毕,最后进行reduceByKey操作汇总,获得局部簇C′1,C′2,...C′K;其中Gi表示网格单元,Ci表示质心对应的网格单元,
Figure BDA00030566180600000712
表示网格单元中的第k个质心点;
Figure BDA00030566180600000713
为第i个网格单元的中心点;C′1表示第1个簇,C′2表示第2个簇,C′K表示第K个簇。
进一步地,所述S4包括以下步骤:
S4-1,对于每一个簇C1',C'2,...C'K,分别计算出离质心距离最大的点,以其到质心的距离作为簇半径Ri;在获取每一个簇的簇半径之后,便计算出各个簇之间的邻居节点;其中C1'为第1个簇,C'2为第2个簇,C'K为第K个簇;
S4-2,对于簇第i个簇Ci'、第j个簇Cj',通过邻居节点集疏密程度判断两个簇之间的亲密程度,并分别计算出两个簇的样本点数ni,nj,提出簇的相似性函数CSM(ni,nj),计算出簇与簇之间的相似度。
进一步地,所述计算出簇与簇之间的相似度包括:
Figure BDA0003056618060000081
其中,k为分割维度,nei,nej分别为Ci,Cj之间的邻居节点与非邻居节点的个数,ni为簇Ci'的样本点的个数,nj为簇Cj'的样本点的个数。
综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明提出的方法无论是在运行效率上还是聚类精确度上都有显著的提高,此外通过该方法所挖掘出的知识,能够在生物学,医学,天文地理学上提供巨大的帮助。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明局部簇的并行化合并示意图;
图2是本发明四种算法运行加速比比较图;
图3是本发明不同算法在不同数据集上的运行时间比较示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
本发明提出一种基于Spark和ASPSO的并行化K-means的优化方法,具体实施例如下,包括以下步骤:
S1,通过分割函数粗略的划分医疗图像数据集,并利用基于皮尔逊相关系数和方差的网格划分策略PCCV来计算数据网格的皮尔逊相关系数与相关系数阈值,再通过与阈值比较,对数据网格进行划分,获取医疗图像网格单元;
S2,采用SPFG策略,对医疗图像数据点进行局部区域覆盖,并通过更新函数,更新数据集中的样本点,形成以不同样本点为核心的区域簇,获取医疗图像局部聚类的簇数;
S3,采用ASPSO策略,计算自适应参数,通过自适应参数更新粒子的位置和速度,获取医疗图像局部簇质心;
S4,采用CRNN策略计算每个簇的簇半径,通过簇半径计算出簇与簇之间的邻居节点,并根据簇的相似性函数进行相似度判断,结合Spark并行计算框架将相似度大的簇进行合并;
S5,输出聚类结果:医疗图像最终的聚类中心以及每个医疗图像样本所属的类别。
进一步地,所述S1包括:
S1-1,医疗图像数据集的粗略划分:首先获取划分医疗图像数据集,并将其标记为Gs;其次提出分割函数FD(xi)计算出划分阈值,分别与每个医疗图像数据点比较,对于大于阈值的数据则放入网格Gmax中,小于阈值的数据则放入Gmin中;最后获得Gmax与Gmin两个数据网格;
所述分割函数FD(xi)为:
k={max(Si/di)|i=1,2,...u} (1)
Figure BDA0003056618060000091
其中,k表示分割维度,Si为空间数据集中第i维度的数据的方差,di为空间数据集中第i维度的数据之和,u表示u个数据维度,xi k为第k分割维度下的数据值,num为网格中的数据点的个数;
S1-2,医疗图像网格的划分:在获取Gmax与Gmin两个数据网格之后,对网格Gmax与Gmin进行进一步的数据划分;
S1-2-1,首先计算医疗图像网格中数据点的皮尔逊相关系数阈值PCCk值,以PCCk值作为网格划分阈值来对数据网格进行划分,通过比较数据皮尔逊相关系数与PCCk的大小,将系数大于PCCk的数据进行标记为core,系数小于PCCk的数据则标记为uncore;
S1-2-2,将医疗图像网格中数据标记为core与uncore的两种数据分别划分为两个更小的网格,并取消标记;
S1-2-3,对医疗图像网格进行数据的判断,如果数据点的个数大于网格单元的阈值maxNum,则返回步骤S1-2-1,否则停止对网格进行划分;其中maxNum表示数据的总的个数n与并行化节点Partition个数的比值;
S1-2-4,将划分好的医疗图像网格单元进行标记,得到网格单元G1,G2,G3...Gm
令PCCk为任意两个医疗图像数据点的皮尔逊相关系数值,则阈值PCCk为:
Figure BDA0003056618060000101
Figure BDA0003056618060000102
其中,PCCi,j代表数据点i、j之间的关联程度,sum(·)为求和函数,Gnum为网格单元的数据个数,ω为数据点的密度权重,xk,i、xk,j分别表示第k个网格中的任意两个数据点的值,m表示数据网格总数。
进一步地,所述S1还包括:
S1-3,医疗图像离群点的过滤:
在获取医疗图像网格单元G1,G2,G3...Gm后,计算每个医疗图像网格单元中数据的GOF值,若GOF值>>ε,则将该数据点视为离群点,并对其进行删除;其中>>表示远大于,ε表示网格单元数据阈值;
离群因子GOF为:
Figure BDA0003056618060000111
Figure BDA0003056618060000112
Figure BDA0003056618060000113
其中,d表示当前网格中其余的m-1个数据点的欧氏距离,d(xi,xj)表示网格中数据点xi、xj的欧氏距离,
Figure BDA0003056618060000114
表示网格单元的中心点,xi表示网格中第i个数据点,xj表示网格中第j个数据点,mc表示网格中数据点的个数,m表示数据网格总数,
Figure BDA0003056618060000115
表示当前数据点到网格中心的距离。
进一步地,所述S2包括:
S2-1,对医疗图像数据集中任意一对数据xi,xj,计算其作用势γ(xi,xj),并以xi为基准样本,将其他的样本点对xj的作用势进行累加,得到每个样本点的作用势集合为:ρ={ρ12,...,ρn},其中ρ1表示第1个样本点的作用势,ρ2表示第2个样本点的作用势,ρn表示第n个样本点的作用势;
S2-2,从ρ中选择最大作用势ρi放入一个空的集合M{}中,并以ρi为当前的高斯核中心,以给定的核宽σ建立相应的高斯核来对原始数据的一个局部区域有效覆盖;
S2-3,消除当前高斯核所覆盖的局部区域的样本势值,提出基于高斯核函数的更新函数FU(xi,yj)对数据集中的其他样本点进行更新;
更新函数FU(xi,yj)如下所示:
Figure BDA0003056618060000116
其中,ρi为高斯核中心,ρj为集合中的样本点,σk表示核宽,
Figure BDA0003056618060000117
表示高斯内核;
更新后每个医疗图像样本点的作用势集合为ρ'={ρ1',ρ'2,...,ρ'n},当更新后的势值满足max{ρ1',ρ'2,...,ρ'n}>δ时,即可从ρ'中选择势值最大的样本点,放入集合M2{}中,其中δ表示作用势的一个阈值,ρ1'表示更新后的第1个样本点的作用势,ρ'2表示更新后的第2个样本点的作用势,ρ'n表示更新后的第n个样本点的作用势。
进一步地,所述S3包括:
设计医疗图像自适应参数来避免局部最优:
S-A,提出粒子群体平均速度
Figure BDA0003056618060000121
作为第一个自适应参数,计算出
Figure BDA0003056618060000122
值,设置其为控制变异步长的参数;
医疗图像的粒子群体平均速度为:
Figure BDA0003056618060000123
其中,n为数据的总的个数,vk,i为粒子的速度;
S-B,引入的变异算子为柯西变异算子,并将其与参数粒子群体平均速度
Figure BDA0003056618060000124
结合,根据公式(10)对陷入局部最优的粒子进行位置更新,跳出局部最优;
Figure BDA0003056618060000125
其中,
Figure BDA0003056618060000126
为当前粒子位置,
Figure BDA0003056618060000127
为更新后的位置,
Figure BDA0003056618060000128
为粒子群体平均速度,C(1)为柯西变异算子;
S-C,设计边界限制参数η:
参数
Figure BDA0003056618060000129
其中,x0为xi的中位数,γi表示尺度参数,xi表示第i个数据点的值。
进一步地,所述S3还包括质心初始化,所述质心初始化包括以下步骤:
S-1,将每个医疗图像网格单元的数据看作一群粒子S1,S2...,So,并对其进行初始化;其中S1表示第1个粒子,S2表示第2个粒子,So表示第o个粒子;
S-2,计算每个医疗图像粒子的适应值,并将其与粒子本身的最佳位置
Figure BDA00030566180600001210
种群的历史最佳位置
Figure BDA00030566180600001211
进行比较,如果适应值较优,则用适应值替换掉当前的
Figure BDA00030566180600001212
进行适应值更新;
S-3,计算边界限制参数η的值,获取有效搜索区域,根据更新的适应值,在有效搜索区域中对粒子的速度与粒子的位置进行更新;
S-4,将每次更新的种群的历史最佳位置
Figure BDA0003056618060000131
记录在集合W{}中,得到
Figure BDA0003056618060000132
并对集合W{}中的值进行比较,选取前K个较大的值,并找到其对应的粒子点,便是医疗图像数据集的初始质心。
进一步地,所述S3还包括局部并行化聚类:
S001,将各个医疗图像网格单元G1,G2,G3...Gm分配到Partition;
S002,通过mapRartitions算子计算出各个医疗图像网格单元的中心点
Figure BDA0003056618060000133
所述mapRartitions算子为:
Figure BDA0003056618060000134
其中
Figure BDA0003056618060000135
表示第i个网格单元的中心点,xi表示第i个数据点,mcount表示各个网格中的数据总数;
S003,将各个医疗图像网格单元中的质心点集
Figure BDA0003056618060000136
与医疗图像网格中心点
Figure BDA0003056618060000137
输入flatMap算子,并找到质心点所对应的网格单元,并标记为:C1,C2,...,CP计算出网格中心点与质心点之间的欧氏距离Di,其中flatMap算子为:
Figure BDA0003056618060000138
输出Di值;其中
Figure BDA0003056618060000139
表示第j个质心点,xk表示第k个数据点,mcount表示各个网格中的数据总数;
其中,
Figure BDA00030566180600001310
表示网格单元中的第1个质心点,
Figure BDA00030566180600001311
表示网格单元中的第2个质心点,
Figure BDA00030566180600001312
表示网格单元中的第k个质心点;C1表示第1个质心点所对应的网格单元,C2表示第2个质心点所对应的网格单元,CP表示第3个质心点所对应的网格单元;
S004,根据输出的Di值,通过mapToPair算子选取值最小的网格单元进行合并,即
Figure BDA00030566180600001313
反复循环,直到所有网格单元合并完毕,最后进行reduceByKey操作汇总,获得局部簇C1',C'2,...C'K;其中Gi表示网格单元,Ci表示质心对应的网格单元,Di(·)为欧氏距离表达式,
Figure BDA00030566180600001314
表示网格单元中的第k个质心点;
Figure BDA00030566180600001315
为第i个网格单元的中心点;C1'表示第1个簇,C'2表示第2个簇,C'K表示第K个簇。
进一步地,所述S4包括以下步骤:
S4-1,对于每一个簇C1',C'2,...C'K,分别计算出离质心距离最大的点,以其到质心的距离作为簇半径Ri;在获取每一个簇的簇半径之后,便计算出各个簇之间的邻居节点;
S4-2,对于簇第i个簇Ci'、第j个簇Cj',通过邻居节点集疏密程度判断两个簇之间的亲密程度,并分别计算出两个簇的样本点数ni,nj,提出簇的相似性函数CSM(ni,nj),计算出簇与簇之间的相似度。
进一步地,所述计算出簇与簇之间的相似度包括:
Figure BDA0003056618060000141
其中,k为分割维度,nei,nej分别为Ci,Cj之间的邻居节点与非邻居节点的个数,ni为簇Ci'的样本点的个数,nj为簇Cj'的样本点的个数。
1.数据划分
目前在大数据环境下的划分聚类算法中,在对数据划分时存在网格数据离散系数较大问题。为了解决此问题,本文提出基于皮尔逊相关系数与方差的网格划分策略PCCV,该策略主要包括三个步骤:
1)数据集的粗略划分:计算出分割维度k,并计算该维度下的数据均值,根据分割函数FD(xi)粗略划分数据集,获得数据网格Gmax与Gmin
2)网格的划分:在获取数据网格后,计算每个网格的皮尔逊相关系数与相关系数阈值,通过与阈值的比较,将数据网格进行进一步的划分,得到网格单元G1,G2,G3...Gm,其中G1表示第1个网格单元,G2表示第2个网格单元,G3表示第3个网格单元,Gm表示第m个网格单元;
3)离群点的过滤:对每个网格单元,分别计算出各个网格单元的离群因子GOF,通过与GOF值的比较对离群点进行过滤,进一步减小数据的离散系数。
1.1数据集的粗略划分
对于初始数据集,可以对数据先进行粗略的划分,获取数据离散系数较小的网格,其具体过程为:首先获取划分数据集,并将其标记为Gs;其次提出分割函数FD(xi)计算出划分阈值,分别与每个数据点比较,对于大于阈值的数据则放入网格Gmax中,小于阈值的数据则放入Gmin中;最后获得Gmax与Gmin两个数据网格。
定理1,分割函数FD(xi):已知空间数据集中的第i维度的数据的方差为Si,空间数据集中的第i维度的数据之和为di,网格中的数据点的个数为num,则分割函数FD(xi)为:
k={max(Si/di)|i=1,2,...u} (1)
Figure BDA0003056618060000151
其中
Figure BDA0003056618060000152
为第k分割维度下的数据值,u表示u个数据维度。
证明:由于方差越大,表明该维度所带的信息量越多。对于不同维度下的数据的方差值相同,则通过比较值di,其值越大表明数据越离散化;反之,值越小,数据越集中。因此,对于网格的划分维度k可通过si/di值进行决定,并选取si/di最大值作为网格的划分维度,又由于均值可以反映数据的整体倾向,所以以该维度下的数据的均值则可作为数据划分的网格分割函数。证毕。
1.2网格的划分
在获取Gmax与Gmin两个数据网格之后,由于分割函数只能对数据集进行粗略的划分,无法对相似度较大的数据进行网格划分,导致无法获取网格单元。因此,需要对网格Gmax与Gmin进行进一步的数据划分,其具体过程为:
1)提出数据的皮尔逊相关系数阈值PCCk,计算网格中数据点的皮尔逊相关系数阈值PCCk值,以PCCk值作为网格划分阈值来对数据网格进行划分,通过比较数据皮尔逊相关系数与PCCk的大小,将系数大于PCCk的数据进行标记为core,系数小于PCCk的数据则标记为uncore;
2)将网格中数据标记为core与uncore的两种数据分别划分为两个更小的网格,并取消标记;
3)对网格进行数据的判断,如果数据点的个数大于网格单元的阈值maxNum,则返回步骤1)。否则停止对网格进行划分。其中maxNum表示数据的总的个数n与并行化节点Partition个数的比值。
4)将划分好的网格单元进行标记,得到网格单元G1,G2,G3...Gm
定理2,皮尔逊相关系数阈值PCCk:令PCCk为任意两个数据点的皮尔逊相关系数值,Gnum为网格单元的数据个数,sum为求和函数,ω为数据点的密度权重,则阈值PCCk为:
Figure BDA0003056618060000161
Figure BDA0003056618060000162
其中PCCi,j代表数据点i、j之间的关联程度,ω代表网格单元中数据的密度大小,xk,i、xk,j分别表示第k个网格中的任意两个数据点的值,m表示数据网格总数。
证明:PCCi,j代表数据点之间的关联程度,即PCCi,j越大,则数据点之间的相似度越大。并且对于
Figure BDA0003056618060000163
将权重ω代入,我们可以得到
Figure BDA0003056618060000164
Figure BDA0003056618060000165
的大小反映了数据的离散化程度,其值越大则数据越离散,反之,其值越小,则数据越集中。因此
Figure BDA0003056618060000166
的值的大小可以很好的对数据相似程度进行衡量,所以PCCk可以作为网格划分的皮尔逊相关系数阈值,证毕。
1.3离群点的过滤
在获取网格单元G1,G2,G3...Gm后,由于网格单元存在离群点,也会导致数据的离散系数增大。为了进一步减小数据的离散系数,提出了一种离群因子GOF来对离群点过滤,其具体过程为:计算网每个格单元中数据的GOF值,若GOF值>>ε,则将该数据点视为离群点,并对其进行删除;其中>>表示远大于,ε表示网格单元数据阈值。
定理3,离群因子GOF:令d(xi,xj)表示网格中两个数据点的欧氏距离,x表示网格单元的中心点,则离群因子GOF为:
Figure BDA0003056618060000171
Figure BDA0003056618060000172
Figure BDA0003056618060000173
其中xi表示网格中第i个数据点,xj表示网格中第j个数据点,mc表示网格中数据点的个数,m表示数据网格总数。
证明:d表示当前网格中其余的m-1个数据点的欧氏距离,其值的大小可以表示网格的密度。当d越小,表明网格的密度越大,反之,则越小。
Figure BDA0003056618060000174
表示当前数据点到网格中心的距离。对于离群点来说,其值会相对于其他数据点更大。因此如果数据点的GOF值>>ε,则可以将此数据点过滤,所以可以用GOF来过滤网格的离群点,证毕。
2.局部簇簇数的确定
针对大数据环境下并行化K-means算法中的局部簇簇数难以确定的问题,提出SPFG策略,并通过势函数与高斯核函数来完成数据的覆盖与搜索,获取局部聚类的簇数。其具体过程为:
1)对数据集中任意一对数据xi、xj,计算其作用势γ(xi,xj),并以xi为基准样本,将其他的样本点对xj的作用势进行累加,得到每个样本点的作用势集合为:ρ={ρ12,...,ρn},其中ρ1表示第1个样本点的作用势,ρ2表示第2个样本点的作用势,ρn表示第n个样本点的作用势;
2)从ρ中选择最大作用势ρi放入一个空的集合M{}中,并以ρi为当前的高斯核中心,以给定的核宽σ建立相应的高斯核来对原始数据的一个局部区域有效覆盖
3)消除当前高斯核所覆盖的局部区域的样本势值,提出基于高斯核函数的更新函数FU(xi,yj)对数据集中的其他样本点进行更新。
定理4,更新函数FU(xi,yj):令当前的高斯核中心为ρi,ρj为集合中的样本点,则其更新函数FU(xi,yj)如下所示:
Figure BDA0003056618060000181
其中σk表示核宽,
Figure BDA0003056618060000182
表示高斯内核。
证明:由高斯核函数的的衰减特性可知,当样本点距离高斯核中心较远时,xj对xi的影响十分小,又由于
Figure BDA0003056618060000183
表示高斯内核,所以数据集S中的各个样本点的势值都可以有效更新。证毕。
更新后每个样本点的作用势集合为ρ'={ρ1',ρ'2,...,ρ'n},当更新后的势值满足max{ρ1',ρ'2,...,ρ'n}>δ时,即可从ρ'中选择势值最大的样本点,放入集合M2{}中。通过这种方式继续寻找下一个新的样本点,直到数据集S被完全覆盖,集合M2{}中的样本点的个数便是局部聚类的簇数。其中δ表示作用势的一个阈值。
3.局部簇质心初始化
在获取了局部聚类的簇数之后,为了进一步减少算法对初始质心的依赖性,提出了策略ASPSO。通过ASPSO策略来对局部簇质心进行初始化,提升局部聚类的效果。该策略主要包括两个阶段:自适应参数的确定、质心初始化。(1)自适应参数确定阶段:提出AS策略,引入柯西变异算子,设置粒子平均速度与边界限制参数η来作为自适应参数;(2)质心初始化阶段:通过AS策略与PSO算法相结合,并根据自适应参数,对粒子的速度与位置不断更新,跳出局部最优,获取初始化质心。所述AS策略是本文针对PSO算法陷入局部最优问题而设计出来的一个策略。
3.1自适应参数的确定
在实现质心初始化的过程中,提出了粒子的收敛性,由此性质可知粒子最终收敛于
Figure BDA0003056618060000184
算法将停止运行,如果算法没有在收敛之前得到全局最优解,就会导致过早收敛,陷入局部最优解。其中,
Figure BDA0003056618060000191
表示粒子本身的历史最佳位置,
Figure BDA0003056618060000192
表示种群历史最佳位置。
定理5,粒子的收敛性:令ε>0,max(||α||,||β||)<1,存在N≥1,使得对于任意的n≥N,有
Figure BDA0003056618060000193
其中,n为数据的总的个数,N为一个大于1的随机数,ε为网格单元数据阈值,max(||α||,||β)表示取其最大值且不能大于1,其中α、β表示两个任意的范数值小于1的数,||·||表示范数。
证明:
Figure BDA0003056618060000194
当max(||α||,||β||)<1时,可得:
Figure BDA0003056618060000195
所以,
Figure BDA0003056618060000196
对两边求极限得:
Figure BDA0003056618060000197
证毕。
因此,为了实现初始质心的全局最优解,需要设计自适应参数来避免局部最优。为此,SP-ASPSO算法设计了AS策略,来确定自适应参数,其具体过程如下:
1)提出粒子群体平均速度
Figure BDA0003056618060000198
作为第一个自适应参数,计算出
Figure BDA0003056618060000199
值,设置其为控制变异步长的参数;
定理6,粒子群体平均速度
Figure BDA00030566180600001910
已知粒子的个数即数据的总的个数为n,粒子的速度为vk,i,则粒子群体平均速度为:
Figure BDA00030566180600001911
证明:由于在初始阶段,粒子群体平均速度较大,随着粒子的位置的不断更新,由
Figure BDA00030566180600001912
可知,粒子的速度不断减小,导致平均速度也相对减小,所以群体也开始慢慢收敛,即其平均速度的变化的趋势与收敛的趋势是一致的,所以选取平均速度作为控制变异步长的自适应参数。证毕。
2)提出柯西变异算子的离散性,由此性质可知,柯西分布比高斯分布具有更加离散的取值,更有利于算法跳出局部最优。因此,AS策略引入的变异算子为柯西变异算子,并将其与参数粒子群体平均速度
Figure BDA0003056618060000201
结合,根据公式(10)对陷入局部最优的粒子进行位置更新,跳出局部最优。
Figure BDA0003056618060000202
其中,
Figure BDA0003056618060000203
为当前粒子位置,
Figure BDA0003056618060000204
为更新后的位置,
Figure BDA0003056618060000205
为粒子群体平均速度C(1)为柯西变异算子
定理7,柯西变异算子的离散性:令柯西分布函数为
Figure BDA0003056618060000206
高斯分布函数为
Figure BDA0003056618060000207
即存在N>0,使得当|x|>N时,有f(x)>g(x)。其中,x'为定义分布峰值位置的位置参数,γ为最大值的一半处的一半宽度的尺度参数,σ表示核宽,μ表示均值,N为任意的一个大于0的数,|·|表示绝对值。
证明:由于f(x)与g(x)都是以x=μ对称,所以要想证明f(x)>g(x)只需证明当x>N时,f(x)>g(x)即可。令
Figure BDA0003056618060000208
显然存在N>0时,使得W(x)>0,即
Figure BDA0003056618060000209
即可知f(x)>g(x),证毕。
3)设计边界限制参数η,由于C(1)是引入的柯西算子,是由t=1的柯西分布函数产生的随机数,并不能得到有效搜索区域,因此,在进行数据集搜索时,对搜索区域进行边界限制,只对满足边界限制参数η的数据区域进行搜索。
定理8,边界限制参数η:令x0为xi的中位数,
Figure BDA00030566180600002010
Figure BDA00030566180600002011
分别表示xi左侧和右侧时的尺度参数,则参数η为:
Figure BDA00030566180600002012
其中对于任意的x满足
Figure BDA00030566180600002013
γi表示尺度参数,xi表示第i个数据点的值。
证明:由于x0为xi的中位数,即(x-x0)2表示粒子的位置维度的2阶中心矩,减少了粒子的离散化程度,从而减少了噪音的影响。式
Figure BDA00030566180600002014
通过尺度参数对尺度参数与2阶中心矩的和的比值,从而可以有效防止边界限制参数η过大而影响算法的收敛。而由于x满足:
Figure BDA0003056618060000211
Figure BDA0003056618060000212
Figure BDA0003056618060000213
所以可得到
Figure BDA0003056618060000214
所以
Figure BDA0003056618060000215
即在边界
Figure BDA0003056618060000216
内进行搜索,从而可以得到有效搜索区域。证毕。
3.2质心初始化
在通过AS策略进行自适应参数选取,保证不会陷入局部最优解之后,便可以进行质心的初始化。其具体过程为:
1)将每个网格单元的数据看作一群粒子S1,S2...,So,其中S1表示第1个粒子,S2表示第2个粒子,So表示第o个粒子;并通过公式(3)(4)(5)对其进行初始化;
2)计算每个粒子的适应值,并将其与粒子本身的最佳位置
Figure BDA0003056618060000217
种群的历史最佳位置
Figure BDA0003056618060000218
进行比较,如果适应值较优,则用适应值替换掉当前的
Figure BDA0003056618060000219
进行适应值更新;
3)计算边界限制参数η的值,获取有效搜索区域,根据更新的适应值,结合公式(9)与公式(10)在有效搜索区域中对粒子的速度与粒子的位置进行更新;
4)将每次更新的
Figure BDA00030566180600002110
记录在集合W{}中,得到
Figure BDA00030566180600002111
并对集合W{}中的值进行比较,选取前K个较大的值,并找到其对应的粒子点,便是数据集的初始质心。
3.3局部并行化聚类
在对网格单元的数据质心初始化之后,便需要对网格单元进行并行化合并,获取局部簇,实现局部并行化聚类,其具体过程如下:
1)将各个网格单元G1,G2,G3...Gm分配到Partition;
2)通过mapRartitions算子计算出各个网格单元的中心点
Figure BDA00030566180600002112
其中mapRartitions算子为:
Figure BDA0003056618060000221
其中
Figure BDA0003056618060000222
表示第i个网格单元的中心点,xi表示第i个数据点,mcount表示各个网格中的数据总数。
3)将各个网格单元中的质心点集
Figure BDA0003056618060000223
与网格中心点
Figure BDA0003056618060000224
输入flatMap算子,并找到质心点所对应的网格单元,并标记为:C1,C2,...,CP计算出网格中心点与质心点之间的欧氏距离Di,其中flatMap算子为
Figure BDA0003056618060000225
输出Di值;其中
Figure BDA0003056618060000226
表示第j个质心点,xp表示第p个数据点,mcount表示各个网格中的数据总数。
其中,
Figure BDA0003056618060000227
表示网格单元中的第1个质心点,
Figure BDA0003056618060000228
表示网格单元中的第2个质心点,
Figure BDA0003056618060000229
表示网格单元中的第k个质心点;C1表示第1个质心点所对应的网格单元,C2表示第2个质心点所对应的网格单元,CP表示第3个质心点所对应的网格单元;
4)根据输出的Di值,通过mapToPair算子选取值最小的网格单元进行合并,即
Figure BDA00030566180600002210
反复循环,直到所有网格单元合并完毕,最后进行reduceByKey操作汇总,获得局部簇C1',C'2,...C'K。其中Gi表示网格单元,Ci表示质心对应的网格单元,
Figure BDA00030566180600002211
为第i个网格单元的中心点;C1'表示第1个簇,C'2表示第2个簇,C'K表示第K个簇。
4.局部簇合并
目前大数据下的并行划分聚类算法,在对局部簇的合并中采用对所有簇的点与边集同时展开搜索进行局部簇的合并,导致聚簇时间和空间消耗偏高,造成算法在全局簇的获取上效率低。因此,针对局部簇的合并效率低的问题,在Spark计算框架的基础上,提出基于簇半径与邻居节点的局部簇合并策略CRNN,其主要步骤如下所示,并在图1给出了总体的运行过程:
1)对于每一个簇C1',C'2,...C'K,分别计算出离质心距离最大的点,以其到质心的距离作为簇半径Ri。在获取每一个簇的簇半径之后,便计算出各个簇之间的邻居节点。
2)对于簇第i个簇Ci'、第j个簇Cj',通过邻居节点集疏密程度判断两个簇之间的亲密程度,并分别计算出两个簇的样本点数ni,nj,提出簇的相似性函数CSM(ni,nj),计算出簇与簇之间的相似度。
定理9,簇的相似性函数CSM(ni,nj):令nei,nej分别为Ci,Cj之间的邻居节点与非邻居节点的个数,ni为簇Ci'的样本点的个数,nj为簇Cj'的样本点的个数,则簇的相似性函数表示为:
Figure BDA0003056618060000231
其中k为分割维度。
证明:由于nei与nej分别表示两个簇之间的交集节点与非交集节点,即代表了两个簇之间的全部数据信息,通过与两个簇之间总数据点进行比值,体现了两个簇中的相交数据占所有数据的百分比,可以间接的衡量簇与簇之间的相似性。对于(nei/2k)2-nei/k通过展开可知:(nei/2k)2-nei/k=(nei 2-4knei)/4k2=nei(nei-4k)/4k2,从结果nei(nei-4k)/4k2可知,当两个簇之间的邻居节点较少时,即nei(nei-4k)/4k2值较小,如果两个簇之间无交集,结果甚至会小于0。因此,
Figure BDA0003056618060000232
可以很好的衡量簇与簇之间的交集,所以簇的相似性函数SM(ni,nj)可以很好的表示簇的相似度。证毕。
3)将各个簇C1',C'2,...C'K分配到多个Partition,根据(2)计算出的相似度值,通过算子mapRarti-tions对簇之间的相似度进行比较,将相似度最大的两个簇进行合并,对于合并完的两个簇,对其中的一个簇进行标记merged,另一个簇则通过flatMap算子对其进行簇半径更新,反复循环,直到不存在两个非merged的簇还有邻居节点,最后进行reduceByKey操作汇总,实现局部簇的并行化。
5.基于Spark和ASPSO的并行化K-means算法(SP-ASPSO)的有效性
为了验证算法SP-ASPSO的聚类效果,我们将SP-ASPSO方法应用于Online Retail、N_BaloT、Health News及Bag words四个数据集上,其具体信息如表1所示。将SP-ASPSO、SP-DAP和SP-GAKMS算法在聚类精确度等方面进行了比较。
表1实验数据集
Online Retail N_BaloT Health News Bag words
Records 1067371 7062606 580000 8000000
Attributes 8 115 250000 171
Size(MB) 580 960.5 630.2 1687.9
5.1SP-ASPSO方法的并行性能分析
为验证SP-ASPSO算法的加速比,将SP-ASPSO算法、SP-DAP算法、SP-GAKMS算法与SP-LAICA算法分别在Online Retail、N_BaloT、Health News及Bag words四种数据集上进行对比实验,并使用加速比作衡量指标,分别比较各个算法在不同节点数下的加速比,进而对各个算法的性能进行比较分析。其实验结果如下所示:
从图2(a)四种算法在Online Retail的加速比,图2(b)四种算法在N_BaloT的加速比,图2(c)四种算法在Health News的加速比,图2(d)四种算法在Bag words的加速比可得出:在处理Online Retail、N_BaloT、Health News及Bag words数据集时,各方法运行的加速比随着节点数的增加而逐渐上升,并且SP-ASPSO算法凭借局部簇合并策略CRNN,极大的提高了并行化效率,在各个数据集上运行始终具有最高的加速比。随着节点数的增加,SP-ASPSO算法加速比相较于其它三种算法增加的趋势也更加显著。其中,在Online Retail数据集上,当节点数达到4时,SP-ASPSO的加速比相较于其它三种算法分别增加了0.3,0.28,0.4;在特征属性适中的N_BaloT中当节点数达到4时,SP-ASPSO的加速比相较于其它三种算法分别增加了0.3,0.26,0.4;在特征属性较多的Bag words中当节点数达到4时,SP-ASPSO的加速比相较于其它三种算法分别增加了0.03,0.02,0.1。产生这些结果的主要原因是:SP-ASPSO设计了PCCV策略与CRNN策略,通过计算皮尔逊相关系数阈值,减少数据的离散系数,并在计算出邻居节点之后,设计了相似性函数进行相似度判断,极大的提高了局部簇并行化合并的效率,进而使得在节点数量越多时,SP-ASPSO的加速比相比于其它三种算法增加的趋势越加显著。而SP-DAP与SP-GAKMS在数据划分阶段与质心初始化阶段对算法进行了优化,间接的提高了算法聚类效率,但在并行化阶段并未解决对簇相似性合并问题,导致簇的合并效率不高;而对于SP-LAICA,虽然其通过局部聚簇寻找数据集中连接紧密的节点集,并迭代合并局部簇,实现了对局部簇的并行化合并,但由于迭代方式的局限性,并不能较好的提高聚类的并行化聚类效率,因此在四种数据集中SP-ASPSO的加速比相较于其它三种算法一直保持最高,具有最佳的加速比性能。
5.2SP-ASPSO方法的聚类效果分析
为验证SP-ASPSO算法的准确度,使用ARI作为衡量指标,将SP-ASPSO算法、SP-DAP算法、SP-GAKMS算法与SP-LAICA算法分别在Online Retail、N_BaloT、Health News及Bagwords数据集上进行处理,并分别运行10次得出聚类结果,取其聚类结果均值作为实验结果。实验结果如下所示:
从图3中可以看出,在对各数据集进行处理时,SP-ASPSO算法的ARI值始终保持最高,并且随着数据集的特征属性增多,SP-ASPSO的ARI值与其它三种算法的ARI值相比较,SP-ASPSO方法的优势更加明显。尤其是在Bag words数据集上,SP-ASPSO凭借着设计了SPFG策略,其ARI值更是远远高于SP-LAICA。然而在数据特征维数相对较少的数据集上,各个算法的ARI值差距并不明显。其中,在Online Retail数据集上,SP-ASPSO的ARI值相比于SP-DAP、SP-GAKMS与SP-LAICA分别高出了0.02,0.03,0.04,各算法的ARI值相差不大;在对数据特征维数相对适中的Health News数据集进行处理时,SP-ASPSO的ARI值比其它三种算法分别高出了0.05,0.07,0.11;在对数据量与特征维数较多的Bag words数据集进行处理时,SP-ASPSO的ARI值相比于SP-DAP、SP-GAKMS与SP-LAICA分别高出了0.06,0.1,0.12。产生这些结果的主要原因是:SP-ASPSO设计了ASPSO策略计算出自适应参数,通过自适应参数更新粒子的位置和速度,减少了局部簇质心随机性的影响,极大的加强了算法聚类的准确性。在特征属性较少的数据集上,由于数据集的特征属性较少,导致初始质心的影响并不显著,为此在数据量与特征属性较多的Health News与Bag words数据集上,SP-ASPSO的ARI值才会明显要高于其它三种算法。对于SP-LAICA方法在对数据集进行并行化聚类时,仅仅使用了二次划分算法避免了重复的迭代计算,并未在并行化聚类之前对数据集进行优化,导致其聚类效果并不佳,因此,在四种数据集中,其ARI值都一直处于最低。通过对比算法在四种数据集上的ARI值,可以看出SP-ASPSO算法相较于其它三种算法ARI值一直保持最大,这也表明了SP-ASPSO方法具有最佳的聚类效果。
综上所述,我们所提出的基于Spark和ASPSO的并行化K-means算法(SP-ASPSO),在聚类效果和并行效率上都有显著的提升。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (9)

1.一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,包括以下步骤:
S1,通过分割函数粗略的划分数据集,并利用基于皮尔逊相关系数和方差的网格划分策略PCCV来计算数据网格的皮尔逊相关系数与相关系数阈值,再通过与阈值比较,对数据网格进行划分,获取网格单元;
S2,采用SPFG策略,对数据点进行局部区域覆盖,并通过更新函数,更新数据集中的样本点,形成以不同样本点为核心的区域簇,获取局部聚类的簇数;
S3,采用ASPSO策略,计算自适应参数,通过自适应参数更新粒子的位置和速度,获取局部簇质心;
S4,采用CRNN策略计算每个簇的簇半径,通过簇半径计算出簇与簇之间的邻居节点,并根据簇的相似性函数进行相似度判断,结合Spark并行计算框架将相似度大的簇进行合并;
S5,输出聚类结果:最终的聚类中心以及每个样本所属的类别。
2.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S1包括:
S1-1,数据集的粗略划分:首先获取划分数据集,并将其标记为Gs;其次提出分割函数FD(xi)计算出划分阈值,分别与每个数据点比较,对于大于阈值的数据则放入网格Gmax中,小于阈值的数据则放入Gmin中;最后获得Gmax与Gmin两个数据网格;
所述分割函数FD(xi)为:
k={max(Si/di)|i=1,2,...u} (1)
Figure FDA0003056618050000011
其中,k表示分割维度,Si为空间数据集中第i维度的数据的方差,di为空间数据集中第i维度的数据之和,u表示u个数据维度,
Figure FDA0003056618050000021
为第k分割维度下的数据值,num为网格中的数据点的个数;
S1-2,网格的划分:在获取Gmax与Gmin两个数据网格之后,对网格Gmax与Gmin进行进一步的数据划分;
S1-2-1,首先计算网格中数据点的皮尔逊相关系数阈值PCCk值,以PCCk值作为网格划分阈值来对数据网格进行划分,通过比较数据皮尔逊相关系数与PCCk的大小,将系数大于PCCk的数据进行标记为core,系数小于PCCk的数据则标记为uncore;
S1-2-2,将网格中数据标记为core与uncore的两种数据分别划分为两个更小的网格,并取消标记;
S1-2-3,对网格进行数据的判断,如果数据点的个数大于网格单元的阈值maxNum,则返回步骤S1-2-1,否则停止对网格进行划分;其中maxNum表示数据的总的个数n与并行化节点Partition个数的比值;
S1-2-4,将划分好的网格单元进行标记,得到网格单元G1,G2,G3...Gm
令PCCk为任意两个数据点的皮尔逊相关系数值,则阈值PCCk为:
Figure FDA0003056618050000022
Figure FDA0003056618050000023
其中,PCCi,j代表数据点i、j之间的关联程度,sum(·)为求和函数,Gnum为网格单元的数据个数,ω为数据点的密度权重,xk,i、xk,j分别表示第k个网格中的任意两个数据点的值,m表示数据网格总数。
3.根据权利要求2所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S1还包括:
S1-3,离群点的过滤:
在获取网格单元G1,G2,G3...Gm后,计算每个网格单元中数据的GOF值,若GOF值>>ε,则将该数据点视为离群点,并对其进行删除;其中G1为第一网格单元,G2为第二网格单元,G3为第三网格单元,Gm为第m网格单元;>>表示远大于,ε表示网格单元数据阈值;
离群因子GOF为:
Figure FDA0003056618050000031
Figure FDA0003056618050000032
Figure FDA0003056618050000033
其中,d表示当前网格中其余的m-1个数据点的欧氏距离,d(xi,xj)表示网格中数据点xi、xj的欧氏距离,
Figure FDA0003056618050000034
表示网格单元的中心点,xi表示网格中第i个数据点,xj表示网格中第j个数据点,mc表示网格中数据点的个数,m表示数据网格总数,
Figure FDA0003056618050000035
表示当前数据点到网格中心的距离。
4.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S2包括:
S2-1,对数据集中任意一对数据xi,xj,计算其作用势γ(xi,xj),并以xi为基准样本,将其他的样本点对xj的作用势进行累加,得到每个样本点的作用势集合为:ρ={ρ12,...,ρn},其中ρ1表示第1个样本点的作用势,ρ2表示第2个样本点的作用势,ρn表示第n个样本点的作用势;
S2-2,从ρ中选择最大作用势ρi放入一个空的集合M{}中,并以ρi为当前的高斯核中心,以给定的核宽σ建立相应的高斯核来对原始数据的一个局部区域有效覆盖;
S2-3,消除当前高斯核所覆盖的局部区域的样本势值,提出基于高斯核函数的更新函数FU(xi,yj)对数据集中的其他样本点进行更新;
更新函数FU(xi,yj)如下所示:
Figure FDA0003056618050000041
其中,ρi为高斯核中心,ρj为集合中的样本点,σk表示核宽,
Figure FDA0003056618050000042
表示高斯内核;
更新后每个样本点的作用势集合为ρ'={ρ'1,ρ'2,...,ρ'n},当更新后的势值满足max{ρ'1,ρ'2,...,ρ'n}>δ时,即可从ρ'中选择势值最大的样本点,放入集合M2{}中,其中δ表示作用势的一个阈值,ρ'1表示更新后的第1个样本点的作用势,ρ'2表示更新后的第2个样本点的作用势,ρ'n表示更新后的第n个样本点的作用势。
5.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S3包括:设计自适应参数来避免局部最优:
S-A,提出粒子群体平均速度
Figure FDA0003056618050000043
作为第一个自适应参数,计算出
Figure FDA0003056618050000044
值,设置其为控制变异步长的参数;
粒子群体平均速度为:
Figure FDA0003056618050000045
其中,n为数据的总的个数,vk,i为粒子的速度;
S-B,引入的变异算子为柯西变异算子,并将其与参数粒子群体平均速度
Figure FDA0003056618050000046
结合,根据公式(10)对陷入局部最优的粒子进行位置更新,跳出局部最优;
Figure FDA0003056618050000047
其中,
Figure FDA0003056618050000048
为当前粒子位置,
Figure FDA0003056618050000049
为更新后的位置,
Figure FDA00030566180500000410
为粒子群体平均速度,C(1)为柯西变异算子;
S-C,设计边界限制参数η:
参数
Figure FDA00030566180500000411
其中,x0为xi的中位数,γi表示尺度参数,xi表示第i个数据点的值。
6.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S3还包括质心初始化,所述质心初始化包括以下步骤:
S-1,将每个网格单元的数据看作一群粒子S1,S2...,So,并对其进行初始化;其中S1表示第1个粒子,S2表示第2个粒子,So表示第o个粒子;
S-2,计算每个粒子的适应值,并将其与粒子本身的最佳位置
Figure FDA0003056618050000051
种群的历史最佳位置
Figure FDA0003056618050000052
进行比较,如果适应值较优,则用适应值替换掉当前的
Figure FDA0003056618050000053
进行适应值更新;
S-3,计算边界限制参数η的值,获取有效搜索区域,根据更新的适应值,在有效搜索区域中对粒子的速度与粒子的位置进行更新;
S-4,将每次更新的种群的历史最佳位置
Figure FDA0003056618050000054
记录在集合W{}中,得到
Figure FDA0003056618050000055
并对集合W{}中的值进行比较,选取前K个较大的值,并找到其对应的粒子点,便是数据集的初始质心。
7.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S3还包括局部并行化聚类:
S001,将各个网格单元G1,G2,G3...Gm分配到Partition;其中G1为第一网格单元,G2为第二网格单元,G3为第三网格单元,Gm为第m网格单元;
S002,通过mapRartitions算子计算出各个网格单元的中心点
Figure FDA0003056618050000056
所述mapRartitions算子为:
Figure FDA0003056618050000057
其中
Figure FDA0003056618050000058
表示第i个网格单元的中心点,xi表示第i个数据点,mcount表示各个网格中的数据总数;
S003,将各个网格单元中的质心点集
Figure FDA0003056618050000059
与网格中心点
Figure FDA00030566180500000510
输入flatMap算子,并找到质心点所对应的网格单元,并标记为:C1,C2,...,CP计算出网格中心点与质心点之间的欧氏距离Di,其中flatMap算子为:
Figure FDA00030566180500000511
输出Di值;其中
Figure FDA00030566180500000512
表示第j个质心点,xp表示第p个数据点,mcount表示各个网格中的数据总数;
其中,
Figure FDA0003056618050000061
表示网格单元中的第1个质心点,
Figure FDA0003056618050000062
表示网格单元中的第2个质心点,
Figure FDA0003056618050000063
表示网格单元中的第k个质心点;C1表示第1个质心点所对应的网格单元,C2表示第2个质心点所对应的网格单元,CP表示第3个质心点所对应的网格单元;
S004,根据输出的Di值,通过mapToPair算子选取值最小的网格单元进行合并,即
Figure FDA0003056618050000064
反复循环,直到所有网格单元合并完毕,最后进行reduceByKey操作汇总,获得局部簇C'1,C'2,...C'K;其中Gi表示网格单元,Ci表示质心对应的网格单元,Di(·)为欧氏距离表达式,
Figure FDA0003056618050000065
表示网格单元中的第k个质心点;
Figure FDA0003056618050000066
为第i个网格单元的中心点;C'1表示第1个簇,C'2表示第2个簇,C'K表示第K个簇。
8.根据权利要求1所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述S4包括以下步骤:
S4-1,对于每一个簇C'1,C'2,...C'K,分别计算出离质心距离最大的点,以其到质心的距离作为簇半径Ri;在获取每一个簇的簇半径之后,便计算出各个簇之间的邻居节点;其中C'1为第1个簇,C'2为第2个簇,C'K为第K个簇;
S4-2,对于簇第i个簇Ci'、第j个簇Cj',通过邻居节点集疏密程度判断两个簇之间的亲密程度,并分别计算出两个簇的样本点数ni,nj,提出簇的相似性函数CSM(ni,nj),计算出簇与簇之间的相似度。
9.根据权利要求8所述的一种基于Spark和ASPSO的并行化K-means的优化方法,其特征在于,所述计算出簇与簇之间的相似度包括:
Figure FDA0003056618050000067
其中,k为分割维度,nei,nej分别为Ci,Cj之间的邻居节点与非邻居节点的个数,ni为簇Ci'的样本点的个数,nj为簇Cj'的样本点的个数。
CN202110501668.4A 2021-05-08 2021-05-08 基于Spark和ASPSO的并行化K-means的优化方法 Active CN113128617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110501668.4A CN113128617B (zh) 2021-05-08 2021-05-08 基于Spark和ASPSO的并行化K-means的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110501668.4A CN113128617B (zh) 2021-05-08 2021-05-08 基于Spark和ASPSO的并行化K-means的优化方法

Publications (2)

Publication Number Publication Date
CN113128617A true CN113128617A (zh) 2021-07-16
CN113128617B CN113128617B (zh) 2022-04-15

Family

ID=76781230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110501668.4A Active CN113128617B (zh) 2021-05-08 2021-05-08 基于Spark和ASPSO的并行化K-means的优化方法

Country Status (1)

Country Link
CN (1) CN113128617B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116432988A (zh) * 2023-06-12 2023-07-14 青岛精锐机械制造有限公司 一种阀门生产工艺数据智能管理方法、介质及设备
CN117056758A (zh) * 2023-10-11 2023-11-14 中国华能集团清洁能源技术研究院有限公司 风电机组运行状态识别方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261846A1 (en) * 2014-03-11 2015-09-17 Sas Institute Inc. Computerized cluster analysis framework for decorrelated cluster identification in datasets
CN106682116A (zh) * 2016-12-08 2017-05-17 重庆邮电大学 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
CN110069467A (zh) * 2019-04-16 2019-07-30 沈阳工业大学 基于皮尔逊系数与MapReduce并行计算的电网尖峰负荷聚类提取法
CN111597230A (zh) * 2020-05-15 2020-08-28 江西理工大学 基于MapReduce的并行密度聚类挖掘方法
CN111695579A (zh) * 2019-03-11 2020-09-22 中科海拓(北京)科技有限公司 一种基于网格的快速dbscan聚类方法
US20200363972A1 (en) * 2019-05-15 2020-11-19 EMC IP Holding Company LLC Deduplication using nearest neighbor cluster

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261846A1 (en) * 2014-03-11 2015-09-17 Sas Institute Inc. Computerized cluster analysis framework for decorrelated cluster identification in datasets
CN106682116A (zh) * 2016-12-08 2017-05-17 重庆邮电大学 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
CN111695579A (zh) * 2019-03-11 2020-09-22 中科海拓(北京)科技有限公司 一种基于网格的快速dbscan聚类方法
CN110069467A (zh) * 2019-04-16 2019-07-30 沈阳工业大学 基于皮尔逊系数与MapReduce并行计算的电网尖峰负荷聚类提取法
US20200363972A1 (en) * 2019-05-15 2020-11-19 EMC IP Holding Company LLC Deduplication using nearest neighbor cluster
CN111597230A (zh) * 2020-05-15 2020-08-28 江西理工大学 基于MapReduce的并行密度聚类挖掘方法

Non-Patent Citations (11)

* Cited by examiner, † Cited by third party
Title
BOWEN WANG 等: "Parallelizing K-Means-Based Clustering on Spark", 《2016 INTERNATIONAL CONFERENCE ON ADVANCED CLOUD AND BIG DATA (CBD)》 *
MAN SHA 等: "Speaker Recognition Based on APSO-K-means Clustering Algorithm", 《2009 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND COMPUTATIONAL INTELLIGENCE》 *
MATTHEW SHERAR 等: "Particle swarm optimization for large-scale clustering on apache spark", 《2017 IEEE SYMPOSIUM SERIES ON COMPUTATIONAL INTELLIGENCE (SSCI)》 *
RAED A. HASAN等: "An adaptive clustering and classification algorithm for Twitter data streaming in Apache Spark", 《TELKOMNIKA》 *
刘宇 等: "基于物种的自适应多模态粒子群优化算法", 《山东大学学报(理学版)》 *
卜凡鹏 等: "一种基于双层迭代聚类分析的负荷模式可控精细化识别方法", 《电网技术》 *
喻金平 等: "一种改进的混合蛙跳和K均值结合的聚类算法", 《计算机工程与科学》 *
李莉 等: "基于Spark的并行K-means气象数据挖掘研究", 《信息技术》 *
潘品臣: "非独立同分布下K均值算法的改进及在球员数据分析中的应用研究", 《中国优秀硕士学位论文全文数据库 社会科学II辑》 *
秦乐: "地震前兆数据分析与异常监测研究及实现", 《中国优秀硕士学位论文全文数据库 基础科学辑》 *
雷晨 等: "Spark下基于PCA和分层选择的随机森林算法", 《HTTPS://KNS.CNKI.NET/KCMS/DETAIL/11.2127.TP.20210203.0956.004.HTML 》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116432988A (zh) * 2023-06-12 2023-07-14 青岛精锐机械制造有限公司 一种阀门生产工艺数据智能管理方法、介质及设备
CN116432988B (zh) * 2023-06-12 2023-09-05 青岛精锐机械制造有限公司 一种阀门生产工艺数据智能管理方法、介质及设备
CN117056758A (zh) * 2023-10-11 2023-11-14 中国华能集团清洁能源技术研究院有限公司 风电机组运行状态识别方法、装置及设备
CN117056758B (zh) * 2023-10-11 2024-01-30 中国华能集团清洁能源技术研究院有限公司 风电机组运行状态识别方法、装置及设备

Also Published As

Publication number Publication date
CN113128617B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN113128617B (zh) 基于Spark和ASPSO的并行化K-means的优化方法
Wang et al. A cluster-based competitive particle swarm optimizer with a sparse truncation operator for multi-objective optimization
CN106682116A (zh) 基于Spark内存计算大数据平台的OPTICS点排序聚类方法
Amiri et al. Efficient protocol for data clustering by fuzzy cuckoo optimization algorithm
CN106845536B (zh) 一种基于图像缩放的并行聚类方法
CN111313957B (zh) 基于分类多目标优化的混合卫星通信系统资源分配方法
CN113128618A (zh) 基于kd树和混沌蜉蝣优化算法的并行谱聚类方法
Rahman et al. CRUDAW: A novel fuzzy technique for clustering records following user defined attribute weights
CN111597230A (zh) 基于MapReduce的并行密度聚类挖掘方法
CN110580252B (zh) 多目标优化下的空间对象索引与查询方法
CN116112563A (zh) 一种基于流行度预测的双策略自适应缓存替换方法
Nabizadeh et al. A multi-swarm cellular PSO based on clonal selection algorithm in dynamic environments
Binu et al. MKF-cuckoo: hybridization of cuckoo search and multiple kernel-based fuzzy C-means algorithm
Yi et al. New feature analysis-based elastic net algorithm with clustering objective function
CN109074348A (zh) 用于对输入数据集进行迭代聚类的设备和迭代方法
CN117093885A (zh) 融合分层聚类和粒子群的联邦学习多目标优化方法
CN110867224B (zh) 用于大规模脑病历分割的多粒度Spark超信任模糊方法
CN112417507A (zh) 一种基于隐私保护的大型图的节点三角形计数的发布方法
CN110175172B (zh) 基于稀疏二分图的极大二分团并行枚举方法
CN108897820B (zh) 一种denclue算法的并行化方法
CN111353525A (zh) 一种不均衡不完整数据集的建模及缺失值填补方法
Huang et al. A grid and density based fast spatial clustering algorithm
CN112949154B (zh) 并行异步粒子群优化方法、系统及电子设备
Yanto et al. A performance of modified fuzzy C-means (FCM) and chicken swarm optimization (CSO)
Rashed et al. Multi-objective clustering algorithm using particle swarm optimization with crowding distance (MCPSO-CD)

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
TR01 Transfer of patent right

Effective date of registration: 20220916

Address after: No.288, Daxue Road, Zhenjiang District, Shaoguan City, Guangdong Province, 512023

Patentee after: SHAOGUAN University

Address before: 86 No. 341000 Jiangxi city of Ganzhou province Zhanggong District Hongqi Avenue

Patentee before: Jiangxi University of Science and Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240118

Address after: 230000 floor 1, building 2, phase I, e-commerce Park, Jinggang Road, Shushan Economic Development Zone, Hefei City, Anhui Province

Patentee after: Dragon totem Technology (Hefei) Co.,Ltd.

Address before: No.288, Daxue Road, Zhenjiang District, Shaoguan City, Guangdong Province, 512023

Patentee before: SHAOGUAN University

TR01 Transfer of patent right