Answers:
我所知道的将交叉验证应用于聚类的唯一应用是:
将样本分为4部分训练集和1部分测试集。
将您的聚类方法应用于训练集。
也将其应用于测试集。
使用步骤2中的结果将测试集中的每个观察值分配给训练集簇(例如,k均值的最近质心)。
在测试集中,对步骤3中的每个聚类计数该聚类中的观察对数,其中每个对也根据步骤4处于同一聚类中(从而避免了@cbeleites指出的聚类识别问题)。除以每个簇中的对数,得出一个比例。在所有聚类中比例最低的是衡量该方法在预测新样本的聚类成员资格方面的能力。
从培训和测试集的不同部分重复步骤1,使其达到5倍。
Tibshirani&Walther(2005),“通过预测强度进行聚类验证”,《计算与图形统计杂志》,第14卷,第3页。
我试图了解如何将交叉验证应用于诸如k均值的聚类方法,因为新的即将到来的数据将改变质心,甚至改变现有聚类上的聚类分布。
关于聚类的无监督验证,您可能需要在重新采样的数据上量化具有不同聚类编号的算法的稳定性。
下图显示了群集稳定性的基本思想:
您可以观察到,聚类数为2或5,至少有两个不同的聚类结果(请参见图中的虚线),但是聚类数为4时,结果相对稳定。
集群稳定性:Ulrike von Luxburg的概述可能会有所帮助。
诸如在(迭代)倍交叉验证期间进行的重采样会生成“新”数据集,这些数据集通过删除一些情况而不同于原始数据集。
为了便于说明和清楚起见,我将引导集群。
通常,您可以使用这种重新采样的聚类来衡量您的解决方案的稳定性:它几乎没有改变还是完全改变了?
即使您没有基础知识,您当然也可以比较由同一方法的不同运行(重采样)或不同聚类算法的结果引起的聚类,例如通过列表:
km1 <- kmeans (iris [, 1:4], 3)
km2 <- kmeans (iris [, 1:4], 3)
table (km1$cluster, km2$cluster)
# 1 2 3
# 1 96 0 0
# 2 0 0 33
# 3 0 21 0
由于群集是名义上的,因此其顺序可以任意更改。但是,这意味着您可以更改顺序,以使聚类相对应。然后,对角线*元素计算分配给同一群集的个案,非对角线元素显示分配以何种方式改变:
table (km1$cluster, km2$cluster)[c (1, 3, 2), ]
# 1 2 3
# 1 96 0 0
# 3 0 21 0
# 2 0 0 33
我想说重采样是很好的,以便确定每种方法中聚类的稳定性。没有它,将结果与其他方法进行比较就没有太大意义。
*如果结果不同,则也适用于非平方矩阵。然后,我将对齐以使元素具有前对角线的含义。然后,额外的行/列将显示新集群从哪些集群获得了案例。
您没有将k折交叉验证和k均值聚类混在一起,是吗?