APP下载

基于最小聚类求解k-means问题算法

2010-09-18王守强朱大铭

通信学报 2010年7期
关键词:枚举搜索算法中心点

王守强,朱大铭

(1. 山东交通学院 信息工程系,山东 济南 250023;2. 山东大学 计算机科学与技术学院,山东 济南 250100)

1 引言

给定 d维空间中的点集P,k-means聚类问题要求在空间中选取k个中心点,使P中点与其距离最近的中心点的距离平方和最小。形式化描述为

实例:点集 P ∈Rd,正整数k∈Z+。

k-means问题相当于在d维空间中计算k个中心点,以中心点为核心将给定点集P划分为k个子集,优化目标为给定点到其所属子集中心点的距离平方和最小。该问题是NP-Hard问题[1]。其教科书算法为Lloyd给出的启发式算法[2,3],Lloyd算法简单而容易实现,但运行结果依赖于初始值,算法无法保证一个确切的求解近似度。Kanungo[4]等采用局部搜索技术给出k-means问题(9+ε)近似度算法。在执行算法前需要对点集空间结构进行划分求得一个候选中心点集[5],候选中心点集的求解十分复杂,算法显得不够实用。Song等[6]进一步证明,如果将给定点集P作为中心点的候选点集,对候选点集执行局部搜索,可使算法的近似度达到O(1)。2004年Kumar[7]等人给出求解k-means问题的(1+ε)随机近似算法,算法的时间复杂度为

2) 对于m最小聚类问题,改进了Kumar提出的 k-means问题的(1+ε)随机近似算法,将 Kumar给出算法的时间复杂度由 O ( 2(k/ε)O(1)dn)改进为证明改进算法求到(1+ε)近似解的成功概率至少为如果该算法运行次,则以接近于 1的概率求到该问题的(1+ε)近似解。

3) 设计出求解k-means问题的局部搜索随机算法。从k个初始中心点的选取以及生成候选中心点集2个方面分别对Song的局部搜索算法提出新的随机策略。Song局部搜索算法的时间复杂度为本文算法的时间复杂度为O(nk3dln(k)2)/α)。实验结果表明:新算法所求解的精度和算法的运算时间均优于 Song给出的局部搜索算法。

2 符号标记与基本结论

定义 2对于点集 P的 m最小聚类问题,称α=km/|P|为该问题的最小聚类参数。

定义3设是d维空间中的k个点,若存在 l个实数满足:

d对于 d维空间中某点 x ∈ R ,如果成立,则称 x为的凸组合点。

引理1[8]点集P的质心点为P的1-means问题最优解的中心点。

Inaba等[7]指出在欧氏空间中,只需从P中随机选取部分点,计算取样点的质心点,则该质心点以较大的概率成为P的 ε 近似质心点。该定理描述如下。

引理2[7]给定点集P,从P中均匀地随机选取m个点,设S为取样点的集合,m=|S|, c(S)为S的质心点。存在δ (0<δ<1),使下述不等式成立的概率至少为1-δ。

引理3[8]给定点集P,对于任一个点x ∈ Rd,

3 基于取样技术k-means近似算法

3.1 近似度期望值为2的算法

记 ∆k2(P )为给定实例点集 P的最优解的解值。在给出该算法之前,首先探讨当中心点集包含每个最优子集 Pi(1≤i≤k)中的一个点时,算法近似度的期望值。

定理 1设 P所对应的最优聚类划分子集为如果从每个 Pi中均匀地随机选取一个点ci,以这k个点作为中心点求到的解值记为∆,则

证明设 P的最优解所对应的中心点为从每个 Pi中均匀地随机选取一个点 ci,由所有 ci构成中心点集合记为不失一般性,假设 ci∈Pi,根据已知条件,Pi中任一点被选作中心点 ci的概率为针对点 x ∈Pi,定义{distance(x,ci)},D(x)实际表示为点x与集合 C - { ci}中最近点的距离,则由此可得:

(根据引理3)

给定正整数m,如果P为m最小聚类问题。下面证明只需从P中随机选取一个样本点集S,则S以较高的概率满足它包含每个最优子集 Pi中至少一个点,即

定理2如果从P中均匀地随机选取k ln(2k)个点,记取样点集为S,那么对于所有P,αi均成立的概率至少为1,即∀iPr[|S∩P|2i

证明不失一般性,设|记定义则 nis的期望值根据Chernoff Bounds不等式得:

其中,0<λ<1。定义事件Ai为满足足 nis小于λ|S |nni的事件,则:

对每个最优子集Pi,如果均成立,枚举S中所有k个点的子集,则至少存在一个子集满足:k个点分别来自于最优子集 P1,P2,… ,Pk中的一个点。以这k个点作为中心点,根据定理1知,所求解的近似性能比的期望值至多为 2。据此,给出下述算法。

算法1k-means问题近似算法

输入:点集P,参数α。

2) 从S中任取k个点,以这k个点作为中心点,对P进行一次划分,计算划分后的值∆。

3) 重复2)的操作,枚举所有可能k个点,选择∆ 最小的值所对应的k个中心点作为算法最终解。

4) 返回所求的中心点。

定理3算法1至少以1/2的概率求到近似度期望值为2的解。

证明根据定理1及定理2,该定理结论显然成立。

算法在求得k个中心点时,通过枚举取样点集中所有k个点的子集找出最小解。枚举子集的个数为 C|kS|,由于将S值代入该式可得枚举子集个数为由于每次将实例点集P中的点分配给k个中心点时,时间复杂度为 O(nkd)。因此,算法 1的时间复杂度为

3.2 k-means聚类(1+ε)近似算法

定理4对满足m最小聚类问题实例点集P,如果从P中均匀地随机选取8 k ln(4k)个点,记取样εα点集为S,则S包含每个最优子集Pi中至少2/ε个点的概率大于等于3/4。

证明证明过程类似于定理 2。记 ni=|Pi|,定义则 nis的期望值根据Chernoff Bounds不等式得:

定义事件Ai为 nis小于λ|S |nni的事件,则:

由于|Pk|≥m,根据最小聚类参数定义α=km/|P|可得成立。

引理4给定点集P,设均属于P中同一个最优子集Pi中的点,如果x∈P并且 x是由所组成凸组合的点,则x∈Pi

证明由于 x是属于中凸组合内的点,根据凸组合定义,存在l个大于等于0的数值满 足 :其 中设 ci为 Pi的质心点,则:

算法2k-means问题(1+ε)近似算法

输入:点集P,参数ε,每个子集最少聚类个数m。

1) 计算参数α=(mk)/|P|,置C=φ。

3) 调用函数 Cost=Online-k-means(S, C, ε)。

4) 返回代价Cost及集合C。

函数 Online-k-means(·)的实现采用递归方法,从i=1开始,首先从S中枚举所有2/ε个点的子集,则至少存在一个子集 Si′满足 Si′⊆Si,由 Si′求出 Si′′并进一步计算 Si′∪ Si′的质心点 ci′,然后从S中删除属于集合 Si′∪ Si′中的所有点。删除 Si′∪ Si′中的所有点的目的在于当求解下一个子集时,可以减少枚举子集的个数,从而提高算法的运行效率。函数的实现过程描述如下。

函数 Online-k-means(S, C, ε)

输入:样本点集S,已求中心点集C,参数ε 值。

1) If |C|=k then

2) 以C作为中心点,计算解值Sum。

3) if Sum<MinCost then MinCost=Sum,保存C和MinCost。

4) If |C|<k and |S|<2/ε 返回。

5) Repeat。

6) 从S中取2/ε个点,设点的集合为S′。

7) 从S-S′中找出满足S′凸组合中的点,设点集为 S ''。

9) Online-k-means(S,C, ε)。

10) Until 穷举完毕S中所有2/ε个点的子集。

11) 返回MinCost的解值。

引理 5如果对每个最优子集 Pi,均成立,则函数 Online-k-means(·)能够从 S中求出一个子集 Si′,满足成立。

证明记由上述第 6)步知,算法是从 S中枚举所有 2/ε个点,则枚举子集中必存在一个子集S′属于Si。上述第7)步求出S中满足S′的凸组合的点集 S′,根据引理 4,,因此并且成立。

引理 6对每个最优子集 Pi,如果成立,则函数 Online-k-means(·)求出 k-means问题(1+ε)近似解的成功概率不小于(1/2)k。

证明根据引理5,对每个最优子集Pi,函数Online-k-means(·)从 S中求出一个子集 Si′,Si′满足成立。以 Si′的质心点作为 Pi的中心点,根据引理2,该质心点至少以1/2的概率满足Pi的 1-means问题的(1+ε)近似解。因此,算法求解 k-means问题(1+ε)近似解的成功概率至少为(1/2)k。

定理5对于满足m最小聚类的点集P,算法2至少以2的概率求出该问题的(1+ε)近似算法,算

2k+2法的时间复杂度为

证明根据定理4,对任意最优子集成立的概率不小于 3/4。当条件成立时,由引理 6知,函数 Online-k-means(·)求解k-means问题(1+ε)近似解的成功概率至少为(1/2)k。因此,算法2的成功概率为

记 r=2/ε,T(|S|)代表求函数 Online-k-means(·)中以 S作为实例点集的枚举个数,则:由此可得T(|S|)至多为

将|S|及r值代入上式可得:枚举所有可能k个中心点的子集个数至多为因此整个算法的时间复杂度为

3.3 局部搜索随机算法

基于文献[6]的局部搜索算法,本文提出k-means问题的局部搜索的随机算法,其随机策略主要体现如下。

1) 文献[6]候选中心点集选自给定实例点集P,新的随机算法则以 P的一个取样子集作为候选中心点集,S满足以较高的概率包含每个最优子集至少一个点。

2) 在 k个初始中心点的选取方面。文献[6]是从候选中心点集中任取k个点,新的随机算法则采用非均匀地随机选取策略从P中选取k个点,使得这k个点尽可能地分属于k个不同最优子集中的点。

初始中心点选取算法实现描述如下。

算法3k个初始中心点选取算法

输入:点集P

1) 从P中随机选取2个点 x1、 x2,选择概率

2) While 选取点数≤k。

3) 从P中随机选取一点xi(i≥3),选取概率为

4) End While。

5) 返回选取点{x1,…, xk}。

算法3首先从P中随机选取2个点 S = { x1,x2},遵循两点距离越大,被选取概率越大的原则。再依次随机选取点 x3,… ,xk,选取第i(i>2)个点时,遵循一个点与已选择的点距离平方和越大,则该点被选取概率越大的原则。因此算法规定第一次选择2个点{x1,x2}的概率表达式为设规定选择第i个点xi的概率表达式为算法4k-means局部搜索随机算法

输入:点集P,最小聚类参数α。

3) Repeat。

4) 以C为中心点,对S作一次划分,划分子集为{S1,S2,…,Sk}。

5) For i=1 to k。

6) 对于Si中每一个点x,以C′为中心点,计算给定点集P的k-means解值∆′,如果∆′<∆,置

7) Next i。

9) 返回C以及解值∆。

与文献[6]局部搜索算法相比,选取k个初始中心点时,算法4中的第2)步不是从给定实例点集P中任取k个点,而是调用算法3从P中非均匀地随机选取k个初始中心点。算法4中的第3)~8)步局部搜索时以取样子集S作为候选中心点集。根据定理2,该取样子集能够较好地代表P。在执行中心点交换时,取样子集能够减少交换次数,从而达到降底算法时间复杂度的目的。

根据算法4第6)步,算法每次迭代时,所求P的值下降(1-ε/k)倍。记∆k2(P)为给定实例点集 P的最优解值,∆2(P,C)为算法所求最终解值,∆2(P,C0)为算法初始中心点所对应的值,算法的迭代次数记为t。则:

由此可得:算法迭代次数

4 实验结果

本文选用 Iris、RuspIni、Spath Postal Zone Data、Cloud 和SPAM 数据集测试本文相关算法。选用数据集 Iris、RuspIni、Spath Postal Zone Data来验证算法1的运算结果;选用UCI中2个高维数据集Cloud以及SPAM测试局部搜索随机算法的运算性能。表1列出5个数据集的基本属性。

表1 选用数据集说明

4.1 近似度算法实验

根据算法 1,在执行算法前,需要给出算法的最小聚类参数α。受篇幅所限、仅给出α=0.5作为参数值,对不同的k值进行实验结果。表2中最优值一列来自于文献[10~12]。由于算法的随机性,表2中实验结果取自算法运算 20次后所求解值的最小值,实验结果参见表2。

表2 算法1实验结果(α=0.5)

在表2中,近似度一列值等于实验结果与最优值的比值。由表2近似度一列可知:本文实验所得到的算法近似度均小于2。通过表2实验结果可以看出:对随机取样点集S,枚举S中所有可能k个点子集作为中心点,则以较高概率获得近似度期望值为2的解。1的常数,因此,迭代此数可简化为O(kln(k))。由算法4的第7)步知,每次迭代时,需要涉及|S|个中心点交换;每次交换后,算法重新计算k-means解值的时间复杂度为O(nkd)。所以,整个算法4的时

4.2 改进局部搜索算法实验

为检验改进后局部搜索算法性能,本文将数据集Cloud以及SPAM分别应用在文献[6]局部搜索算法以及本文算法4上进行测试。表3给出2种算法的实验结果,由于初始中心点选取随机性,将程序执行20次。表2中运算值所对应的两列是指两算法运算20次后所求的最小值,而表2中运算时间所对应的2列值则指程序20次运算后的平均时间。

为便于比较和描述,表中 2运算值=算法实际运行结果/点集个数。

表3 局部搜索算法实验结果

相对于文献[6],定义算法 4的改进值=[1-(算法4)/(文献[6]算法)]×100%。对于Cloud数据集,当k=10、25、50时,算法2第2)步的运算时间分别改进了96.75%、93.32%以及89.21%,因此算法时间得到显著提高。除运算时间外,局部搜索随机算法的运算值也均小于文献[6]的算法。对于SPAM数据,当 k=10、25、50时,算法所求的解值分别改进了51.91%、87.38%和91.63%,而算法的运算时间则分别改进了98.98%、97.98%以及96.39%。由表3可以看出,针对给定的实例点集P,采用局部搜索随机算法,无论是算法所求值的精度还是算法的运算时间均优于文[6]所给出的算法。

5 结束语

本文分析了基于最小聚类k-means问题的随机近似算法,利用取样技术,给出了该问题近似度期望值为2的随机算法。同时探讨了该子问题的(1+ε)近似算法的求解方案,将 Kumar所给出的(1+ε)近似方案的时间复杂度进行了改进,并分析了算法的成功概率。利用取样技术,本文设计局部搜索随机算法。最后,选取了部分实验数据,对算法近似度以及局部搜索随机算法进行了验证。但本文还有几个问题需要进行探讨。1) 本文近似算法是通过枚举样本点集中部分点的求到的,显然算法的时间复杂度高,能否不需要进行组合,而是通过某种策略直解在取样子集中找出满足给定条件的某些点?2) 该算法能否进一步提高成功概率?3) 如何找出k个初始中心点,使得这k个点以较高的概率分别来自于k个不同最优子集中的一个点。

[1] DRINEAS P, FRIEZE A, KANNAN R, et al. Clustering large graphs via the singular value decomposition[J]. Machine Learning, 2004,56(1-3)∶9-33.

[2] MACQUEEN J B. Some methods for classification and analysis of multivariate observations[A]. Proceedings of the 5th Berkeley Symposium on Mathematical Statistics and Probability[C]. California, USA,1967. 281-297.

[3] LLOYD S P. Least squares quantization in PCM [J]. IEEE Transactions on Information Theory, 1982, 28(2)∶129-137.

[4] KANUNGO T, MOUNT D M, NETANYAHU N, et al. A local search approximation algorithm for k-means clustering[J]. Computational Geometry, 2004, 28∶ 89-112.

[5] MATOUSEK J. On approximate geometric k-clustering[J]. Discrete and Computational Geometry, 2000, 24∶ 61-84.

[6] SONG M J, RAJASEKARAN S. Fast k-means algorithms with constant approximation[A]. Proceedings of the 16th Annual International Symposium on Algorithms and Computation[C]. Sanya, Hainan,China, 2005,1029-1038.

[7] INABA M, KAOTH N, IMAI H. Application of weighted voronoi diagrams and randomization to variance-based k-clustering(extended abstract)[A]. Proceedings of the tenth annual symposium on Computational Geometry[C]. Stony Brook, New York, USA, 1994. 332-339.

[8] KUMAR A, SABHARWAL Y, SEN S. A sample linear time (1+ε)algorithm for k-means clustering in any dimensions[A]. Proceedings of the 45th IEEE Symposium on the Foundations of Computer science[C].Washington, DC, USA, 2004. 454-462.

[9] MOTAWANI R, RAGHAVAN P. Randomized Algorithms[M]. Cambridge University Press, Cambridge, UK, 1995.

[10] RUSPINI E H. Numerical methods for fuzzy clustering[J]. Inform Science,1970, 2(3)∶319-350.

[11] SPAETH H. Cluster Analysis Algorithms for Data Reduction and Classification of Objects[M]. John Wiley & Sones, 1980.

[12] PENG J M, XIA Y. A New Theoretical Framework for k-Means-Type Clustering[R]. McMaster University, Advanced Optimization Laboratory, Tech Rep∶ ADVOL2004/06, 2004.

猜你喜欢

枚举搜索算法中心点
基于理解性教学的信息技术教学案例研究
改进的非结构化对等网络动态搜索算法
改进的和声搜索算法求解凸二次规划及线性规划
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
如何设置造型中心点?
数组在处理枚举无规律数据中的应用
基于太阳影子定位枚举法模型的研究
寻找视觉中心点
基于枚举的并行排序与选择算法设计