聚类是一种无监督学习方法, 它基于给定的相似性评价措施将数据集划分成若干簇, 使得在同一个簇中的对象彼此具有高相似性, 处于不同簇中的对象具有低相似性[1]. 聚类被广泛应用在许多领域, 如机器学习、模式识别等[2]. 对于传统的聚类算法, 属性值的缺失导致部分实例之间的距离无法有效的度量, 所以不能直接应用到不完整的数据集上. 因此, 在不完整数据集上的聚类研究是非常有意义的.
目前针对不完整数据的处理, 主要采用以下方法: (1) 在聚类之前直接删除包含缺失值的实例, 尽管它很简单, 但是当缺失比例较小时, 删除是非常有效的方法[3]. (2) 对缺失的数据集进行填充, 通过填充的方式获取完整的数据集, 然后使用传统聚类算法进行聚类分析, 算法的性能往往受限于预估填充值的准确性[4]. (3) 在聚类过程中采用非填充的方式, 在聚类之前没有对缺失部分进行填充处理, 而是在不完整状态下减少缺失值对聚类过程的影响. 如利用数据包含的背景知识, 通过在实例之间添加少量“软约束”[5]引导包含缺失值的实例进行簇的划分, 减少数据填充过程中不可靠的填充值对聚类的影响.
针对不同的问题, 研究人员提出了多种结合不完整数据的聚类算法. 文献[6]提出一种删除策略, 当数据集缺失比例较小时, 一般小于10%, 直接将包含缺失值的实例删除, 数据缺失比例较小时, 对于最终的聚类分析结果不会产生较大的影响. 文献[7] 提出K-Pod算法, 采用迭代填充的方式处理不完整数据, 填充的过程中使用期望最大化算法(expectation maximization)预估缺失属性值, 每一次迭代过程中使用K-means对填充后的实例进行标记, 直到算法收敛, 但是迭代过程中重复使用K-means方法进行更新, 消耗了大量时间. 文献[5]提出SLIM算法, 在聚类过程中添加基于距离的成对约束, 引导包含缺失值的实例进行簇的划分. 文献[8]提出km-means算法, 该算法将缺失值的处理结合到聚类过程中, 通过调整局部距离计算方式, 减少实例中缺失值对目标函数的影响.
km-means是对K-means的扩展, 仍然受到K-means算法固有缺陷的限制[9]. 该算法采用K-means++[10]的初始化方式获取k个聚类中心, 使得中心之间距离尽可能的大. 由于缺失值的存在, 导致聚类中心的可靠性存在较大的不确定性. 主要表现在两方面: 直接不确定性和间接不确定性. 初始化过程中选择的聚类中心, 在标记阶段引导簇的划分起到十分关键的作用, 所以增大初始化阶段选取聚类中心的可靠性研究具有重要意义.
可信度来源于He在EKM算法[11]中, 描述成对约束在簇划分过程中的满足度, 即某个簇中, 实例的划分结果满足成对约束的个数占成对约束总个数的比例. EKM算法中认为满足度高, 则该簇可信度高; 满足度低, 则该簇的可信度低. 因此, 受He工作的启发, 为了描述不完整数据集中实例之间距离的可信度, 结合实例的完整性, 本文将实例中属性值的完整性称为实例可信度, 实例中缺失值的比例越小, 则计算出的局部距离可信度的越高; 反之, 实例中缺失值比例越高, 则计算出的局部距离可信度的越低.
为了解决km-means初始化阶段选取聚类中心的可靠性问题, 本文在初始化过程中引入可信度, 通过可信度调整距离的计算, 减小选取聚类中心的直接不确定性, 增大初始化完成后选取聚类中心的可靠性, 使得聚类中心能够更好地引导标记阶段的簇划分. 本文第1节介绍不完整数据的缺失机制和符号定义, 第2节介绍km-means算法, 第3节介绍改进的km-means算法, 第4节先对初始化阶段选取聚类中心的可靠性问题进行实验与分析说明, 然后对改进后的km-means进行实验并分析结果, 第5节对所做的工作进行总结.
1 不完整数据集 1.1 不完整数据的缺失机制不完整数据的缺失机制[12]有3种不同的类型. 完全随机缺失, 是指缺失部分独立于本身, 与数据集的其他属性无关; 随机缺失, 是指缺失部分独立于本身, 与数据集中其他属性有关; 非随机不可忽略缺失, 是指缺失部分与本身有关, 与数据集中的其他属性也有关. 完全随机缺失和随机缺失被称作可忽略缺失, 目前处理不完整数据集主要针对可忽略缺失.
1.2 符号定义现有文献中有许多关于缺失度(missing rate) [12, 13]的定义. 本文采用属性值缺失度和实例缺失度, 从不同维度描述缺失程度. 属性值缺失度衡量数据集中缺失的属性值比例, 实例缺失度衡量含有缺失属性值的实例比例.
设数据集
定义1. 属性值缺失度(value missing rate, VMR).设D中属性值出现缺失的个数为
定义2. 实例缺失度(instance missing rate, IMR).设D中含有缺失属性值的实例个数为
在不完整数据集中, 属性值缺失度和实例缺失度描述数据集的整体缺失程度.
2 km-means算法简介km-means算法又被称为结合不完整数据集处理的K-means类型算法, 在Hartigan等人[14]提出的K-means算法框架基础上改进, 使其能够高效的结合缺失值的处理. 该算法的主要思想是: 通过修正实例与聚类中心之间的相似性度量方式, 将缺失值的处理结合到算法中, 减少实例中的缺失值对目标函数的影响, 使得算法准确度有不错的提升.
给定数据集
$ {W_\kappa } = \sum\nolimits_{k = 1}^K {\sum\nolimits_{i = 1}^n {\sum\nolimits_{j = 1}^p {I\left( {{X_i} \in {C_k}} \right)} } } {Y_{ij}}{\left( {{X_{ij}} - {{\hat \mu }_{kj}}} \right)^2} $ | (1) |
对于每一个划分集合C, 聚类中心的更新如式(2):
$ {\hat \mu _{kj}} = \frac{{\displaystyle\sum\nolimits_{i = 1}^n {I\left( {{X_i} \in {C_k}} \right){Y_{ij}}{X_{ij}}} }}{{\displaystyle\sum\nolimits_{i = 1}^n {I\left( {{X_i} \in {C_k}} \right){Y_{ij}}} }} $ | (2) |
实例
$ \delta _{i, {C_k}}^2 = {\left\| {{X_i} - {{\hat \mu }_{\text{k}}}} \right\|^2}{\text{ = }}\sum\nolimits_{j = 1}^p {{Y_{ij}}} {\left( {{X_{ij}} - {{\hat \mu }_{kj}}} \right)^2} $ | (3) |
km-means在不完整数据集上对实例标记时依赖于指标
$ \Delta _{k, i}^ - = \sum\nolimits_{j = 1}^p {\frac{{{n_{kj}}}}{{{n_{kj}} - {Y_{ij}}}}} \delta _{i, {C_{_k}}}^2 $ | (4) |
$ \Delta _{l, i}^{\text{ + }} = \sum\nolimits_{j = 1}^p {\frac{{{n_{lj}}}}{{{n_{lj}} + {Y_{ij}}}}} \delta _{i, {C_l}}^2 $ | (5) |
其中,
$ \xi _{\text{i}}^{\left( t \right)} = \arg {\mathop {\min }\nolimits_{1 \leqslant k \leqslant K}}\delta _{i, {C_k}}^2 $ | (6) |
km-means类似于K-means的思想, 首先通过算法2初始化得到K个聚类中心, 使用式(6)对实例的所属簇进行初始化标记, 然后比较将
算法1. km-means算法
输入: 数据集D, 聚类数K
输出: 聚类簇的划分
1)采用算法2初始化得到K个簇中心,
2)采用式(6)初始化每一个实例的所属簇,
3)初始化活动集
4) while
5) for each
6) 获取距离
7) if
8) 计算
9) else
10) 计算
11) if
12) 将
13) 采用式(2)更新聚类中心
14) else
15)
16) end for
17) 从
18) end while
步骤(8)和步骤(10)中的
算法2. KMIWMD算法
输入: 数据集D, 聚类数量K
输出: K个聚类中心
1)
2) while
3) 计算概率
4) 通过概率
5)
6) end while
步骤(3)中
$ {{\tilde {{d}}}}_{i, {{\text{C}}_k}}^2 = \tilde \delta _{i, {C_k}}^2 = {{\delta _{i, {C_k}}^2} \mathord{\left/ {\vphantom {{\delta _{i, {C_k}}^2} {\sum\nolimits_{j = 1}^p {{Y_{ij}}{Y_{kj}}} }}} \right. } {\sum\nolimits_{j = 1}^p {{Y_{ij}}{Y_{kj}}} }} $ | (7) |
在KMIWMD算法初始化完成后, 选取的聚类中心存在不可靠性, 这种不可靠性具体表现在两方面: (1) 直接不确定性, 被选为簇中心的实例存在缺失值时, 它所处的空间位置并不确定, 在缺省值被填充为某些值时, 它不适合作为簇中心. (2) 间接不确定性, 在度量实例之间的距离时, 由于缺失值的存在, 可能出现原本距离较近的实例, 得出的距离较大, 导致相距较远的实例不会被选作下一个聚类中心, 如图1所示. 我们将其他包含缺失值的实例, 导致聚类中心的不确定性称作间接不确定性. 上述两种不确定性会导致聚类中心在标记阶段对簇的划分产生错误的引导, 容易陷入局部最优解.
如图1所示, 存在两个大小不同的簇
针对km-means算法初始化(KMIWMD算法)过程中, 选取聚类中心的不可靠性问题, 受He等人的工作启发[11, 15], 本文在式(7)的计算过程中引入可信度, 如定义3和定义4, 通过可信度优化不完整数据集的初始化过程, 减少初始化完成后, 多个聚类中心位于同一个簇中, 使得聚类中心能够更好地引导簇的划分. 结合式(7)和可信度, 推出新的结合缺失值处理的初始化方式, 式(8)为结合实例可信度的距离计算, 当实例
定义3. 实例可信度(instance credibility, IC).设D中某个实例
定义4. 公共属性可信度(public attribute credibility, PAC).设实例
在不完整数据集中, 实例可信度描述单个实例的缺失程度, 实例可信度越小, 表示该实例包含缺失属性值越多, 实例越不可信. 公共属性可信度描述任意两个实例之间, 同一个属性均未缺失的属性值比例, 公共属性可信度越小, 表示两个实例之间公共缺失的属性值越多, 实例越不可信.
$ {{\hat {{d}}}}_{i, {{\text{C}}_k}}^2 = I{C_i}\frac{{\delta _{i, {C_k}}^2}}{{\displaystyle\sum\nolimits_{j = 1}^p {{Y_{ij}}{Y_{kj}}} }} $ | (8) |
$ {{\bar {{d}}}}_{i, {{\text{C}}_k}}^2 = PA{C_{i{\text{, }}k}}\frac{{\delta _{i, {C_k}}^2}}{{\displaystyle\sum\nolimits_{j = 1}^p {{Y_{ij}}{Y_{kj}}} }} $ | (9) |
式(8)中的
算法3. KMIWMD++算法
输入: 数据集D, 聚类数K, 可信度阈值
输出: K个聚类中心
1) 采用定义3计算各个实例
2)
3) while
4) 使用式(8)计算
5) 计算概率
6) 通过概率
7)
8) end while
步骤(4)中我们可以使用式(8)或式(9)结合不同的可信度, 调整初始化过程中的距离计算. KMIWND++算法确定下一个聚类中心的时, 在局部距离计算的过程中引入可信度(实例可信度或公共属性可信度), 步骤(2)中通过实例可信度选择包含较完整信息的实例作为第一个聚类中心, 减小簇中心包含缺失值对第k(k=2, 3, …, K)个中心选取的影响. 步骤(4)、步骤(5)通过实例可信度(或者公共属性可信度)调整距离计算, 减少包含缺失值的实例被选作下一个中心的概率, 尽可能地减少直接不确定性对中心选取的影响, 使得初始化完成后多个中心分布在不同的簇中. 最后, 本文将使用算法3初始化的算法1称作KMMC (km-meanswith credibility), 接下来在第4节通过实验分析对比km-means和KMMC在结合不完整数据集的处理效果.
4 实验与分析如表1 所示, 实验阶段使用7个UCI 数据集和3个UCR 数据集. Seeds, Ceramic, Wine, Wdbc, CCBR, Iris和Column来自于UCI 数据集. Plane, CBF和Trace来自于UCR 数据集. Wdbc 表示的是Breast Cancer Wisconsin (Diagnostic)数据集, CCBR表示Cervical Cancer Behavior Risk数据集, Ceramic表示Chemical Composition of Ceramic Samples数据集, Column表示的是Vertebral Column 数据集. 每组数据都采用了Z-Score标准化.
本文对实验需要的缺失数据集进行如下处理, 构建随机缺失机制下的不完整数据集. 在完整数据集基础上, 分别构建不同实例缺失度(IMR)的不完整数据集, 构建过程中分别取IMR为0、10%和20%. 首先通过随机数发生器在n个实例中随机选取miss=IMR×n个实例作为缺失部分, 然后通过随机数发生器依次在miss个实例中随机选取m个属性, 将该属性对应的值设置为空值, 每个实例的随机种子为该实例在数据集中的序号, 最后将miss个包含缺失值的部分和n–miss个完整部分组合成实验所需的不完整数据集. 公共属性可信度存在为0的情况, 如
第一组实验, 如表2和表3所示, 通过实验分析KMIWMD (算法2)和KMIWMD++ (算法3)初始化完成后聚类中心包含缺失值的情况和初始完成后聚类中心出现在同一个簇中的情况, 其中算法2为km-means算法中的初始化聚类中心部分.
第2组实验, 如表4所示, 通过实验对比km-means算法结合不同的聚类中心初始化算法(算法2和算法3)对聚类准确度的影响.
表2和表3分别表示对Iris数据集, 采用KMIWMD和KMIWMD++算法进行1 000次实验, 初始化完成后选取的聚类中心包含缺失值的次数和聚类中心在同一个簇中的次数(表2和表3中的数据统计在同一组实验中完成). 表2中的
结合表2和表3中统计数据分析可知, 随着数据集中的实例缺失度增大, 选取的聚类中心包含缺失值的概率在升高, 同时, 每一次实验选取的聚类中心在同一个簇中的概率也在升高. 由算法2可知, 第一个聚类中心是随机从n个实例中选取的, 随着实例缺失度的增大, 选取的第一个聚类中心包含缺失值的可能自然在升高. 从式(7)计算实例与聚类中心之间的距离可知, 当聚类中心包含缺失值时, 式(7)得出的局部距离可能比真实的距离大. 如某一次选取的聚类中心点
表4是KMMC与km-means对比实验结果, KMMC算法中每一行两个值分别表示采用实例可信度和公共属性可信度优化的实验结果. 从实验数据分析可知, 当数据集不存在缺失值时, 通过定义3和定义4可知, 实例可信度
针对不完整数据集初始化聚类中心问题, 提出了结合可信度的不完整数据集聚类算法KMMC, 将实例可信度和公共属性可信度运用到聚类中心初始化过程中, 减少实例中属性值的缺失对实例之间距离度量的影响, 增大初始化阶段选取聚类中心的可靠性. 通过可信度调整距离计算, 有效减少了簇划分过程中, 不可靠的聚类中心对实例标记阶段产生的错误引导. 最后, 通过UCI和UCR数据集对比KMMC与km-means算法的聚类准确度, 实验结果表明, 改进初始化聚类中心的KMMC算法的准确度优于km-means算法, 验证了KMMC算法的有效性. 未来工作将致力于如何在不完整数据集上引入成对约束, 引导聚类过程中的簇划分, 减少不完整数据对实例标记阶段的影响.
[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] |
Pérez-Suárez A, Martínez-Trinidad JF, Carrasco-Ochoa JA. A review of conceptual clustering algorithms. Artificial Intelligence Review, 2019, 52(2): 1267-1296. DOI:10.1007/s10462-018-9627-1 |
[3] |
Poddar S, Jacob M. Clustering of data with missing entries using non-convex fusion penalties. IEEE Transactions on Signal Processing, 2019, 67(22): 5865-5880. DOI:10.1109/TSP.2019.2944758 |
[4] |
Wei YH, Tang Y, McNicholas PD. Flexible high-dimensional unsupervised learning with missing data. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(3): 610-621. DOI:10.1109/TPAMI.2018.2885760 |
[5] |
Yang Y, Zhan DC, Wu YF, et al. Semi-supervised multi-modal clustering and classification with incomplete modalities. IEEE Transactions on Knowledge and Data Engineering, 2021, 33(2): 682-695. |
[6] |
Strike K, Emam KE, Madhavji N. Software cost estimation with incomplete data. IEEE Transactions on Software Engineering, 2001, 27(10): 890-908. DOI:10.1109/32.962560 |
[7] |
Chi JT, Chi EC, Baraniuk RG. k-POD: A method for k-means clustering of missing data
. American Statistician, 2016, 70(1): 91-99. DOI:10.1080/00031305.2015.1086685 |
[8] |
Lithio A, Maitra R. An efficient k-means-type algorithm for clustering datasets with incomplete records
. Statistical Analysis and Data Mining, 2018, 11(6): 296-311. DOI:10.1002/sam.11392 |
[9] |
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 |
[10] |
Brunsch T, Röglin H. A bad instance for k-means++
. Theoretical Computer Science, 2013, 505: 19-26. DOI:10.1016/j.tcs.2012.02.028 |
[11] |
He ZF. Evolutionary k-means with pair-wise constraints
. Soft Computing, 2016, 20(1): 287-301. DOI:10.1007/s00500-014-1503-6 |
[12] |
Santos MS, Pereira RC, Costa AF, et al. Generating synthetic missing data: A review by missing mechanism. IEEE Access, 2019, 7: 11651-11667. DOI:10.1109/ACCESS.2019.2891360 |
[13] |
龚奇源, 杨明, 罗军舟. 面向缺失数据的数据匿名方法. 软件学报, 2013, 24(12): 2883-2896. |
[14] |
Hartigan JA, Wong MA. A k-means clustering algorithm
. Journal of the Royal Statistical Society, 1979, 28(1): 100-108. |
[15] |
Zhou J, Wang QN, Hung CC, et al. Credibilistic clustering: The model and algorithms. International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 2015, 23(4): 545-564. DOI:10.1142/S0218488515500245 |