解释聚类指标

Interpreting clustering metrics

我在 Scikit-learn 中通过 k-means 对 398 个样本、306 个特征进行聚类。特征矩阵是稀疏的,簇数为 4。 为了改进聚类,我尝试了两种方法:

  1. 聚类后,我使用 ExtraTreesClassifier() 对特征重​​要性进行分类和计算(聚类中标记的样本)

  2. 我使用PCA将特征维度降为2。 我计算了以下指标 (SS, CH, SH)

        Method                   sum_of_squares, Calinski_Harabasz, Silhouette
    
        1 kmeans                    31.682        401.3            0.879
        2 kmeans+top-features       5989230.351   75863584.45      0.977
        3 kmeans+PCA                890.5431893   58479.00277      0.993
    

我的问题是:

  1. 据我所知,平方和越小,聚类方法的性能越好,而Silhouette越接近1,聚类方法的性能越好。例如,在最后一行中,与第一行相比,平方和和轮廓都增加了。
  2. 如何选择性能更好的方法?

从不比较不同投影、转换或数据集的平方和和类似指标。

要了解原因,只需将每个特征乘以 0.5 - 您的 SSQ 将下降 0.25。所以对于 "improve" 你的数据集,你只需要将它缩放到一个很小的尺寸...

这些指标必须只能用于完全相同的输入和参数。您甚至不能使用平方和来比较具有不同 k 的 k-means,因为较大的 k 会获胜。你所能做的就是多次随机尝试,然后保持你用这种方式找到的最好的最小值。

凭借 306 个功能,您处于 curse of dimensionality 之下。在 306 个维度上聚类是没有意义的。因此,我不会 select 在 聚类之后 特征。

要获得可解释的结果,您需要 降低维度。对于 398 个样本,您需要低维度(2、3,也许是 4)。您的 2 维 PCA 很好。你可以试试3。

在聚类之前使用 selecting 重要特征的方法可能有问题。无论如何,2/3/4 "best" 特征对你的情况有意义吗?