我在Scikit中通过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
我的问题是:
答案 0 :(得分:2)
从不比较不同投影,转换或数据集中的平方和和类似指标。
要了解原因,只需将每个要素乘以0.5 - 您的SSQ将下降0.25。所以要#34;改进"你的数据集,你只需要将它缩小到一个很小的尺寸......
这些指标必须仅用于完全相同的输入和参数。你甚至不能使用平方和来比较具有不同k的k均值,因为较大的k将获胜。你所能做的只是多次随机尝试,然后保持你发现的最佳最小值。
答案 1 :(得分:1)
使用306个功能,您位于curse of dimensionality之下。 306维度的聚类没有意义。因此,我不会在群集后选择功能。
要获得可解释的结果,您需要来降低维度。对于398个样品,您需要低尺寸(2,3或4个)。您的尺寸为2的PCA很好。你可以试试3.
在群集之前选择重要特征的方法可能存在问题。无论如何,2/3/4“最佳”功能对你的情况有意义吗?