2016-08-03 38 views
0

我正在通过Scikit-learn中的k-means对398个样本,306个特征进行聚类。特征矩阵是稀疏的,并且簇的数目为4。 为了改进聚类,我试图两种方法:解释聚类指标

  1. 聚类后,我使用ExtraTreesClassifier()进行分类和计算的功能重要度标记的(样品聚类)

  2. 我用PCA到特征尺寸降低到2. 我已经计算以下度量(SS,CHSH

    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. 据我所知,如果平方和较小,聚类方法的性能更好,而如果轮廓接近1聚类方法的性能更好。例如,在最后一行中,与第一行相比,正方形和轮廓的总和都增加了。
  2. 如何选择哪种方法具有更好的性能?
+1

即使这是一个有关集群诊断的问题,我认为它更适合于[CrossValidated](http://stats.stackexchange.com) – C8H10N4O2

回答

2

从不比较不同投影,变换或数据集中的平方和和类似度量。

要明白为什么,只需将每个特征乘以0.5 - 您的SSQ将下降0.25。所以要“改善”你的数据集,你只需要将它缩小到一个很小的尺寸......

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

1

有306个功能,您在curse of dimensionality下。在306维中聚类是没有意义的。因此,我不会在集群之后选择功能。

为了获得可解释的结果,您需要需要以降低维度。对于398个样品,您需要低维(2,3或4个)。您的维度为2的PCA很好。您可以尝试3.

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

+0

谢谢。我也是这样做的。现在,我对这些特征进行了归一化处理,然后使用PCA将维度降低到了4.所得到的PCA组件覆盖了58%的特征变化。 – YNr