解释聚类指标

Posted

技术标签:

【中文标题】解释聚类指标【英文标题】:Interpreting clustering metrics 【发布时间】:2016-12-09 02:48:54 【问题描述】:

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

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

    我使用 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
    

我的问题是:

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

【问题讨论】:

SI既然是关于集群诊断的问题,我觉得更适合CrossValidated 【参考方案1】:

curse of dimensionality 拥有 306 个功能。 306 维的聚类没有意义。因此,我不会在 聚类之后选择特征。

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

在聚类之前选择重要特征的方法可能存在问题。无论如何,2/3/4“最佳”功能对您的情况有意义吗?

【讨论】:

谢谢。我也这样做了。现在,我对特征进行了归一化,然后使用 PCA 将维度降为 4。生成的 PCA 组件覆盖了 58% 的特征方差。【参考方案2】:

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

要了解原因,只需将每个特征乘以 0.5 - 您的 SSQ 将下降 0.25。因此,要“改进”您的数据集,您只需将其缩放到很小的尺寸...

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

【讨论】:

以上是关于解释聚类指标的主要内容,如果未能解决你的问题,请参考以下文章

聚类算法评价指标学习笔记

聚类模型性能评价指标

分类指标

聚类算法的性能指标是啥? [关闭]

监督聚类 - 评估每个真实标签的指标?

聚类算法指标整理