聚类是一种无监督学习方法, 它根据样本间相似度把样本划分到若干簇[1]. K-Means算法是聚类算法的一种典型代表, 它因其简单而又有效的特性备受欢迎, 并且在十大经典数据挖掘算法中排名第二[2]. 该算法根据用户指定的K值, 基于某种距离度量方式, 把样本划分为K个不同的簇, 使得簇内样本相似性高, 簇间样本相似性低[1]. 高维数据空间中数据分布稀疏且存在着大量无关属性, 数据的重要结构信息会隐藏在海量的噪声数据中, 因此使用K-Means算法在高维数据上进行聚类很难发现数据的内在结构, 使得聚类效果差 [3,4]. 然而在现实的聚类分析应用场景中, 数据维度通常很高, 比如图片视频或文本数据, 其维度一般为千万级, 甚至更高. 针对这一问题, Mautz等人于2017年提出了SubKMeans算法[5], 该算法能够将数据映射到子空间中进行聚类, 降低维度影响, 提升K-Means类算法聚类性能.
SubKMeans算法将数据空间划分为一个包含有大部分重要信息的子空间和一个基本不包含重要信息的子空间, 通过映射矩阵能够把数据投影到包含有大部分重要信息的子空间中进行聚类, 从一定程度上减轻“维度灾难”对K-Means类算法的影响. 但是SubKMeans算法只是对经典K-Means类算法的一种扩展, 它依然会受到K-Means类算法固有缺陷的限制[6]. SubKMeans算法是无监督聚类算法, 需要用户事先指定K值, 而在现实中部分数据集的种类数是未知的, 这给使用者带来巨大的困扰, 因此SubKMeans算法的聚类数确定研究具有重要的现实意义.
现有的子空间聚类算法可以划分为硬子空间聚类和软子空间聚类[7,8]. 硬子空间聚类把所有属性都看成同等重要, 按照搜索子空间方式的不同, 可以进一步划分为自底向上的子空间聚类算法和自顶向下的子空间聚类算法. 软子空间聚类算法认为每个属性对于每个簇的贡献程度不一样, 因此给每个属性赋予不同的权重. 文献[9]和文献[10]中提出基于惩罚机制的竞争学习来逐步合并聚类簇, 消除冗余聚类, 最后为子空间聚类确定聚类数目. 文献[11]基于类内紧凑性和类间分离性提出了一种新的聚类有效性指标, 通过在K的取值范围内得出最佳指标值来为子空间聚类确定K值. 文献[12]把现有的K值确定方法分为3类, 分别为传统方法、基于合并分裂方法和基于进化的方法. 传统方法把最佳聚类有效性指标对应的K值作为最佳K值. 基于合并分裂的方法根据聚类有效性指标的值是否更优来决定是否合并或分裂, 达到稳定时的K值即为最佳K值. 基于进化的方法使用特定的编码方式将可能的划分方式编码到个体或染色体中, 通过遗传变异的方式得到适应性最好的个体, 把该个体对应的K值作为最终K值.
为解决SubKMeans聚类数确定问题, 考虑到现实中有时能获取到类似成对约束之类的监督信息, 参考文献[13]中成对约束与轮廓系数的结合方法, 用成对约束改变轮廓系数计算方式, 并用成对约束的满足度给轮廓系数加权. 将改进后的轮廓系数作为聚类有效性评价指标, 通过尝试不同的K值来找到一个最佳指标值, 把该最佳指标值对应的K值作为最佳K值. 第1节介绍SubKMeans算法, 第2节介绍改进的SubKMeans算法, 第3节对改进算法进行实验并分析实验结果, 第4节对所做工作进行总结.
1 SubKMeans算法简介SubKMeans算法又称子空间K均值算法, 它通过寻找数据的最佳子空间来发现数据的隐藏结构, 降低维度影响, 使得K-Means类算法在高维数据上也能够有不错的表现[5]. 它的主要思想是: 假设在一个数据集中大部分重要的信息会隐藏在某一个维度更低的子空间中, 而其它的子空间能够提供的有用信息很少. 根据这一假设把数据空间划分为两个子空间, 包含大部分重要信息的子空间称为聚类子空间, 基本不包含重要信息的子空间称为噪声子空间[5]. 为了提高聚类性能, 挖掘出数据的内在结构, 需要把数据映射到聚类子空间上进行聚类.
给定数据集
$\sum\limits_{i = 1}^K {\sum\limits_{x \in {C_i}} {{{\left\| {x - {u_i}} \right\|}^2}} } $ | (1) |
其中,
$dist({x_i},{x_j}) = {\left\| {P_C^{\rm T}{V^{\rm T}}{x_i} - P_C^{\rm T}{V^{\rm T}}{x_j}} \right\|^2}$ | (2) |
其中,
${P_C} = \left[ \begin{array}{l} {I_m} \\ {O_{d - m,m}} \\ \end{array} \right]$ | (3) |
其中,
$\sum\limits_{i = 1}^K {\sum\limits_{x \in {C_i}} {{{\left\| {P_C^{\rm T}{V^{\rm T}}x - P_C^{\rm T}{V^{\rm T}}{u_i}} \right\|}^2}} } + \sum\limits_{x \in D} {{{\left\| {P_N^{\rm T}{V^{\rm T}}x - P_N^{\rm T}{V^{\rm T}}{u_D}} \right\|}^2}} $ | (4) |
其中,
$Tr\left( {{P_C}P_C^{\rm T}{V^{\rm T}}{S_{iD}}V} \right) + Tr\left( {{V^{\rm T}}{S_D}V} \right)$ | (5) |
${S_{iD}} = \left[ {\sum\limits_{i = 1}^K {{S_i}} } \right] - {S_D}$ | (6) |
${S_i} = \sum\limits_{x \in {C_i}} {\left( {x - {u_i}} \right){{\left( {x - {u_i}} \right)}^{\rm T}}} $ | (7) |
${S_D} = \sum\limits_{x \in D} {\left( {x - {u_D}} \right){{\left( {x - {u_D}} \right)}^{\rm T}}} $ | (8) |
其中, Tr表示矩阵的迹, V是一个正交矩阵, 根据正交矩阵的特性, 可知
算法1. SubKMeans算法
输入: 数据集D, 聚类数量K
输出: 聚类簇
1) 初始化聚类子空间维度
2) 计算数据集列平均
3) 采用式(8)计算数据集的散列矩阵
4) 随机产生初始聚类中心
5) 随机矩阵执行QR分解产生正交矩阵V
6) While(簇中心改变)
7) for each
8) 采用式(2)计算样本到簇中心的距离
9) 将样本划分到距离最近的簇
10) end for
11) 更新簇中心
12) 采用式(7)计算簇的散列矩阵
13) 更新矩阵
14) 更新维度
15) end while
虽然SubKMeans算法能够自动确定聚类子空间维度, 但需要用户指定聚类数量K. 聚类数的确定是实际应用中的一个重大问题, 因为在实际的应用场景中, 需要聚类的数据往往是未知数据, 我们不知道哪些数据应该分配到同一类中, 对于给出的K值, 我们也无法验证其是否是当前数据的准确K值.
2 基于成对约束的SubKMeans聚类数确定算法轮廓系数是一种常用的聚类有效性指标, 可用于确定K值. 在轮廓系数的计算方式中, 聚类的轮廓系数为数据集中所有样本的轮廓系数的平均值, 其把每个样本看成同等重要, 把该指标作为聚类有效性指标用于确定聚类数量时, 往往效果不好. 而在实际的聚类过程中, 存在部分样本对簇的贡献程度不一样的情况. 为了体现这种差异, 基于文献[13], 本文引入成对约束, 用轮廓系数的满足度给单个样本和整个聚类进行加权, 并将违反的成对约束作为惩罚项, 改进轮廓系数的计算方式, 为SubKMeans算法提出一种成对约束与轮廓系数结合的K值确定方法, 称为Constrained Weighted SubKMeans, 简称CSWKM. CSWKM算法把改进后的轮廓系数作为一种新的聚类有效性指标, 在K的取值范围内, 计算出各个K值时的指标值, 把最佳指标值对应的K值作为最佳K值. CSWKM算法框架如下算法2所示.
算法2. CSWKM算法
输入: 数据集D, 成对约束Cst, 最大迭代次数Count
输出: 聚类簇
1) for
2) SubKMeans算法 //迭代时需判断迭代次数是否超过限制
3) if (簇迭代次数小于Count)
4) 采用式(13)计算出此次划分的轮廓系数
5) if(计算得出的轮廓系数小于0)
6) 令轮廓系数为0
7) else
8) 令此次划分的轮廓系数为0
9) end for
CSWKM需要分别计算出各个K值时的轮廓系数值, 把最大轮廓系数对应的K值作为最终K值. 在计算单个K值的轮廓系数时, 需要迭代更新簇中心点、更新矩阵V和子空间维度m, 同时在进行迭代时需要先判断当前迭代次数是否超过最大迭代次数, 若超过, 则停止迭代.
CSWKM算法不同于SubKMeans算法, CSWKM算法需要尝试K值范围内的每个K值. 由于CSWKM算法中对簇的个数进行了限制, 强制每个簇里面的样本个数必须大于5, 在实验中发现当给出的K值与实际的K值相差较大时, 会出现划分簇的迭代次数过多或者不收敛的现象. 为了解决这一问题, 给簇的迭代加上次数限制, 使得超过迭代次数的K值划分认为是不合适的划分, 直接令此次K值划分的簇轮廓系数为0, 一般情况下令迭代次数为50.
2.2 轮廓系数轮廓系数是目前使用最为频繁的聚类有效性评价指标之一, 其要求同一个簇内样本间距离小, 相似性高, 不同簇间距离大, 相似性低[13,14]. 聚类的轮廓系数为数据集中所有样本的轮廓系数平均值, 单个样本x的轮廓系数计算公式如式(9)所示:
$Si\left( x \right) = \frac{{b\left( x \right) - a\left( x \right)}}{{\max \left( {a\left( x \right),b\left( x \right)} \right)}}$ | (9) |
其中,
单独使用轮廓系数作为聚类有效性评价指标效果并不理想, 基于样本对簇的贡献程度不同, 本文引入监督信息对轮廓系数进行改进. 监督信息可以分为两类, 一类是数据样本类别标签, 另一类是数据样本之间的成对约束信息. 成对约束一般是指must-link与cannot-link两种关联约束关系, 正关联约束关系must-link(x,y)表示样本x和样本y属于同一类, 负关联约束关系cannot-link(x,y)表示样本x和样本y属于不同类. 由于成对约束信息获取成本低, 容易得到, 因此本文使用的监督信息为成对约束. 为了体现出各个样本对簇的贡献大小, 我们认为成对约束满足程度高的样本对簇的贡献程度更大, 应该赋予更高的权重. 但是当两个样本成对约束满足程度一致时, 其对簇的贡献程度也可能不一样. 文献[15]认为不同的成对约束的包含的信息不一样, 应该区分对待. 因此我们把未得到满足的成对约束之间的平均距离作为一个惩罚项, 用来体现当成对约束满足程度一致时, 样本对簇的贡献程度.
在must-link约束关系中, 距离更大的约束包含的信息更多, 违反后应该受到更大惩罚, 应使得其轮廓系数更小. 根据轮廓系数计算方式, 通常类内距离越大轮廓系数越小. 在不考虑权重的情况下, 对同一个样本来说, 违反约束后, 其轮廓系数值应该更小, 因此改进后的类内距离不应该比原先的类内距离小. 所以令改进后的类内距离为
$a{\left( x \right)'} = \max \left( {a\left( x \right),avg\left( {x,{x_{ML}}} \right)} \right)$ | (10) |
其中,
在cannot-link约束关系中, 距离更小的约束包含的信息更多, 违反后应该受到更大惩罚. 根据轮廓系数计算方式, 一般类间距离越小轮廓系数越小, 同理, 应该使得改进后的类间距离为
$b{\left( x \right)'} = \min \left( {b\left( x \right),avg\left( {x,{x_{CL}}} \right)} \right)$ | (11) |
其中,
改进后的单个样本轮廓系数如式(12)所示. 此时可能会出现轮廓系数为负数的情况, 而轮廓系数不为负数, 因此令小于0的轮廓系数为0.
$Si{\left( x \right)'} = \frac{{b{{\left( x \right)}'} - a{{\left( x \right)}'}}}{{\max \left( {a{{\left( x \right)}'},b{{\left( x \right)}'}} \right)}}$ | (12) |
加权的方式分为划分权重与样本权重. 划分权重是从整个聚类划分的角度出发, 为在此次K值划分中满足的约束关系个数占总约束关系个数的比例. 样本权重是从单个样本的角度出发, 若样本x具有约束关系, 则其样本权重为样本x满足的约束关系个数占样本x总约束关系个数的比例. 若样本x没有约束关系但其所在的簇里面其它样本具有约束关系, 那么其样本权重为簇中满足的约束关系个数占簇中总约束关系个数的比例. 若样本x本身没有约束关系并且其所在的簇中其它样本也没有约束关系, 那么其样本权重为1.
把划分权重与样本权重结合起来, 聚类的轮廓系数计算公式如式(13)所示,其中
$SI\left( D \right) = \dfrac{{\displaystyle\sum\limits_{x \in D} {w\left( x \right)Si{{\left( x \right)}'}} }}{{\left| D \right|}}weight$ | (13) |
实验阶段使用6个UCI数据集和1个UCR数据集, 如表1所示. Wdbc、Seeds、Iris、Wine、Vertebral column、Glass Identification、Breast Tissue来自于UCI数据集, Plane来自于UCR数据集, Wdbc表示的是Breast Cancer Wisconsin (Diagnostic)数据集. 每组数据都采用了标准化(将一组数的每个数都减去这组数的平均值后再除以这组数的均方差)的预处理方式, 采用结合成对约束的轮廓系数作为聚类有效性评价指标, 聚类准确性使用标准互信息(NMI).
表2是CSWKM算法对比实验的结果, 在CSWKM算法对比实验中, 迭代次数Count取50, 聚类数量K的最大取值范围为
从表2中CSWKM与SIKM算法的对比实验数据中可以明显看到CSWKM算法的K值确定准确率不论在成对约束对数为10或100时, 均要高于SIKM算法, 预测K值更加精准, 使得NMI系数也要高于SIKM算法. 这一结果表明结合成对约束后的轮廓系数更能够表示聚类性能, 验证了CSWKM算法在确定K值上的有效性. 在Glass数据集上, 由于有一类只有9个样本, 在进行十折交叉验证的时候会出现有的簇中无法满足样本数大于5的要求, 导致不收敛, 而CSWKM算法对簇的迭代次数进行了限制, 因此不会出现不收敛的现象. 从10对成对约束与100对成对约束的实验结果中可以看到, CSWKM算法的NMI系数随着预测K值准确率的提高而提升, 由于在大多数的数据集中预测的K值准确率不能达到百分百, 因而NMI系数普遍要比SubKMeans算法低. 当K值预测准确率达到百分百时, CSWKM算法的NMI系数不低于SubKMeans算法, 可以从Wdbc和Seeds数据集的实验结果中看出. 在部分数据集上, 可能聚为其它簇的效果要更好, 因而预测K值准确率虽然没有达到百分百, 但是CSWKM算法的NMI系数还是要高于SubKMeans算法.
4 总结与展望针对SubKMeans算法需要用户指定K值的问题, 提出了一种基于成对约束的SubKMeans 聚类数确定算法. 将成对约束运用到轮廓系数中, 首先用成对约束改进轮廓系数的计算方式, 其次用成对约束的满足程度给轮廓系数加权, 将改进后的轮廓系数作为聚类有效性评价指标, 在K的取值范围内根据最佳指标值挑选出对应的最佳K值, 有效的解决了SubKMeans算法在确定聚类数量方面的难题. 最后, 通过在UCI和UCR数据集上进行实验, 对比没有使用成对约束改进轮廓系数的SIKM算法和SubKMeans算法. 实验结果表明, CSWKM算法的K值确定准确率和聚类效果优于SIKM算法, 验证了CSWKM算法的有效性. 并且CSWKM算法在给出100对成对约束时, 聚类效果优于SubKMeans算法. 未来的工作将致力于如何把子空间信息作为确定K值的一个考虑因素.
[1] |
Saxena A, Prasad M, Gupta A, et al. A review of clustering techniques and developments. Neurocomputing, 2017, 267: 664-681. DOI:10.1016/j.neucom.2017.06.053 |
[2] |
Wu XD, Kumar V, Quinlan JR, et al. Top 10 algorithms in data mining. Knowledge and Information Systems, 2008, 14(1): 1-37. DOI:10.1007/s10115-007-0114-2 |
[3] |
Fränti P, Sieranoja S. K-means properties on six clustering benchmark datasets. Applied Intelligence, 2018, 48(12): 4743-4759. DOI:10.1007/s10489-018-1238-7 |
[4] |
Mautz D, Ye W, Plant C, et al. Discovering non-redundant K-means clusterings in optimal subspaces. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. Kassel, Germany. 2018. 1973–1982.
|
[5] |
Mautz D, Ye W, Plant C, et al. Towards an optimal subspace for K-Means. Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. Halifax, NS, Canada. 2017. 365–373.
|
[6] |
Jain AK. Data clustering: 50 years beyond K-means. Pattern Recognition Letters, 2010, 31(8): 651-666. DOI:10.1016/j.patrec.2009.09.011 |
[7] |
Harikumar S, Akhil AS. Semi supervised approach towards subspace clustering. Journal of Intelligent & Fuzzy Systems, 2018, 34(3): 1619-1629. |
[8] |
Deng ZH, Choi KS, Jiang YZ, et al. A survey on soft subspace clustering. Information Sciences, 2016, 348: 84-106. DOI:10.1016/j.ins.2016.01.101 |
[9] |
Jing LP, Li JJ, Ng MK, et al. SMART: A subspace clustering algorithm that automatically identifies the appropriate number of clusters. International Journal of Data Mining, Modelling and Management, 2009, 1(2): 149-177. DOI:10.1504/IJDMMM.2009.026074 |
[10] |
Jia H, Cheung YM. Subspace clustering of categorical and numerical data with an unknown number of clusters. IEEE Transactions on Neural Networks and Learning Systems, 2018, 29(8): 3308-3325. DOI:10.1109/TNNLS.l2017.2728138 |
[11] |
Chen LF, Wang SR, Wang KJ, et al. Soft subspace clustering of categorical data with probabilistic distance. Pattern Recognition, 2016, 51: 322-332. DOI:10.1016/j.patcog.2015.09.027 |
[12] |
Hancer E, Karaboga D. A comprehensive survey of traditional, merge-split and evolutionary approaches proposed for determination of cluster number. Swarm and Evolutionary Computation, 2017, 32: 49-67. DOI:10.1016/j.swevo.2016.06.004 |
[13] |
He ZF. Evolutionary K-Means with pair-wise constraints. Soft Computing, 2016, 20(1): 287-301. DOI:10.1007/s00500-014-1503-6 |
[14] |
Starczewski A, Krzyżak A. A modification of the silhouette index for the improvement of cluster validity assessment. Proceedings of the 15th International Conference on Artificial Intelligence and Soft Computing. Zakopane, Poland. 2016. 114–124.
|
[15] |
Yu ZW, Luo PN, Liu JM, et al. Semi-supervised ensemble clustering based on selected constraint projection. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(12): 2394-2407. DOI:10.1109/TKDE.2018.2818729 |