计算机与现代化
2008年第3期
JISUANJIYUXIANDAIHUA
总第151期
文章编号:1006-2475(2008)03-0095-03
一种有效k.均值聚类中心的选取方法
曹文平
(襄樊学院电气信息工程系,湖北襄樊441003)
摘要:基于k一均值算法的思想和关键技术,本文对于k一均值算法中的初始点的选取进行了深入的研究,提出了一种高性能初始点的选取算法并用实际数据进行测试,通过与常规的随机选取方法的比较,该算法具有更好的性能和健壮性。关键词:聚类;k一均值;初始化;中心中图分类号:TP311
文献标识码:A
AnEffective
Method
ofSelectingInitialPointsfork-meansClustering
CAOWen-ping
(Dept.of
Electrical&InformationEngineeringofXiangfanUniversity,Xiangfan441003,China)
Abstract:Thispaperprovidesfirstlytheideaand
core
techniqueofk-meausclustering,andthenfocus
on
selectingthe
centriod
ofk-means
clustering.Depending
on
thereseaehaboutinitializationdeeply,itpresentsa
lli曲qualityapproachthat
used
to
select
thecentriod.Usingthemethodsto
test
thealgorithmandcomparewiththerandommethod,itconcludesthatOUl"methodhasthe
hiShq11alityand
robustness.
Keywords:clustering;k-means;initialization;eentriod
0
引言
类,同时也必然把另外的某一个类划分到其他的类中去(如果数据集P的数据实际上就是k个类)。同时聚类分析是一种重要的人类行为,目前已应用于还存在另外一个问题是k值的确定,怎样才能知道数许多方面:数据挖掘和知识发现、模式识别和模式分据集中到底存在多少个类。
类、数据压缩和向量量化。对于聚类有很多种方法,这些方法包括分割与合并方法、随机化方法和神经网1现有方法
络方法。其中在欧氏空间中的k一均值聚类算法是最P.S.Bradley和UsamaM.Fayyad提出了一种初流行和受关注的一个聚类算法,给定一个包含n个d
始聚类中心的算法RA…,是目前来说比较好的方维数据点的数据集P和一个正整数k,问题的关键是
法口】。RA算法的主要思想是:(1)从原始数据集中在d维空间中找出k个点,这些点叫作数据集P的中抽取t个样本集;(2)对每个样本集分别用k一均值法心,把数据集P中的所有点分配到距它最近的中心聚类,生成t个初始中心集Ci(1
s
i曼t),每个集中包
去,共得到k个不相交的子集,把每个子集称为一类,含k个元素;(3)分别以Ci为初始聚类中心集,对样这k个中心要满足:使得k个类的均方误差的和最本集用k.均值法聚类,得到t个聚类中心集,选取效小。k一均值算法我们一般要给定k的值,并且随机从果最好的作为最终初始聚类中心。该方法的优点是数据集P中选择k个点作为初始的聚类中心,最后的
提出了一种自动选择初始聚类中心的方法;通过选取聚类效果和最初的k的中心有关。如果选择的k个
样本丽不是整个数据集上实现,降低了算法的时间复点中有些大于1个的点是属于同一个类的,那么最后杂度;利用多个样本集,通过对预初始中心聚类,可以循环的次数再多,也必定把它们所属的类划分成两个
避免“孤立点”的影响,提高了结果初始中心的代表
收稿日期:2007-03-20
作者简介:曹文平(1968一),男,湖北钟祥人,襄樊学院电气信息工程系讲师,硕士,研究方向:数据挖掘和模式识别。
计算机与现代化2008年第3期
性。刘立平和孟志青提出了一种改进方法∞】,这种
endfor
方法实际上是RA算法的变形,多选取初始点,然后再利用层次聚类算法来合并,最终也得到k个类。
SiddheswgrRay和RoseH.Tuff在1999年给出了一
4.输出Yl,Y2,…,Yko
在上面的算法中,k表示类的个数,Y。(1
sms
k)表示第m类的中心,步骤1输入数据集P和阈值8;步骤2是取一个数据点作为第一个类的中心,这里假设是一个数据点;步骤3计算剩余的数据点和已选取的中心的距离(这里使用的是欧氏距离),并找出
最小值来与阈值8比较,看是否增加新的聚类中心;
种确定k・均值中的聚类数目k的一种方法[4】,k的值
从2开始,然后找到一个k的最大的临界值k一,根据效果来确定最终的k值。笔者把这种方法应用到
彩色图像的分割,取得了一个较好的效果。J.M.Pena等人根据算法的有效性和健壮性对k一均值的4种初始化方法:random、Forgy、MacQueen和Kaufman进行了比较"J。对k一均值算法的研究还有很多,如
CharlesTapas
步骤4是输出选取的聚类中心。从上面的算法描述
中可以看出,只要阈值8给得合适,就能得到一个较为准确的类的数量和初始聚类中心。
Elkan使用三角不等式来加速k一均值【oJ,
3实验结果
采用常规的k一均值方法对上面提到的2000个数
Kanungo等人提出了一种关于k一均值的一种局
部搜索近似算法【7】。
据点的数据集(11个类)进行聚类,初始点的选取分
2初始点的选取
在文献[1,3,6-7]中,作者对于初始点的选取都
是基于随机方法,如果这k个类中每个类中的数据量
别采用随机方法和本文的算法,测试结果表明:采用
本文的算法选取初始点明显要优于采用随机方法选
取初始点。图1为使用随机方法来选取11个初始点
相差不大,也许可以得到一个较为满意的结果。由于
数据集中每个点被选取的机率是相同的,如果这k个类之间的数据量相差较大,则用随机方法来选取初始点时,有些类可能没有数据被选中,而有些类可能被选取两个或两个以上的数据,以这样的初始点来对数据聚类,其结果肯定是不能接受的。
在现实中,虽然不知道—个数据集中到底有多少个类,但是该领域的专业人员对两个数据间是不是同类应该有—个较为清晰的认识,那就是给出—个度量两个数据不相似性阈值£的近似值,有了8就可以确定聚类的数目和初始点的选取。为了得到一个合理的初始聚类
(使用的是Maflab中的随机函数unidmd(2000,[111])生成50个初始点,选取其中最好的一次),其中
的小圆圈为初始点,聚类(重复执行100次)结果如
图1随机初始点选取图2随机初始点选取的聚类结果
中心和—个俞舌的聚类数目k,本文提出一种自适应的
初始点选取算法,下面给出该算法描述:
算法输入:数据集p(共有N个数据)和度量两个数据不相似性阈值8
算法输出:输出选取的k个初始聚类中心Y。,Y2,…,Yk1.输入数据集p(共有N个数据,标记为x。.X2,…,xN)和度量两个数据不相似性阈值8。
2.从数据集P取出一个点x,作为第一个类的中心:
k=1,Yk=xI
3.fori--2
to
当阈值8在0.139和0.178之间时,采用本文的
算法选取的11个初始点如图3,其中小圆圈表示初始点,聚类(重复执行10次)结果如图4,其中的小圆
圈为聚类中心点。
N.
(1)找Y.:d(x.,yI)=mlnIs阻d(xi,Yj)
(2)ifd(xi,Y.)>8
k=k+1,玫2xielsei=i+1endif
then
图3
8翮始撇m4g方劫娩筋粼聚黼
只要阈值8在0.139和0.178之间正好选取11
个初始点,并且每个类中有且只有一个点,这正是想
要的结果。而使用随机的方法来进行初始点的选取,如果选取15个点,在20次的测试中,最好的一次仅
2008年第3期
。
曾文平:一种有效k.均值聚类中心的选取方法
97
仅覆盖了9个类。如果使用类之间数据的数量差别
大的数据集,随机的方法性能更差,这种情况对本方法是没有影响的。
[3】
niques[DB/OL】.http://www.ee.ucr.edu/一banll/
EE242/clustering_survey.pdf,2002-03-01.
刘立平,孟志青.一种选取初始聚类中心的方法[J].计算机工程与应用,2004。40(8):179.180.
4结束语
本文提出了一种高效的初始点的选取方法,通过使用数据集验证了本算法的优越性,并且该算法对于
类问数据的数量差别大的数据集来说有很好的健壮性。但是该算法的性能和阈值g是密切相关的,如果
[4]SiddheswarRay。RoseHTuri.Determination0fNumber0f。Clustersink-meansClusteringandApplicationin
Colour
Inl馏eSegmentation[DB/OL]。http://www.csse.mmmsh.
eclu.art/一roset/papers/cal99.pdf,1999-03-01.
[5]JMPena,JAI.ozano,PLan茹aga.Anempiricalcompar-
isonoffourinitializationmethodsforthek-meansalgorithm
太大就得不到实际数据的类的数量(比实际的数量
tb);如果太小也同样得不到实际数据的类的数量(比实际的数量大)。在实际应用中对阈值8的选择是宁小勿大的原则,然后可以再使用层次聚类的方法来合并其中的某些类。
参考文献:[1]P
S
L
7
[J】.Pattern
1040.
Recognition
I七tters。1999,20(10):1027-
[6]CharlesElkan.Usingthetriangleinequality
toacceleratek—
mean8[c]∥Pr∞∞dings
oftheTwentiethInternational
Conference∞MachineLearning(ICML-2003),Washing-
ton
DC,2003.
J
TapasKanungo。DavidMMount,NathanS
Net哪ahu,et
Bradley,UsamaMFayyad.Refinininginitialpointsfor
a1.ALocalSearchApproximationAlgorithmfork-mea鼬
k-memmclustering[C]//15thInternationalConf.onMa-
chine
ChI吼dIlg[DB/OL].http://www.C8.umd.edu/一mount/
Paper∥kmlocal.pdf,2003-03-01.
learning,1998.
Berkhin.SurveyofClusteringData
MiningTech-
[2]Pavel
,~.,、。,1・.,1・。,~。,1・。,~。,’・。,~。,~.一1・.,、。,、。,~≯、。,、。,~。,・・。,~。,~。,~。,、。,、。,~≯、。,・・。矿、。,~。,~。,、。,~。,、。,~。,・・。,、。,、。,、。,・.。r..。,・.。,・・。,~。,~。,・・。,・.i≯~。,~、
(上接第94页)
O(n2)的时间复杂度有了提高,可见引入遗传算法的
提高。
・
对于GA-CLARANS算法取gen=1000,P。=0.5和GA.CLARANS算法在运行效率上比CLARANS有所
size=5。实验结果对比见表2。
襄2实验结果对比
CLARANS:
GA—CLARANS算法:
用时50毫秒记录序号
012345678910ll
4结束语
本文利用遗传算法的隐并行性对CLARANS算法进行改进,提出了GA-CLARANS算法,该算法利用群体进化的优势来提高搜索效率,同时也保持了CLARANS算法的固有特点。实验表明GA-CLARANS算法是有效且可行的。
参考文献:
用时191毫秒记录序号
Ol23456789101l
所属簇
l22333444444
所属簇
l1l2223334
[1]JiaweiHan,MichelineK咖ber.数据挖掘概念与技术
[M].北京:机械工业出版社,2001.
[2]李敏强,寇纪凇。林丹,等.遗传算法的基本理论与应用
[M].北京:科学出版社,2002.
[3]
RaymondT,JiawdHart.Efficientandeffectivecluste-
44
Ng
ringmethodsforspatialdatamining[C]//Proceedings
of
实验表明,GA-CLARANS算法利用群体搜索使搜索效率明显高于CLARANS算法,同时因为变异算子
the20th
VeryLargeDatabasesConference(VLDB94),
Santiago,Chile,1994:144—155.
的存在使其收敛性能优于CLARANS。通过大量数据
集对两种算法进行实验比较,可以发现,GA.CLAR.
[4】KaufmanL,RousseeuwP.FindingGroupsinData:AnIn-
tmductiontoChster&Sons。1990.
Analysis[M].NewYork:Johnwiley
ANS的单次迭代的时间复杂度接近O(nk),其中n为数据集的大小,k为聚类数目,这比CLARANS的接近
计算机与现代化
2008年第3期
JISUANJIYUXIANDAIHUA
总第151期
文章编号:1006-2475(2008)03-0095-03
一种有效k.均值聚类中心的选取方法
曹文平
(襄樊学院电气信息工程系,湖北襄樊441003)
摘要:基于k一均值算法的思想和关键技术,本文对于k一均值算法中的初始点的选取进行了深入的研究,提出了一种高性能初始点的选取算法并用实际数据进行测试,通过与常规的随机选取方法的比较,该算法具有更好的性能和健壮性。关键词:聚类;k一均值;初始化;中心中图分类号:TP311
文献标识码:A
AnEffective
Method
ofSelectingInitialPointsfork-meansClustering
CAOWen-ping
(Dept.of
Electrical&InformationEngineeringofXiangfanUniversity,Xiangfan441003,China)
Abstract:Thispaperprovidesfirstlytheideaand
core
techniqueofk-meausclustering,andthenfocus
on
selectingthe
centriod
ofk-means
clustering.Depending
on
thereseaehaboutinitializationdeeply,itpresentsa
lli曲qualityapproachthat
used
to
select
thecentriod.Usingthemethodsto
test
thealgorithmandcomparewiththerandommethod,itconcludesthatOUl"methodhasthe
hiShq11alityand
robustness.
Keywords:clustering;k-means;initialization;eentriod
0
引言
类,同时也必然把另外的某一个类划分到其他的类中去(如果数据集P的数据实际上就是k个类)。同时聚类分析是一种重要的人类行为,目前已应用于还存在另外一个问题是k值的确定,怎样才能知道数许多方面:数据挖掘和知识发现、模式识别和模式分据集中到底存在多少个类。
类、数据压缩和向量量化。对于聚类有很多种方法,这些方法包括分割与合并方法、随机化方法和神经网1现有方法
络方法。其中在欧氏空间中的k一均值聚类算法是最P.S.Bradley和UsamaM.Fayyad提出了一种初流行和受关注的一个聚类算法,给定一个包含n个d
始聚类中心的算法RA…,是目前来说比较好的方维数据点的数据集P和一个正整数k,问题的关键是
法口】。RA算法的主要思想是:(1)从原始数据集中在d维空间中找出k个点,这些点叫作数据集P的中抽取t个样本集;(2)对每个样本集分别用k一均值法心,把数据集P中的所有点分配到距它最近的中心聚类,生成t个初始中心集Ci(1
s
i曼t),每个集中包
去,共得到k个不相交的子集,把每个子集称为一类,含k个元素;(3)分别以Ci为初始聚类中心集,对样这k个中心要满足:使得k个类的均方误差的和最本集用k.均值法聚类,得到t个聚类中心集,选取效小。k一均值算法我们一般要给定k的值,并且随机从果最好的作为最终初始聚类中心。该方法的优点是数据集P中选择k个点作为初始的聚类中心,最后的
提出了一种自动选择初始聚类中心的方法;通过选取聚类效果和最初的k的中心有关。如果选择的k个
样本丽不是整个数据集上实现,降低了算法的时间复点中有些大于1个的点是属于同一个类的,那么最后杂度;利用多个样本集,通过对预初始中心聚类,可以循环的次数再多,也必定把它们所属的类划分成两个
避免“孤立点”的影响,提高了结果初始中心的代表
收稿日期:2007-03-20
作者简介:曹文平(1968一),男,湖北钟祥人,襄樊学院电气信息工程系讲师,硕士,研究方向:数据挖掘和模式识别。
计算机与现代化2008年第3期
性。刘立平和孟志青提出了一种改进方法∞】,这种
endfor
方法实际上是RA算法的变形,多选取初始点,然后再利用层次聚类算法来合并,最终也得到k个类。
SiddheswgrRay和RoseH.Tuff在1999年给出了一
4.输出Yl,Y2,…,Yko
在上面的算法中,k表示类的个数,Y。(1
sms
k)表示第m类的中心,步骤1输入数据集P和阈值8;步骤2是取一个数据点作为第一个类的中心,这里假设是一个数据点;步骤3计算剩余的数据点和已选取的中心的距离(这里使用的是欧氏距离),并找出
最小值来与阈值8比较,看是否增加新的聚类中心;
种确定k・均值中的聚类数目k的一种方法[4】,k的值
从2开始,然后找到一个k的最大的临界值k一,根据效果来确定最终的k值。笔者把这种方法应用到
彩色图像的分割,取得了一个较好的效果。J.M.Pena等人根据算法的有效性和健壮性对k一均值的4种初始化方法:random、Forgy、MacQueen和Kaufman进行了比较"J。对k一均值算法的研究还有很多,如
CharlesTapas
步骤4是输出选取的聚类中心。从上面的算法描述
中可以看出,只要阈值8给得合适,就能得到一个较为准确的类的数量和初始聚类中心。
Elkan使用三角不等式来加速k一均值【oJ,
3实验结果
采用常规的k一均值方法对上面提到的2000个数
Kanungo等人提出了一种关于k一均值的一种局
部搜索近似算法【7】。
据点的数据集(11个类)进行聚类,初始点的选取分
2初始点的选取
在文献[1,3,6-7]中,作者对于初始点的选取都
是基于随机方法,如果这k个类中每个类中的数据量
别采用随机方法和本文的算法,测试结果表明:采用
本文的算法选取初始点明显要优于采用随机方法选
取初始点。图1为使用随机方法来选取11个初始点
相差不大,也许可以得到一个较为满意的结果。由于
数据集中每个点被选取的机率是相同的,如果这k个类之间的数据量相差较大,则用随机方法来选取初始点时,有些类可能没有数据被选中,而有些类可能被选取两个或两个以上的数据,以这样的初始点来对数据聚类,其结果肯定是不能接受的。
在现实中,虽然不知道—个数据集中到底有多少个类,但是该领域的专业人员对两个数据间是不是同类应该有—个较为清晰的认识,那就是给出—个度量两个数据不相似性阈值£的近似值,有了8就可以确定聚类的数目和初始点的选取。为了得到一个合理的初始聚类
(使用的是Maflab中的随机函数unidmd(2000,[111])生成50个初始点,选取其中最好的一次),其中
的小圆圈为初始点,聚类(重复执行100次)结果如
图1随机初始点选取图2随机初始点选取的聚类结果
中心和—个俞舌的聚类数目k,本文提出一种自适应的
初始点选取算法,下面给出该算法描述:
算法输入:数据集p(共有N个数据)和度量两个数据不相似性阈值8
算法输出:输出选取的k个初始聚类中心Y。,Y2,…,Yk1.输入数据集p(共有N个数据,标记为x。.X2,…,xN)和度量两个数据不相似性阈值8。
2.从数据集P取出一个点x,作为第一个类的中心:
k=1,Yk=xI
3.fori--2
to
当阈值8在0.139和0.178之间时,采用本文的
算法选取的11个初始点如图3,其中小圆圈表示初始点,聚类(重复执行10次)结果如图4,其中的小圆
圈为聚类中心点。
N.
(1)找Y.:d(x.,yI)=mlnIs阻d(xi,Yj)
(2)ifd(xi,Y.)>8
k=k+1,玫2xielsei=i+1endif
then
图3
8翮始撇m4g方劫娩筋粼聚黼
只要阈值8在0.139和0.178之间正好选取11
个初始点,并且每个类中有且只有一个点,这正是想
要的结果。而使用随机的方法来进行初始点的选取,如果选取15个点,在20次的测试中,最好的一次仅
2008年第3期
。
曾文平:一种有效k.均值聚类中心的选取方法
97
仅覆盖了9个类。如果使用类之间数据的数量差别
大的数据集,随机的方法性能更差,这种情况对本方法是没有影响的。
[3】
niques[DB/OL】.http://www.ee.ucr.edu/一banll/
EE242/clustering_survey.pdf,2002-03-01.
刘立平,孟志青.一种选取初始聚类中心的方法[J].计算机工程与应用,2004。40(8):179.180.
4结束语
本文提出了一种高效的初始点的选取方法,通过使用数据集验证了本算法的优越性,并且该算法对于
类问数据的数量差别大的数据集来说有很好的健壮性。但是该算法的性能和阈值g是密切相关的,如果
[4]SiddheswarRay。RoseHTuri.Determination0fNumber0f。Clustersink-meansClusteringandApplicationin
Colour
Inl馏eSegmentation[DB/OL]。http://www.csse.mmmsh.
eclu.art/一roset/papers/cal99.pdf,1999-03-01.
[5]JMPena,JAI.ozano,PLan茹aga.Anempiricalcompar-
isonoffourinitializationmethodsforthek-meansalgorithm
太大就得不到实际数据的类的数量(比实际的数量
tb);如果太小也同样得不到实际数据的类的数量(比实际的数量大)。在实际应用中对阈值8的选择是宁小勿大的原则,然后可以再使用层次聚类的方法来合并其中的某些类。
参考文献:[1]P
S
L
7
[J】.Pattern
1040.
Recognition
I七tters。1999,20(10):1027-
[6]CharlesElkan.Usingthetriangleinequality
toacceleratek—
mean8[c]∥Pr∞∞dings
oftheTwentiethInternational
Conference∞MachineLearning(ICML-2003),Washing-
ton
DC,2003.
J
TapasKanungo。DavidMMount,NathanS
Net哪ahu,et
Bradley,UsamaMFayyad.Refinininginitialpointsfor
a1.ALocalSearchApproximationAlgorithmfork-mea鼬
k-memmclustering[C]//15thInternationalConf.onMa-
chine
ChI吼dIlg[DB/OL].http://www.C8.umd.edu/一mount/
Paper∥kmlocal.pdf,2003-03-01.
learning,1998.
Berkhin.SurveyofClusteringData
MiningTech-
[2]Pavel
,~.,、。,1・.,1・。,~。,1・。,~。,’・。,~。,~.一1・.,、。,、。,~≯、。,、。,~。,・・。,~。,~。,~。,、。,、。,~≯、。,・・。矿、。,~。,~。,、。,~。,、。,~。,・・。,、。,、。,、。,・.。r..。,・.。,・・。,~。,~。,・・。,・.i≯~。,~、
(上接第94页)
O(n2)的时间复杂度有了提高,可见引入遗传算法的
提高。
・
对于GA-CLARANS算法取gen=1000,P。=0.5和GA.CLARANS算法在运行效率上比CLARANS有所
size=5。实验结果对比见表2。
襄2实验结果对比
CLARANS:
GA—CLARANS算法:
用时50毫秒记录序号
012345678910ll
4结束语
本文利用遗传算法的隐并行性对CLARANS算法进行改进,提出了GA-CLARANS算法,该算法利用群体进化的优势来提高搜索效率,同时也保持了CLARANS算法的固有特点。实验表明GA-CLARANS算法是有效且可行的。
参考文献:
用时191毫秒记录序号
Ol23456789101l
所属簇
l22333444444
所属簇
l1l2223334
[1]JiaweiHan,MichelineK咖ber.数据挖掘概念与技术
[M].北京:机械工业出版社,2001.
[2]李敏强,寇纪凇。林丹,等.遗传算法的基本理论与应用
[M].北京:科学出版社,2002.
[3]
RaymondT,JiawdHart.Efficientandeffectivecluste-
44
Ng
ringmethodsforspatialdatamining[C]//Proceedings
of
实验表明,GA-CLARANS算法利用群体搜索使搜索效率明显高于CLARANS算法,同时因为变异算子
the20th
VeryLargeDatabasesConference(VLDB94),
Santiago,Chile,1994:144—155.
的存在使其收敛性能优于CLARANS。通过大量数据
集对两种算法进行实验比较,可以发现,GA.CLAR.
[4】KaufmanL,RousseeuwP.FindingGroupsinData:AnIn-
tmductiontoChster&Sons。1990.
Analysis[M].NewYork:Johnwiley
ANS的单次迭代的时间复杂度接近O(nk),其中n为数据集的大小,k为聚类数目,这比CLARANS的接近