文章快速检索     高级检索
  山东大学学报(工学版)  2016, Vol. 46 Issue (5): 37-44  DOI: 10.6040/j.issn.1672-3961.1.2016.031
0

引用本文 

周旺, 张晨麟, 吴建鑫. 一种基于Hartigan-Wong和Lloyd的定性平衡聚类算法[J]. 山东大学学报(工学版), 2016, 46(5): 37-44. DOI: 10.6040/j.issn.1672-3961.1.2016.031.
ZHOU Wang, ZHANG Chenlin, WU Jianxin. Qualitative balanced clustering algorithm based on Hartigan-Wong and Lloyd[J]. JOURNAL OF SHANDONG UNIVERSITY (ENGINEERING SCIENCE), 2016, 46(5): 37-44. DOI: 10.6040/j.issn.1672-3961.1.2016.031.

基金项目

国家自然科学基金优秀青年科学基金资助项目(61422203)、中央高校基本科研业务费专项资金资助项目(20620140498)

作者简介

周旺(1992— ),男,福建福州人,硕士研究生,主要研究方向为计算机视觉. E-mail: zhouw@lamda.nju.edu.cn

文章历史

收稿日期:2016-03-01
网络出版时间:2016-08-25
一种基于Hartigan-Wong和Lloyd的定性平衡聚类算法
周旺, 张晨麟, 吴建鑫     
南京大学计算机软件新技术国家重点试验室,江苏 南京 210046
摘要: 基于传统的Hartigan-Wong聚类算法会产生不平衡聚类结果的缺点,提出一种新的聚类算法Charl,这种算法会改进聚类结果的平衡性但不要求绝对平衡。结合Lloyd算法和Hartigan-Wong算法的思想,Charl算法采用一种自适应性的动态调整策略来调整平衡程度。跟Lloyd算法一样,Charl算法以批处理的方式更新中心,所以具有计算高效的性质。在13个数据集上进行的试验表明,Charl方法不仅产生了平衡的聚类结果,并且同时得到了比Lloyd算法更低的代价函数值和更好的聚类性能(聚类准确率、归一化互信息、聚类时间等)。这种定性平衡聚类算法也明显优于严格平衡的聚类算法
关键词: 平衡聚类    定性平衡    Hartigan-Wong    Lloyd    机器学习    
Qualitative balanced clustering algorithm based on Hartigan-Wong and Lloyd
ZHOU Wang, ZHANG Chenlin, WU Jianxin     
State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210046, Jiangsu, China
Abstract: The traditional Hartigan-Wong clustering algorithm could cause the unbalanced clustering problem. To solve this problem, Charl which is a novel qualitative balanced clustering method was proposed to improve the balance level while the absolute balance was not required. Charl combined ideas from both the Lloyds method and the Hartigan-Wong method, Charl proposed an adaptive tuning strategy to tune the balance level. This algorithm was a batch processing method, which shared the efficiency benefits of the Lloyds method. Experiments on 13 benchmark datasets showed that Charl not only produced more balanced output groups, but also achieved lower cost values and higher clustering performances (in terms of accuracy, normal mutual information and time cost) than the Lloyds method. This qualitative balancing method also outperformed the quantitative balanced clustering method by a large margin.
Key words: balanced clustering    qualitative balancing    Hartigan-Wong    Lloyd    machine learning    
0 引言

聚类是机器学习和人工智能的核心领域之一。在聚类算法中,K-means算法具有简单性、有效性和准确性等优点,成为聚类算法中最常用的算法[1-4]。通过提前给定一个参数KK-means算法把样例集划分为K个类,每个类的代表对象用这个类里面所有点的中心来表示。与其他聚类算法相比,K-means算法在保持良好的聚类性能的同时,有着更快的速度。在其他聚类算法中,常用K-means算法进行数据的预处理或者后处理,比如谱聚类[5-7]和聚类集成算法[8]

在过去的几十年中,许多研究者致力于改善K-means算法的有效性和准确性[9-12],但是K-means算法的一个缺点却很少被关注:由K-means算法产生的聚类经常是不平衡的,即不同类中所含样本的数量的差异会很大。但是在许多聚类问题中,存在着问题域上的平衡先验以及数据收集过程中的平衡偏差,因此在实际应用中,经常期望聚类算法的输出结果是平衡的,即聚类结果中不同类中包含基本相同的样本点个数。例如在对手写数字图像进行聚类时,有理由相信10个数字出现的频率是相同的,所以希望聚类结果中每个类包含基本相同数量的样本。在图像分类领域,词袋模型(bag-of-words)[13]使用K-means算法把图像特征聚类成不同的类别。文献[14-16]指出,为了得到更高的图像分类准确率,需要平衡的聚类结果,但是使用K-means常常得不到这样的结果。

由上所述,需要一种能输出平衡聚类结果的聚类算法。本研究重点关注这样的问题:鼓励聚类结果是平衡的,但不严格要求平衡程度,即需要考虑定性的平衡要求,但不是严格的平衡限制(例如把1 000个样本分为10个类,每个类恰好有100个样本)。虽然已经存在一些关于定量限制的平衡聚类方法的研究[17-18],但试验证明本研究提出的定性的平衡聚类方法Charl较具有优势。这一算法是由两种经典的聚类算法,Hartigan-Wong算法和Lloyd算法组合而成。

与Lloyd算法相比,Hartigan- Wong算法更倾向于产生较平衡的聚类结果。本研究提出了一种简单有效的调整机制来动态调整聚类结果的平衡性,与Hartigan-Wong算法相比,新调整策略有着更好的灵活性。Charl算法把这种调整机制与Lloyd的批处理更新方式结合起来,确保了Charl算法的效率。试验结果表明:Charl算法不仅获得了更加平衡的聚类结果,也得到更低的代价函数值和更好的聚类性能。

1 Hartigan-Wong算法与Lloyd算法

给定一个拥有n个样本点的数据集,其中每个样本点的格式如下: {x1,x2,…,xn}∈RdK-means聚类的任务是把这些点分成K个不同的类,使得相同类中的样本点相似度高,不同类间的样本点相似度低。

1.1 Lloyd算法

形式化来说,K-means算法应该找到所有样本点的分配系数 rik∈ {0,1}(1≤in,1≤kK),其中n为样本点的个数,K为聚成的类的个数。并且同时应该找到向量μk(1≤kK),每个向量代表一个类的中心。如果xi属于第k个类,则rik=1,否则rik=0。由上可知,第k个类的大小为nk=$\sum\limits_{i=1}^{n}{{{r}_{ik}}}$。

K-means算法当中,需要最小化代价函数

$J=\sum\limits_{i=1}^{n}{\sum\limits_{k=1}^{K}{{{r}_{ik}}\left\| {{x}_{i}}-{{\mu }_{k}} \right\|}}{{}^{2}}.$ (1)

式(1) 推导得出[1-2]

${{r}_{ij}}=\left\{ \begin{array}{*{35}{l}} 1, & \text{if}j=\underset{1\le k\le K}{\mathop{\arg \text{min}}}\,{{\left\| {{x}_{i}}-{{\mu }_{k}} \right\|}^{2}}; \\ 0, & \text{otherwise}. \\ \end{array} \right.$ (2)
${{\mu }_{k}}\frac{\sum\limits_{i=1}^{n}{{{r}_{ik}}{{x}_{i}}}}{\sum\limits_{i=1}^{n}{{{r}_{ik}}}}=\frac{\sum\limits_{i=1}^{n}{{{r}_{ik}}{{x}_{i}}}}{{{n}_{k}}}.$ (3)

Lloyd算法按照批处理的方式,通过两个阶段来找出rikμk的值。

首先固定所有类的中心 μk,使用式(2)更新rik;然后固定所有rik,通过式(3)更新 μk。 Lloyd算法反复进行这两个阶段直到结果收敛,保证J收敛到局部极小值[1-2]

Lloyd算法简单有效,但该算法的输出经常是不平衡的。对于不同的k(1≤kK),nk可能会在很大的范围内波动[14-16]

1.2 Hartigan-Wong算法

与Lloyd算法相比,Hartigan-Wong算法能得到更低的代价函数值J[19-21]。与Lloyd的批处理更新不同,Hartigan-Wong是一种在线更新算法。每次迭代过程中,Hartigan-Wong算法先随机选择一个点xi,然后把xi从它所属的类中移除,并用式(3)来更新这个类的中心 μk。最后通过式(4)把xi加入到第j个类:

${{r}_{ij}}=\left\{ \begin{array}{*{35}{l}} 1,\text{if}j=\underset{1\le k\le K}{\mathop{\arg \min }}\,\frac{{{n}_{k}}}{{{n}_{k}}+1}{{\left\| {{x}_{i}}-{{\mu }_{k}} \right\|}^{2}}; \\ 0,\text{otherwise}. \\ \end{array} \right.$ (4)

并再次使用式(3)来更新第j个类的中心 μj

这两种算法主要有两个不同点。在线更新方式使Hartigan-Wong算法能获得更低的代价函数值J[20],但是Lloyd的批处理更新方式在计算上更高效。

更重要的是,它们在更新rik的方式上不同。Lloyd算法使用了平方距离${{\left\| {{x}_{i}}-{{u}_{k}} \right\|}^{2}}$,而Hartigan-Wong算法多了一个乘法项$\frac{{{n}_{k}}}{{{n}_{k}}+1}$。因为$\frac{x}{x+1}$(x>0)是严格递增函数,所以Hartigan-Wong算法更倾向于把样本点分配给包含样本点个数较小的类。举例来说:

${{\left\| {{x}_{i}}-{{\mu }_{1}} \right\|}^{2}}=10,{{n}_{1}}=5.$ (5)
${{\left\| {{x}_{i}}-{{\mu }_{2}} \right\|}^{2}}=9,\text{ }{{n}_{2}}=17.$ (6)

根据式(2)和(4),Lloyd算法会把xi分配给第2个类,而Hartigan-Wong算法会把xi分给第1个类。这个差异的产生是因为n1<<n2

需要指出的是,Hartigan-Wong算法中的$\frac{{{n}_{k}}}{{{n}_{k}}+1}$并不是特意为了把样本点分配给样本个数较小的类而设计的。存在这个乘法项,是因为把一个样本点xi加入到一个合适的类产生了类大小的变化,例如某个类的样本个数的数目从nk变为nk+1。

2 2 Charl算法

通过有意放大式(4)的影响,可以便捷地得到一个符合平衡需求的聚类结果。

2.1 新的调整机制

以批处理的方式,使用式(7)把样本点xi分配到新的类上:

${{r}_{ij}}=\left\{ \begin{array}{*{35}{l}} 1,\text{if}j=\underset{1\le k\le K}{\mathop{\arg \min }}\,{{\left( \frac{{{n}_{k}}}{{{n}_{k}}+1} \right)}^{p}}\left. {{\left\| {{x}_{i}}-{{\mu }_{k}} \right\|}^{2}} \right|; \\ 0,\text{otherwise}\text{.} \\ \end{array} \right.$ (7)

在式(7)中,要求p≥1。也就是说,希望保留并且扩大式(4)把样本点分配给包含样本点个数较少的类的倾向性。如果p>>1,那么这种倾向性将会变得更大。p≥1表明,跟其它类相比,即使某个类的中心到xi的距离比较大,只要它的样本点的个数更少,样本点xi还是可能被分配到该类。因此,在样本点的重分配过程中,样本点更容易被分配到具有较少样本点的类,因此这种算法会产生更加平衡的聚类结果。

新的调整策略和Lloyd、Hartigan-Wong算法的调整策略的重要区别是,Hartigan-Wong算法和Lloyd算法通过式(2)和式(4)可以保证代价函数J是非递增的,因此这两个算法最终都会收敛。在式(2)中,通过计算J的偏导数,可以很容易验证这个结论,即获得的rik保证代价函数J达到了这一阶段的全局最小值。在式(4)中,因为先把样本点xi从所属的类移出,再将样本点xi重新加入到某个类,所以也能保证代价函数J达到当前阶段的全局最小值[21]

但式(7)并不能保证聚类过程中代价函数随着迭代次数的增加而收敛。在下面的讨论中,将分析何时式(7)会增大代价函数J的值。

2.2 不当样本点的产生

假设样本点xi在第t次迭代过程中被重分配到了第j个类,即rij=0。如果存在s(1≤sK)满足式(8)和(9),则说明由于xi的重分配,导致关于xi的代价函数$\left( \sum\limits_{k=1}^{K}{{{r}_{ik}}{{\left\| {{x}_{i}}-{{u}_{k}} \right\|}^{2}}} \right)$的增加:

$J=\underset{1\le k\le K}{\mathop{\arg \min }}\,{{\left( \frac{{{n}_{k}}}{{{n}_{k}}+1} \right)}^{p}}{{\left\| {{x}_{i}}-{{\mu }_{k}} \right\|}^{2}},$ (8)
${{\left\| {{x}_{i}}-{{u}_{j}} \right\|}^{2}}>{{\left\| {{x}_{i}}-{{u}_{s}} \right\|}^{2}}.$ (9)

式(8)表明xi会被重分配到第j组,式(9)表明代价函数值在重分配之后会增加。也就是说,当存在s满足式(9)和(10)时,产生了一个不当的样本点分配:

${{\left( \frac{{{n}_{j}}}{{{n}_{j}}+1} \right)}^{p}}{{\left\| {{x}_{i}}-{{\mu }_{j}} \right\|}^{2}}\le {{\left( \frac{{{n}_{j}}}{{{n}_{j}}+1} \right)}^{p}}{{\left\| {{x}_{i}}-{{u}_{s}} \right\|}^{2}}.$ (10)

由式(9)(10)解得:

$\frac{{{n}_{s}}\left( {{n}_{j}}+1 \right)}{\left( {{n}_{s}}+1 \right){{n}_{j}}}\ge {{\left\| \frac{{{x}_{i}}-{{\mu }_{j}}}{{{x}_{i}}-{{\mu }_{s}}} \right\|}^{\frac{2}{p}}}>1.$ (11)

定义容忍系数

$\rho =\left( \left\| \frac{{{x}_{i}}-{{u}_{j}}}{{{x}_{i}}-{{u}_{s}}} \right\| \right){{}^{\frac{2}{p}}},$ (12)

且在实际情况中nj>0,则:

${{n}_{s}}\left( {{n}_{j}}-\rho {{n}_{j}}+1 \right)\ge \rho {{n}_{j}}>0.$ (13)

结合式(11)(12),可以进一步得到:

$1<\rho <1+\frac{1}{{{n}_{j}}},$ (14)
${{n}_{j}}<\rho {{n}_{j}}<{{n}_{j}}+1,$ (15)
$\frac{{{n}_{t}}}{{{n}_{j}}}\ge \frac{\rho }{{{n}_{j}}+1-\rho {{n}_{j}}}>1.$ (16)

容易证明,式(14)(15)(16)与式(9)(10)等价,且式(14)(15)(16)是发生不当分配的必要条件。

2.3 不当样本点分配的减少

如果在第t次迭代中,式(7)为xi重分配到第j个类,那么在第t次迭代:

(1) 先根据式(12)计算ρ,此过程与t无关。

(2) 如果存在s(1≤sK),同时满足式(14)和(16),那么这次对xi的重分配就会导致代价函数值J的增加。

通过分析式(8)~(16),可以得到如下的推论:

(1) 根据式(8)和(9),当p增加时,Charl算法更倾向于将样本点xi分配到样本个数较少的类,但代价函数增大的风险也随之增大。当需要聚类结果更平衡时,可以令p为较大的值,反之,可令p为较小的值。

(2) 根据式(13),当p增加时,ρ会减少,式(14)更容易被满足。因此较大的p更容易导致不当的样本点分配。

(3) 当分类结果接近均匀时,对于所有的s(1≤sK),$\frac{{{n}_{s}}}{{{n}_{j}}}\approx 1$。此时并不需要聚类结果变得更加平衡,可将p的值设置为一个较小值。

(4) 如果式(14)成立,那么式(16)中的$\frac{\rho }{{{n}_{j}}+1-\rho {{n}_{j}}}$取决于ρnjnj+1的接近程度。当ρnj接近nj+1时,产生不当的样本点分配的概率也随之增大。

(5) 最后需要强调的是,尽管在某样本点的分配上可能会使J增大,但在一次迭代过程中,所有样本点分配完成后,整体的代价函数值J仍然可能是下降的。

2.4 平衡程度评价指标和自适应调整

由前面分析可知,本研究需要一种评价聚类平衡性的指标,也需要一种动态调整p的方式。本研究使用聚类结果中不同类的标准差作为平衡程度的评价指标,计算式为:

$\sigma =\sqrt{\frac{1}{K}{{\sum\limits_{k=1}^{K}{\left( {{n}_{k}}-\frac{n}{K} \right)}}^{2}}}.$ (17)

如果聚类结果不平衡,则σ较大;如果聚类结果绝对平衡,则σ=0。由于不强制要求聚类结果绝对平衡,所以当聚类结果的σ≤$\frac{n}{5K}$时,认为这个聚类结果是平衡的,反之,则为不平衡。定义b=$\frac{\sigma }{n\cdot {{K}^{-1}}}$为平衡因子,则在本研究中定义当且仅当b≤0.2时,该聚类结果是平衡的。对于其他数据集,可以根据期望得到的聚类结果的平衡程度来确定平衡因子b

动态调整p的方案如下:首先,初始化p=1,如果聚类结果不平衡(b≥0.2),用p=1.25p来扩大p。如果聚类结果是平衡的,用p=p/1.25来缩小p。但是如果b≤0.2并且p<1.25,则将p置成1。根据上述描述,Charl算法的具体过程如下。

1: 输入:x1,x2,…,xn,K,Tmax。

2: 随机选择K个点作为初始中心μk(1≤kK)。

3: t→0,使用式(1)计算Jt

4: p→1。

5: 若迭代次数没有达到Tmax,进行以下迭代:

6: 使用式(7)更新rik(1≤in,1≤kK)。

7: 使用式(3)更新聚类中心 μk

8: 重新计算类的大小nk,计算标准差

${{\sigma }_{t}}=\sqrt{\frac{1}{K}\sum\limits_{k=1}^{K}{{{\left( {{n}_{k}}-\frac{n}{K} \right)}^{2}}}}.$

10: 如果σt>$\frac{n}{5K}$,则p→1.25p

11: 否则p→max(p/1.25,1)。

12: tt+1,使用式(1)计算Jt

13: 如果JtJt-1,终止迭代。

Charl算法采用批处理的更新方式,所以具有跟Lloyd一样的高效计算的优点。在每次迭代过程中,根据聚类结果是否均衡,自适应地调整p。通过这一策略,Charl算法倾向于得到更平衡的聚类结果。在满足以下两个条件之一时,终止Charl算法的迭代过程:

(1) Charl算法迭代数达到最大迭代次数。

(2) 某次迭代后,代价函数值J上升。

2.5 Charl算法与定量平衡聚类算法对比

Quant算法是一个典型的定量平衡聚类算法[10],现在将Charl算法进行对比。Quant算法可以指定最后聚类结果必须是完全平衡的,即nk≥$\left\lceil \frac{n}{K} \right\rceil ,1\le k\le K$。

为了满足定量平衡的性质,Quant算法不得不牺牲一些其他的性能,比如效率和准确率。而与之相对应的是,Charl算法使用了启发式算法来鼓励平衡聚类。在下一节,将通过试验对比Charl算法与Quant算法。

3 试验

为了验证Charl算法的有效性,首先在13个常用的聚类数据集上对比Charl算法、Lloyd算法和Quant算法的各项指标:平衡因子b、代价函数值J、聚类准确率(accuracy,ACC)、归一化互信息(normalized mutual information,NMI)和调整随机指标(adjusted rand index,ARI)、运行时间。

3.1 数据集、评估参数和设定

试验使用了具有平衡先验的13组数据集,数据集的具体属性在表 1中给出。对于RCV数据集,使用了4个种类:“C15”“ECAT”“GCAT”和“MCAT”中的样本点。对Isolet数据集,使用了Isolet1子数据集。

表 1 数据集属性 Table 1 Summary of dataset properties

这些数据集的属性差异较大。这些数据集中,样本点个数的范围是165~70 000个,样本点的维度范围是617~29 992。数据集涉及到不同的领域,包括图像、音频和文本。数据集中类的个数也不相同,范围是4~68。因为Charl算法适用的问题域是具有平衡先验的,所以选择这些数据集的一个重要特征是,它们的类别全部是平衡的(b≤0.2)。

所有的样本点都进行行归一化,即,xi→$\frac{{{x}_{i}}}{\left\| {{x}_{i}} \right\|}$。考虑到主成分分析(principal component analysis,PCA)已经被广泛应用于聚类数据的预处理中,所以在运行聚类算法之前,均对数据进行PCA预处理,保留累计贡献率大于90%时对应的主成分个数[2]。每种算法在每个数据集上均运行100次,并报告100次运行后算法平均表现。在运行Lloyd算法和Charl算法时,设置最大的迭代次数是100(T=100),并且为了保证Charl算法和Lloyd算法的公平对比,两种算法使用相同的初始化值。在Quant算法中,根据文献[10]的建议,首先采样大小为$\left\lfloor \frac{n}{K} \right\rfloor $的样本点子集,并且使用Lloyd算法对样本点子集进行聚类。 在得到聚类结果之后,首先通过Hungarian算法[22]找到聚类结果的类别和真正类别之间的最佳二分图匹配。 在获得最佳匹配之后,使用ACC、 NMI、 ARI等指标来评价聚类结果[22-24]

3.2 Charl算法聚类结果

首先,对比Charl算法和Lloyd算法的聚类结果的平衡程度。表 2中列出了进行100次聚类试验得到的平均平衡因子b和平均代价函数。在本研究中,使用↓表示所比较的算法的表现劣于Charl的算法(例如更不平衡或者是代价函数值更高),使用↑表示所比较的算法优于Charl算法。

表 2 平均代价函数值和平均平衡因子比较 Table 2 Comparing the average cost and the average balancing fraction

试验结果显示,在全部数据集中,Charl算法都比Lloyd算法得到了更低的平衡因子b。因此,Charl算法可以得到更加平衡的聚类结果。本研究计算了Charl算法和Lloyd算法的平衡因子的相对减少程度

$\frac{{{b}_{\text{Lloyd}}}-{{b}_{\text{Charl}}}}{{{b}_{\text{Lloyd}}}}.$

相对减少程度从3.6%到35.9%不等,平均为20%。这说明了Charl算法达到比Lloyd算法更平衡的聚类结果。

表 2可以看出,与Lloyd算法和Charl算法相比,Quant算法能得到明显更平衡的聚类结果。这是由于Quant算法的设计目标是实现一个定量平衡的聚类算法。但是这并不意味着Quant算法是一个较好的聚类算法。

3.3 Charl算法代价函数值

出乎本研究意料的是,在8个数据集上,Charl算法获得了比Lloyd算法更低的代价函数值 J(如表 2所示)。因为设计Lloyd算法的初衷是得到尽可能低的代价函数值J,Charl算法则不是。但是试验结果表明,Charl算法却能得到更低的代价函数。造成这一现象的原因为: Lloyd算法只能收敛到一个局部最优解,而在p较大时,Charl算法并不能保证最后一定收敛。在有平衡先验的问题域上,Charl算法更倾向于收敛到有较低代价函数值J的局部最优解,因为Charl算法更倾向于寻找平衡的聚类结果。而Lloyd算法忽略了数据集本身的平衡先验知识,可能收敛到一个不平衡的解,也就意味着得到了较高的代价函数值J。更详细的原因将会在未来的工作继续深入研究。

在所有的数据集上,Charl算法都比Quant算法获得了更低的代价函数值,这是因为Quant算法必须牺牲聚类结果的质量来保证聚类结果的严格平衡。

3.4 Charl算法的聚类性能

Charl算法不仅能获得更平衡的聚类结果,还可以得到较好的聚类性能,例如ACC、NMI和ARI。表 3统计了运行100次Charl、Lloyd和Quant算法得到的平均ACC、NMI和ARI值。

表 3 聚类性能(平均ACC,平均NMI,平均ARI)比较 Table 3 Comparing cluster quality (average ACC,average NMI and average ARI)

对于ACC指标,在所有的13个数据集上,Charl算法都优于Lloyd算法。Charl算法的平均ACC比Lloyd算法高4.4%。总体来说,在平衡聚类问题中,Charl算法比Lloyd算法有更高的ACC,而且Charl算法在和Quant算法相比较时也有足够的竞争力。Charl算法在10个数据集上胜过Quant算法,并且ACC相对提高了2%以上。在另外3个数据集上,Quant算法虽然优于Charl算法,但是没有明显的提升。

对于NMI和ARI指标,Charl算法分别在11个数据集和10个数据集上优于Lloyd算法,分别在12个数据集和13个数据集上优于Quant算法。

简而言之,对比多次重复试验时聚类算法所能达到的最优聚类性能,Charl算法的性能仍然明显优于另外两种算法。

最后值得注意的是,虽然平衡先验存在于很多问题域上,但是在聚类过程中要求严格的平衡,得到的结果往往要劣于本研究提出的Charl算法得到的结果。

3.5 Charl算法的实际应用

Charl算法作为一种平衡聚类算法,可以应用到许多场景中。最近邻问题是计算机视觉中一个基础且重要的问题。在数据维数很大的时候,由于得到精确的最近邻点的代价太大,通常使用近似算法得到近似最近邻点。而Product Quantization算法[25]是解决近似最近邻的一种常用算法。

本研究使用的3个数据集分别为SIFT10K、SIFT1M、GIST1M。采取Product Quantization算法[25]建议的参数,将高维向量划分为8个子向量。对每个子向量组聚类时,类的个数设为256。每个算法在所有数据集上都运行100次,其中Charl算法使用的初始聚类中心和Lloyd算法相同。评价指标为recall@R。其中R值表示返回的近似最近邻的个数,recall指标表示返回的近似最近邻是真正的最近邻的比例。

通过表 4可知,在全部数据集上,Charl算法都能比Lloyd算法得到更高的召回率,从而进一步验证了Charl算法的有效性。

表 4 对比不同R值时的平均召回率 Table 4 Comparing the average recall with different R
4 结论与展望

本研究通过结合Lloyd算法和Hartigan-Wong算法,提出一种新的定性平衡聚类算法Charl,来获得平衡的聚类结果。在Charl算法中,本研究提出了一种新的动态调整机制,使得Charl算法的聚类结果中不同的类有着基本相同的大小。在13个聚类数据集上进行的试验表明:Charl算法能达到更好的平衡性和聚类性能。同时,本研究把Charl算法与一种严格平衡的聚类算法进行对比,发现Charl算法能得到更低的代价函数值和更好的聚类性能。

目前,在某些问题域上,可能存在输出类别大小分布的先验知识,本研究对于此类问题的聚类比较感兴趣,将会继续研究这方面的工作。例如医疗诊断中,待聚类的图像正负样本个数差异很大,研究中期待得到一个较为不平衡的聚类结果。另外,也考虑继续拓展Charl算法来满足某些定量平衡的要求。

参考文献
[1] LLOYD S. Least squares quantization in PCM[J]. IEEE Transactions on Information Theory , 1982, 28 (2) : 129-137 DOI:10.1109/TIT.1982.1056489
[2] BISHOP C M. Pattern recognition and machine learning[M]. Singapore: Springer, 2006 .
[3] 贺玲, 吴玲达, 蔡益朝. 数据挖掘中的聚类算法综述[J]. 计算机应用研究 , 2007, 24 (1) : 10-13
HE Ling, WU Lingda, CAI Yichao. Survey of clustering algorithms in data mining[J]. Application Research of Computers , 2007, 24 (1) : 10-13
[4] 孙吉贵, 刘杰, 赵连宇. 聚类算法研究[J]. 软件学报 , 2008, 19 (1) : 48-61
SUN Jigui, LIU Jie, ZHAO Lianyu. Clustering algorithms research[J]. Journal of Software , 2008, 19 (1) : 48-61 DOI:10.3724/SP.J.1001.2008.00048
[5] CHEN X, DENG C. Large scale spectral clustering with landmark-based representation[C] //Proceedings of the 25th AAAI Conference on Artificial Intelligence. San Francisco, USA: AAAI, 2011:313-318.
[6] HUANG J, NIE F, HUANG H. Spectral rotation versus k-means in spectral clustering [C]//Proceedings of the 27th AAAI Conference on Artificial Intelligence. Washington, DC, USA: AAAI, 2013: 431-437.
[7] 周林, 平西建, 徐森, 等. 基于谱聚类的聚类集成算法[J]. 自动化学报 , 2012, 38 (8) : 1335-1342
ZHOU Lin, PING Xijian, XU Sen, et al. Cluster ensemble based on spectral clustering[J]. Acta Automatica Sinica , 2012, 38 (8) : 1335-1342 DOI:10.3724/SP.J.1004.2012.01335
[8] WU J, LIU H, XIONG H, et al. A theoretic framework of k-means-based consensus clustering[C] //Proceedings of the 23rd International Joint Conference on Artificial Intelligence. Beijing, China: AAAI, 2013:1799-1805.
[9] XU R, WUNSCH D. Survey of clustering algorithms[J]. IEEE Transactions on Neural Networks , 2005, 16 (3) : 645-678 DOI:10.1109/TNN.2005.845141
[10] 王守强, 朱大铭, 史士英. K-means聚类问题的改进近似算法[J]. 山东大学学报(工学版) , 2011, 41 (4) : 125-132
WANG Shouqiang, ZHU Daming, SHI Shiying. Improved approximation algorithm for theK-means clustering problem[J]. Journal of Shandong University (Engineering Science) , 2011, 41 (4) : 125-132
[11] 贾洪杰, 丁世飞, 史忠植. 求解大规模谱聚类的近似加权K-means算法[J]. 软件学报 , 2015, 26 (11) : 2836-2846
JIA Hongjie, DING Shifei, SHI Zhongzhi. Approximate weighted kernelK-means for large-scale spectral clustering[J]. Journal of Software , 2015, 26 (11) : 2836-2846
[12] 雷小锋, 谢昆青, 林帆, 等. 一种基于 K-Means 局部最优性的高效聚类算法[J]. 软件学报 , 2008, 19 (7) : 1683-1692
LEI Xiaofeng, XIE Kunqing, LIN Fan, et al. An efficient clustering algorithm based on local optimality ofK-means[J]. Journal of Software , 2008, 19 (7) : 1683-1692 DOI:10.3724/SP.J.1001.2008.01683
[13] LI F, PERONA P. A bayesian hierarchical model for learning natural scene categories[C]//Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, USA: IEEE, 2005:524-531.
[14] JURIE F, TRIGGS B. Creating efficient codebooks for visual recognition[C]//Proceedings of the 10th IEEE International Conference on Computer Vision. Beijing, China: IEEE, 2005:604-610.
[15] WU J, REHG J M. Beyond the Euclidean distance: creating effective visual codebooks using the histogram intersection kernel[C]//Proceedings of the 12th Inter- national Conference on Computer Vision. Kyoto, Japan: IEEE, 2009: 630-637.
[16] WU J, TAN W C, REHG J M. Efficient and effective visual codebook generation using additive kernels[J]. Journal of Machine Learning Research , 2011, 12 (9) : 3097-3118
[17] BANERJEE A, GHOSH J. Scalable clustering algorithms with balancing constraints[J]. Data Mining and Knowledge Discovery , 2006, 13 (3) : 365-395 DOI:10.1007/s10618-006-0040-z
[18] ZHU S, WANG D, LI T. Data clustering with size constraints[J]. Knowledge-Based Systems , 2010, 23 (8) : 883-889 DOI:10.1016/j.knosys.2010.06.003
[19] HARTIGAN J A, WONG M A. Algorithm AS 136: aK-means clustering algorithm[J]. Journal of the Royal Statistical Society (Series C, Applied Statistics) , 1979, 28 (1) : 100-108
[20] TELGARSKY M, VATTANI A. Hartigans Method:K-means clustering without Voronoi[C]//Proceedings of the 13th International Conference on Artificial Intelligence and Statistics. Sardinia, Italy: JMLR, 2010:820-827.
[21] LONIM N, AHARONI E, CRAMMER K. Hartigan's K-means versus Lloyd's k-means: is it time for a change?[C]//Proceedings of the 23rd International Joint Conference on Artificial Intelligence. Beijing, China: AAAI, 2013:1677-1684.
[22] PAPADIMITRIOU C H, STEIGLITZ K. Combinatorial optimization: algorithms and complexity[M]. New York, USA: Dover Publications, 1998 .
[23] CAI D, HE X, HAN J. Document clustering using locality preserving indexing[J]. IEEE Transactions on Knowledge and Data Engineering , 2005, 17 (12) : 1624-1637 DOI:10.1109/TKDE.2005.198
[24] RAND W M. Objective criteria for the evaluation of clustering methods[J]. Journal of the American Statistical Association , 1971, 66 (336) : 846-850 DOI:10.1080/01621459.1971.10482356
[25] JEGOU H, DOUZE M, SCHMID C. Product quantization for nearest neighbor search[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence , 2011, 33 (1) : 117-128 DOI:10.1109/TPAMI.2010.57