scikit learn-解释聚类度量



我在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. 如何选择性能更好的方法

Never比较不同投影、转换或数据集的平方和和和和类似度量。

要了解原因,只需将每个功能乘以0.5,您的SSQ就会下降0.25。因此,要"改进"您的数据集,您只需要将其扩展到很小的大小。。。

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

拥有306个功能,您将面临维度的诅咒。在306个维度中进行聚类是没有意义的。因此,我不会在集群之后选择功能。

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

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

相关内容

  • 没有找到相关文章

最新更新