我正在尝试做的简化示例:
假设我有3个数据点A,B和C.我对这些数据运行KMeans聚类并得到2个聚类[(A,B),(C)]
。然后我对这些数据运行MeanShift聚类,得到2个聚类[(A),(B,C)]
。很明显,这两种聚类方法以不同的方式聚集了数据。我希望能够量化这种差异。换句话说,我可以使用什么度量来确定从两种算法中获得的两个聚类分组之间的百分比相似性/重叠?以下是可能给出的一系列分数:
[(A,B),(C)]
与[(A,B),(C)]
[(A,B),(C)]
与[(A),(B,C)]
[(A,B),(C)]
与[(A,B,C)]
这些分数有点随意,因为我不确定如何测量两个不同群集分组之间的相似性。请记住,这是一个简化的示例,在实际应用程序中,每个群集分组可以包含多个数据点和两个以上的群集。在尝试将群集分组与标记的数据分组进行比较时(当您标记数据时),使用此类度量标准也很有用。
编辑:我的一个想法是在第一个群集分组中获取每个群集,并使其百分比与第二个群集分组中的每个群集重叠。这将为您提供第一个群集中的群集的相似性矩阵,以针对第二个群集分组中的群集。但后来我不确定你会用这个矩阵做什么。也许在每行或每列中获得最高的相似性得分并对此做些什么?
答案 0 :(得分:4)
使用评估指标。
许多指标都是对称的。例如,adjusted Rand index。
接近1的值意味着它们非常相似,接近0是随机的,远小于0意味着每个簇的一个是#34;均匀地"分布在另一方的所有集群上。
答案 1 :(得分:1)
那么,确定群集的数量是数据分析中的问题,而不是群集问题本身的问题。这个AIC有很多标准 或立方聚类标准。我认为使用scikit-learn没有选项可以默认计算这两个,但我知道R中有包。