基于改进Canopy-K-means算法的并行化研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机测量与控制.2021.29(2) 犆狅犿狆
狌狋犲狉犕犲犪狊狌狉犲犿犲狀狋牔犆狅狀狋狉狅犾
·176 ·
收稿日期:20200622; 修回日期:
20200707。
基金项目:陕西省科技计划重点项目(2017ZDCXL-GY-05-03
)。
作者简介:王 林(1963)
,男,江苏东台人,博士,教授,主要从事大数据、数据挖掘、计算机视觉方向的研究;引用格式:王 林,贾钧琛.基于改进Canopy
-Kmeans算法的并行化研究[J].计算机测量与控制,2021,29(2):176179,186.文章编号:16714598(2021)02017604 DOI:10.16526/j
.cnki.11-4762/tp.2021.02.035 中图分类号:TP301.6文献标识码:A
基于改进犆犪狀狅狆狔
-犓犿犲犪狀狊算法的并行化研究王 林,贾钧琛
(西安理工大学自动化与信息工程学院,西安 710048
)摘要:随着互联网数据的快速增长,原始的Kmeans算法已经不足以应对大规模数据的聚类需求;为此,提出一种改进的
Canopy-Kmeans聚类算法;首先面对Canopy算法中心点随机选取的不足,引入“最大最小原则”优化Canopy中心点的选取;
接着借助三角不等式定理对Kmeans算法进行优化,减少冗余的距离计算,加快算法的收敛速度;最后结合MapReduce框架并行化实现改进的Canopy-Kmeans算法;基于构建的微博数据集,对优化后的Canopy-Kmeans算法进行测试;试验结果表明:对不同数据规模的微博数据集,优化后算法的准确率较Kmeans算法提高了约15%,较原始的Canopy-Kmeans算法提高了约7%,算法的执行效率和扩展性也有较大提升。
关键词:Canopy-Kmeans算法;文本聚类;最大最小原则;三角不等式;Map
Reduce犚犲狊犲犪狉犮犺狅狀犘犪狉犪犾犾犲犾犻狕犪狋犻狅狀犅犪狊犲犱狅狀犐犿狆
狉狅狏犲犱犆犪狀狅狆狔-犓犿犲犪狀狊犃犾犵
狅狉犻狋犺犿WangL
in,JiaJunchen(SchoolofAutomationandInformationEngineering,Xi anUniversityofTechnology
,Xi an 710048,China)犃犫狊狋狉犪犮狋:WiththerapidgrowthofInternetdata,theoriginalKmeansalgorithmisnolongersufficienttomeettheclusteringneedsoflarge-scaledata.Tothisend,animprovedCanopy-Kmeansclusteringalgorithmisprop
osed.Facedwiththeshortcom ingsoftherandomselectionofthecenterpointoftheCanopyalgorithm,the“maximumandminimumprinciple”wasintroducedtoop timizetheselectionoftheCanopyc
enterpoint;thentheKmeansalgorithmwasoptimizedwiththehelpofthetriangleinequalitytheoremtoreduceredundantdistancecalculationsandacceleratetheconvergencerateofthealgorithm;finallycombinedwithMapRe duceframeworkparallelizationtoachieveimprovedCanopy-Kmeansalgorithm.BasedontheconstructedWeibodataset,theopti mizedCanopy-Kmeansalgorithmistested.Thetestresultsshowthattheaccuracyoftheoptimizedalgorithmisabout15%higherthanthatoftheKmeansalgorithmandabout7%higherthanthatoftheoriginalCanopy-Kmeansalgorithm.Theexecutioneffi ciencyandscalabilityofthealgorithmarealsoimproved.Greatlyimp
roved.犓犲狔
狑狅狉犱狊:Canopy-Kmeansalgorithm;textclustering;maximumandminimumprinciple;triangleinequality;MapReduce0 引言
随着互联网普及率的不断提高,网络数据呈几何级增长,面对海量以及快速增长的网络数据,通过聚类分析可以快速准确地从中挖掘出价值信息。
但是,传统的聚类算法无论是在聚类精度,还是在执行时间上都已经不能很好地满足当前需求,利用分布式计算框架对其进行并行化改进,不仅可以缩短聚类时间,还可以增强算法的扩展性,更好地满足当下数据挖掘的需要。
Kmeans算法作为一种具有代表性的聚类算法,具备较快的收敛速度、可靠的理论以及容易实现等诸多优势,因而被人们广泛应用于各行各业,但是算法也存在聚类中心点的选取具有随机性,需要提前确定聚类个数等不足[1]。
对此,许多学者对Kmeans算法进行了改进并取得了一定
的成果。
邓海等人[2]
结合密度法和“最大最小原则”优化Kmeans初始聚类中心点的选择,算法准确率得到提高,但是改进后算法的时间复杂度较高,运行时间较长。
赵庆等人[3]通过Canopy算法对数据集进行“
粗”聚类,避免了传统Kmeans中心点选取存在的盲目性,极大提升了其准确性,然而在采用Canopy算法初始阈值需要人为指定,所以
聚类结果不稳定。
刘纪伟等人[4]结合密度思想优化了Kmeans初始中心点的选取,同时引入聚类有效性判别函数
确定值,提高了算法的准确度,但是也增加了算法的运行
时间,执行效率较低。
李晓瑜等人[5]结合MapReduce分布式框架并行化实现改进的Canopy
-Kmeans算法,并行化实现的算法具有良好的准确率和扩展性,但是Canopy算法初始阈值人为指定的问题仍然存在。
上述工作均是针对Kmeans算法初始中心点随机选取的不足进行改进,一定程度上提高了算法的聚类准确度,
投稿网址:www.jsjcly
kz.com
第2期王 林,等:基于改进Canopy-Kmeans
算法的并行化研究·177 ·
然而仍旧存在不足。
本文首先针对Canopy-Kmeans算法中Canopy中心点随机选取的不足,引入“最大最小原则”进行优化,此外,定义深度指标计算公式,确定Canopy中心点的最优个数及区域半径;接着借助三角不等式定理对Kmeans算法进行优化,减少冗余的距离计算,加快收敛速度;最后结合Map
Reduce分布式框架将改进后的算法并行化实现。
在构建的微博文本数据集上进行实验,结果表明改进算法的准确率和扩展性都得到提升。
1 犕犪狆
犚犲犱狌犮犲并行框架Map
Reduce[6]
是一种用于处理大规模数据的分布式编程模型,可以将大型任务进行拆分处理,从而加快数据的处理效率。
MapReduce主要包括Map和R
educe两个函数,在数据处理过程中,数据均以键/值对形式保存。
其中,Map函数根据用户输入的键/值对生成中间结果,而Reduce函数对中间结果进行归并处理,得到的最终结果同样以键/值对形式输出。
除了Map和Reduce两个核心函数外,还提供了Combine函数,它在Map后调用,相当于本地的Reduce,主要是为了减少从Map到R
educe的数据量。
2 犆犪狀狆狅狔
-犓犿犲犪狀狊聚类算法研究与改进2 1 犆犪狀狆狅狔
-犓犿犲犪狀狊算法研究Kmeans算法由于算法简单、易于实现等优点而被广泛使用。
其基本思想是:从数据集中随机选取犓个数据对象作为初始聚类中心点;将剩余数据对象和簇中心进行间距计算,并且把它划至间距最短的簇中,持续该过程,直到数据集为空集;然后根据簇中的数据对象计算新的聚类中心点,继续上述过程,直到簇的中心点不再发生变化或者符合停止条件,迭代才会停止,完成聚类划分。
Canpoy-Kmeans算法是一种借助Canpoy算法改进的Kmeans算法。
在Canpoy-Km
eans算法中,通过Canpoy算法对数据集进行“粗”聚类,得到个Canpoy子集,随后再以个Canopy子集的中心点作为Km
eans算法的初始中心点进行“细”聚类,生成聚类结果。
Canpoy-Kmeans算法执行步骤如下:
1)将待聚类数据集构成犔犻狊狋集合,然后指定两个距离阈值犜1和犜2(犜1>犜2);2)随机选取犔犻狊狋合中的一个数据对象犘,构成一个新的Canpoy
,并将对象犘从集合犔犻狊狋中移除;3)对于犔犻狊狋中剩余的数据对象,计算与对象犘之间的距离。
如果间距小于犜1,就把它分配到对象犘所在的Can
poy中;如果与对象犘的间距小于犜2,则将它从犔
犻狊狋中删除;
4)重复步骤2)和3),直到犔犻狊狋为空;5)将形成的Canpoy子集数目作为犓值,Canpoy子集的中心点作为初始的聚类中心点进行Kmeans聚类,得到较为准确的聚类结果。
Canpoy
-Kmeans算法虽然解决了Kmeans算法人为指定值和初始中心点随机选取的不足,然而其也存在不足:Canopy的初始聚类中心点随机选取和初始阈值人为指定,具有盲目性,初始阈值对聚类所得的最终结果具有显著影响,一定程度上降低了聚类结果的稳定性;另外,由于其具备较高的时间复杂度,串行执行过程时所需时间较长,算法串行执行效率较低。
2 2 犆犪狀狆狅狔算法改进
为了改善Canopy算法初始阈值人为指定以及初始中心点随机选取的不足,本文引入“最大最小原则”对其进行优化,提高算法的准确率以及聚类结果的稳定性。
基于“最大最小原则”的中心点选取方法基本思想如下:在将数据集划分为若干个Canopy的过程中,任意两个Canopy中心点之间的距离应尽可能远,即假设目前已生成个Canopy中心点,则处于第狀+1位的Canopy中心点应为
其它数据点和前狀个中心点间最短间距的最大者[7]
,其公式如下:
犇犻狊狋犔犻狊狋=min{犱1,犱2,犱3,...犱狀}
犇犻狊狋犕犻狀(狀+1)=max{犇犻狊狋犔犻狊狋{
}
(1
)式中,犱狀表示第狀个中心点与候选数据点的最小距离;
犇犻狊狋犔犻狊狋表示前狀个中心点与候选数据点最小距离的集合;
犇犻狊狋犕犻狀(狀+1)则表示集合犇犻狊狋犔犻狊狋中最小距离的最大者,即Canopy集合狀+1的第个中心点。
基于“最大最小原则”的Canopy中心点选择方法,在实际应用中符合下述情况:如果中心点数量和最佳中心点的数量较为接近,此时犇犻狊狋犕犻狀(狀+1)具备最大的变化幅度。
所以,为了确定最优的Canopy中心点个数及区域半径犇犲狆
狋犺(犻),根据参考文献[8]提出的边界思想,采用深度指标犜1,描述Canopy中心点的变化幅度,如公式(2)所示:
犇犲狆
狋犺(犻)=狘犇犻狊狋犕犻狀(犻)-犇犻狊狋犕犻狀(犻-1)狘+狘犇犻狊狋犕犻狀(犻+1)-犇犻狊狋犕犻狀(犻)狘
(2
) 当犻接近真实聚类簇数时,犇犲狆
狋犺(犻)取得最大值,此时设置犜1=犇犻狊狋犕犻狀(犻)使得聚类结果最优。
2 3 犓犿
犲犪狀狊算法改进传统Kmeans算法需要迭代计算数据对象与中心点的间距,完成数据对象的划分,然而在该过程中存在许多不必要的距离计算,为了减少Kmeans算法的计算量,加快算法的收敛速度,本文引入三角不等式定理对其进行优化
改进[9]。
定理1:任意一个三角形,两边之和大于第三边,两边之差小于第三边。
由于欧式距离也满足三角不等式的特性,因此将其扩展到多维的欧几里得空间可知:对于欧式空间的任意向量狓、犫、犮,满足:犱(狓,犫)+犱(犫,犮)≥犱
(狓,犮)和犱(狓,犫)-犱(犫,犮)≤犱(狓,犮
)成立。
对于任意一个向量狓和两个聚类中心犫、犮,根据三角不等式定理可得:犱(狓,犫)+犱(犫,犮)≥犱(狓,犮),但是为了避免计算距离犱(狓,犫),需要得到犱(狓,犫)≤犱(狓,犮
)这个不等式关系,给出引理及其证明过程如下:
投稿网址:www.jsjcly
kz.com
计算机测量与控制 第29
卷
·178 ·引理1:假设狓狆是数据集中的任意一个向量,犮犻是向量狓狆当前的簇中心,犱(狓狆,犮犻)已知且犮犼是除犮犻外的任意一个簇中心,如果2犱(狓狆,犮犻)≤犱(犮犻,犮犼),则有犱(狓狆,犮犻)≤犱(狓狆,犮犼)。
证明:假设有2犱(狓狆,犮犻)≤犱(犮犻,犮犼)
,两边同时减去,得犱(狓狆,犮犻)≤犱(犮犻,犮犼)-犱(狓狆,犮犻),由定理1可得犱(犮犻,犮犼)-犱(狓狆,犮犻)≤犱(狓狆,犮犼)
:因此可以得到结论犱(狓狆,犮犻)≤犱(狓狆,犮犼),即向量狓狆属于簇中心犮犻。
根据引理的推导过程可知,基于三角不等式的改进方法可以有效减少Kmeans冗余的距离计算,应用如下:已知是数据集中任意一个向量,犮犻是向量的当前簇中心,犱(狓狆,犮犻)已知且犮犼是另外的任一簇中心,根据引理1可知,如果2犱(狓狆,犮犼)≤犱(犮犻,犮犼),则可以确定数据向量狓狆属于簇中心犮犻,此时就不再需要计算犱(狓狆,犮犼)。
2 4 改进算法的犕犪狆
犚犲犱狌犮犲并行化实现本文主要从两方面对Canopy-K
means算法进行改
进,首先引入“最大最小原则”优化Canopy中心点的选取;接着利用三角不等式对Kmeans算法进行优化,减少
冗余的距离计算,加快算法的收敛速度。
改进后的算法主要分为两个阶段,其流程如图1所示。
图1 改进Canopy
-Kmeans算法流程图阶段一:基于“最大最小原则”改进的Canopy算法在Map
Reduce框架上的并行化实现,用来选取初始聚类中心点及犓值。
该阶段由Map函数和Reduce函数两部分完成。
算法的伪代码如下:
Map函数
输入:节点数据集合犔犻狊狋输出:节点Canopy中心点集合Ci1)犆犻=狀
狌犾犾2)While(犔犻狊狋!=狀狌犾犾
)3)If(犆犻=狀狌犾犾)4)在犔犻狊狋中随机选取一个数据点作为Canopy中心点,保存至Ci中,
并将该数据点从中删除5)Elseif(犆犻!
=狀狌犾犾)6)遍历计算中的数据点到集合Ci各个中心点的距离,取距离的最小值犱狀保存到集合中
7)求出集合犇中的最大值犕犪狓(犇)
8)把犕犪狓(犇)对应的数据点作为Canopy集合的下一个中心点,存入集合Ci中
9)EndIf10)EndWhile11)output(Ci)Reduce函数:
输入:各个节点在Map阶段产生的局部中心点集合犆{犆1,犆2,犆3,…,犆狀}
输出:Canopy中心点集合犝;
1)计算集合犆中的数据总量犓=犆狅狌狀狋(犆)且令犼=02)while(犼<犓)
3)计算全局Canopy中心点集合犆中犇犲狆狋犺(犻)的最大值4)令犜1=犕犪狓(犇犲狆
狋犺(犻)),犼++5
)把集合犆中的前犻个中心点赋值给集合犝6)EndWhile7)犓=犆狅狌狀狋(犝)8)OutPut(犝)
阶段二:将阶段一得到的Canopy中心点作为初始中心点完成Kmeans聚类。
此外,在此阶段引入三角不等式定
理,减少迭代过程中不必要的距离计算。
该阶段由Map函数、Combine函数和Reduce函数三部分组成。
算法的伪代码如下:
Map函数
输入:犓值和Canopy中心点集合犝,数据集犡={狓1,狓2,狓3,…,狓狀}
输出:聚类中心点集合犠1)While(犠!=犝)
2)计算集合犝任意两中心点间的距离犱(犮,犮′)3)保存最短距离犛(犮)=min(犱(犮,犮′)
)4)计算数据集犡中的数据点到集合犝中第犻个中心点的距离犱犻狊狋[犻
]5)If(2犱犻狊狋[犻]≤犛(犮)),则标记该数据点属于第犻个Canopy中心点的簇,然后从犡中删除该数据点;对于不符合条件的数据点,保存其到该中心点的距离
6)If(犡!=狀狌犾犾
)7
)计算不符合条件的数据点与中心点的距离,将其划分给距离最小的簇中心并进行标记
8)计算被标记点的新簇中新犠′9)If(犠=犠′)10)Break
11)Else返回2)重新计算12)EndWhileCombine函数:
输入:犡中数据点所属簇下标犽犲狔,犽犲狔值所属的键值对列表输出:犡中数据点所属簇下标犽犲狔,各个簇内被标记数据点的各维累加值以及值犽犲狔所属的键值对列表;
在本地解析各维坐标值,求出各维的累加值,并保存到对应列表中。
Reduce函数:
输入:犡中数据点所对应下标犽犲狔,犽犲狔值所属的键值对列表
投稿网址:www.jsjcly
kz.com
第2期王 林,等:基于改进Canopy-Kmeans
算法的并行化研究·179 ·
输出:犡中数据点所属簇的下标犽犲狔,最终的簇心犠1)初始化犖狌犿=0,记录所属簇内数据点的个数2)While(犡.犺犪狊犖犲狓狋
())3)解析犡.狀犲狓狋()中的各维下标值,计算样本个数狀狌犿4
)计算各维下标值的累加和并进行存储5)犖狌犿+狀狌犿6)EndWhile
7)用各维下标的累加和除以犖狌犿,
计算新的簇中心犠Reduce函数结束后,对比新生成的簇心和之前的簇心
是否相同,若簇中心相同,则算法结束,否则继续执行上述过程,直到簇中心不再变化。
3 实验与分析
3 1 实验环境及测试数据集
本文的Hadoop集群环境搭建在一台I7CPU,16G内存,2TB硬盘服务器之上。
集群包括1个Master节点和5个Slave节点,每个节点均为2GB内存,200G硬盘,操作系统为CentOs6.5,jdk为jdk1.8.0_181,Hadoop版本为2.7.3,程序开发工具为Eclipse,算法全部由Java语言完成。
实验的数据集是经过中文分词、去停去重和文本特征提取等预处理后的微博数据。
本文共构造了100M、500M、1G和2G这4个数据量依次递增的微博数据集,用于改进Canopy-Kmeans算法的测试。
3 2 实验结果与分析3.2.1 算法准确率分析
本文以准确率(p
recision)、召回率(recall)和犉值作为评判指标[10]。
对比传统Kmeans算法(算法1),Cano py
-Kmeans算法(算法2)以及本文改进算法(算法3)在文本聚类上的优劣,分别在100M、500M、1G和2G数据集各聚类10次,取各项指标的平均值进行比较,结果如表1所示。
表1 文本聚类测试结果100M
500M1G2G算法1
准确率
0.6580.6540.6600.651召回率
0.6450.6410.6480.639犉值0.6510.6470.6540.645算法2
准确率
0.7730.7690.7580.741召回率
0.7320.7080.7120.703犉值0.7520.7370.7340.722算法3
准确率
0.8670.8520.8270.819召回率
0.8120.7980.7820.778犉
值
0.839
0.824
0.804
0.798
由表1中的测试结果可知,与常规Kmeans算法相比,Canopy-Kmeans算法的准确率提升了约10%,而本文改进算法与Canopy
-Kmeans算法相比,准确率提升了约7%。
这是由于改进后的Canopy-Kmeans算法,优化了Canopy的中心点的选取,根据深度指标计算公式,确定了Canopy中心点的最优个数与最佳区域半径,从而使得聚
类结果更加稳定,算法的准确率得到提高。
3.2.2 算法扩展性分析
加速比是常用来衡量程序并行化执行效率的重要指标。
它的定义如下:犛
狆=犜狊/犜狆。
此处,为在单机条件之下算法运行的具体时长,而犜狆则是在并行条件之下算法运行的具体时长。
加速比犛狆越大,表示算法的效率越高。
考虑到单机环境处理大规模数据时系统容易崩溃,因此本文以1个数据节点下算法的执行时长作为。
为了对比改进后算法和未改进算法在扩展性上的差异。
使用Kmeans算法、Canopy-Kmeans算法以及改进的Canopy-Kmeans算法分别对1G的数据集进行5次聚类运算,取其平均运算时长,计算其加速比,测试结果如图2所示。
图2 相同数据集不同算法加速比
根据图2可知,在相同规模节点数目下,本文改进算法的执行效率明显优于其它两种算法,这是由于“最大最小原则”的中心点选取方法优化了Canopy中心点的选取,减少了算法的迭代次数,并且基于三角不等式定理改进的Kmeans算法,有效减少了迭代过程中存在的冗余距离计
算,算法的执行速度得到提高。
为了验证改进后算法在不同数据集上的并行执行效率,分别使用100M、500M、1G和2G这4个数据集,在节点个数为1、3、5的Hadoop集群上聚类5次,取其平均运算时长,计算加速比。
结果如图3所示。
图3 改进算法在不同数据集下的加速比
根据图3可知,由于100M的数据集相对较小,在集群的节点为2时,算法的加速比有所提升,此时,数据处理时长超过节点间的通信时长;当集群节点为3时,算法的
(下转第186页)
投稿网址:www.jsjcly
kz.com
计算机测量与控制 第29
卷
·186 ·5 结束语
本文设计了一种基于UWB模块的无线触发系统,利用UWB的测距算法精确实现了对记录装置的提前触发,可有效解决记录系统的记录数据的完整性问题,硬件上直接采用UWB模块,极大地降低了设计难度,同时对传统TOA算法进行改进,消除了UWB的时延问题。
进行程序编写,通过进行实验测距来验证整体系统的可行性。
通过使用Matlab软件进行误差分析,得到误差热度图,可以得到系统的测距误差为20~40cm,在实际的靶场测试环境中得到的触发时距离数据,误差在10m左右,进一步验证了系统的有效性及可靠性。
测试结果表明,该系统误差小,稳定性高,满足工程需求,具有很强的现实使用价值。
参考文献:
[1
]石潇杰,李恒通,石 峰,等.基于UWB与激光测距的地下铲运机井下定位系统[J].有色金属(矿山部分),2020,72(2):8183.
[2
]周爱国,杨思静,沈 勇,等.融合UWB测距信息的室外高精度定位算法[J].导航定位学报,2020,8(1):2631.[3]王艳艳,朱轶龙,陈亚奇,等.多源触发装置设计[J].计算
机测量与控制,2019,27(12):273276.
[4
]陈 峰,王 航,眭 明.基于时钟相位补偿的同步触发信号产生技术[J].计算机测量与控制,2019,27(5):224228.[5]马子光.脉冲功率电源超大电流测试技术研究[D].太原:中
北大学,2019.
[6]莫浩杰,张靖宇,马溢泽,等.DW1000在无人机集群中的应
用及系统设计[J].电子世界,2019(12):135137.[7]张 恒.基于UWB的室内高精度定位方法研究与应用[D].
阜新:辽宁工程技术大学,2015.
[8]阳 熊.基于超宽带的定位技术研究与应用[D].成都:电子
科技大学,2015.
[9
]朱文刚,常海涛,薄云览,等.基于超宽带技术的轨道交通定位算法研究[J].计算机测量与控制,2019,27(7):218222.[10]李伟杰,戴亚文,唐 雨,等.基于UWB的地铁隧道定位系
统设计[J].计算机测量与控制,2019,27(8):198201.[11]车志平.基于TOF测距的无线传感器网络定位技术研究[D].
大连:大连理工大学,2016.
[12]AielloGR,RogersonGD.Ultra-widebandwirelesssy
s tems[J].IEEEMicrowaveMagazine,2003,4(2):3647.
[13]李 凡.基于超宽带(UWB)技术的测距方法研究[D].武
汉:华中师范大学,2007.
[14]陶 .基于UWB的室内SDS-TWR测距算法优化和定位
算法融合的研究[D].武汉:华中师范大学,2016.[15
]陈伟森,裴海龙,夏睿灿.基于超宽带技术的室内定位系统设计[J].计算机测量与控制,2017,25(11):179182.[16]YangL,GiannakisGB.Low-complexitytrainingforrapidtiming
acq
uisitioninultrawidebandcommunications[A].IEEEGlobalTelecommunicationsConference[C].IEEE,2003.
[17]李伟杰,戴亚文,唐 雨,等.基于UWB的地铁隧道定位系
统设计[J].计算机测量与控制,2019,27(8):檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳檳
198201.(上接第179页)
加速比趋于平稳,说明此时集群资源的利用率最高;然后随着节点数目的不断增加,加速比略有下降,说明此时处理数据的时间要小于节点间的通信时间,集群资源得到浪费。
对于500M、1G、2G这些数据规模较大数据集来说,随着节点数目的增加,算法的加速比呈现上升状态,并且由数据规模为500M的加速比变化曲线可以看出,随着节点数目的不断增加,加速比增长的幅度在逐渐变小。
由此可以看出改进后的Canopy
-Kmeans算法在并行化执行时能够有效提升聚类效率,并且数据量越大时算法的效率越高。
4 结束语
本文通过引入“最大最小原则”来优化Canopy中心点的选取,进而定义深度指标计算公式,计算得到最佳的Canopy个数及区域半径,避免了传统Canopy算法初始阈值人为指定的问题;接着借助三角不等式定理对Kmeans算法进行优化,减少冗余的距离计算,加快收敛速度;最后结合MapReduce分布式框架将改进后的算法并行化实现,在构建的微博文本数据集上进行实验,结果表明改进算法的准确率和扩展性都得到提升。
但是,由于Canopy中心点的计算花费时间较长,如何在保证聚类准确度的同时,提高Canopy中心点的生成效率还有待研究。
参考文献:
[1]杨俊闯,赵 超.Kmeans聚类算法研究综述[J].计算机工
程与应用,2019,55(23):714.
[2]邓 海,覃 华,孙 欣.一种优化初始中心的Kmeans聚
类算法[J].计算机技术与发展,2013(11):4851.[3]赵 庆.基于Hadoop平台下的Canopy-Km
eans高效算法[J].电子科技,2014,27(2):2931.
[4]刘纪伟,赵 杨,李绍晖.一种基于改进Kmeans算法的网
络流量分类方法[J].电子技术应用,2017,43(11):8689,94.
[5]李晓瑜,俞丽颖,雷 航,等.一种Kmeans改进算法的并行
化实现与应用[J].电子科技大学学报,2017,46(1):6168.[6]孙玉强,李媛媛,陆 勇.基于Map
Reduce的Kmeans聚类算法的优化[J].计算机测量与控制,2016,24(7):272275.
[7]吴德超,刘晓红,曲志坚.基于Hadoop的分布式聚类算法研
究[J].山东理工大学学报(自然科学版),2018,32(4):2529.
[8]张选平,祝兴昌,马 琮.一种基于边界识别的聚类算法[J].
西安交通大学学报,2007(12):13871390.
[9]李淋淋,倪建成,曹 博.基于Sp
ark框架的并行聚类算法[J].计算机技术与发展,2017,27(5):97101.
[10]YangY.Anevaluationofstatisticalapproachestotextcateg
o rization[J].InformationRetrieval,1999,1(1/2):6990.
投稿网址:www.jsjcly
kz.com。