解释聚类指标
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 会获胜。您所能做的就是多次随机尝试,然后保持以这种方式找到的最佳最小值。
【讨论】:
以上是关于解释聚类指标的主要内容,如果未能解决你的问题,请参考以下文章