首页 > 解决方案 > sklearn 谱聚类导致的聚类数量少于集合

问题描述

from sklearn.cluster import SpectralClustering
import numpy as np
test = np.array([[63.15907836],
       [69.67386298],
       [67.20030411],
       [66.25165771],
       [62.21031327],
       [55.09531565],
       [65.85034014],
       [52.99841912],
       [52.04523986],
       [52.09008007],
       [94.65364516]])
clustering = SpectralClustering(n_clusters = 4).fit(test)
clustering.labels_

上面的代码结果array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1], dtype=int32)让我感到惊讶。光谱聚类需要设置一些聚类,我这样做了,但只得到了两个聚类。我错过了什么?

标签: pythonscikit-learncluster-analysis

解决方案


有时,根据初始化,谱聚类(和 k-means)可以找到空聚类。

例如,设置random_state为 17 会导致 4 个集群:

clustering = SpectralClustering(n_clusters = 4, random_state=17).fit(test)

您可以在 k-means 中找到它的说明(光谱聚类依赖于 k-means):http ://user.ceng.metu.edu.tr/~tcan/ceng465_f1314/Schedule/KMeansEmpty.html


推荐阅读