python - 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)
让我感到惊讶。光谱聚类需要设置一些聚类,我这样做了,但只得到了两个聚类。我错过了什么?
解决方案
有时,根据初始化,谱聚类(和 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
推荐阅读
- python - 检查标准输出是否为空?(stdout 和 readline() 的问题)
- webview - 在颤动的webview中禁用水平滚动
- haskell - 在 Windows 上安装 GHC
- javafx - 更改 JavaFX 选项卡顺序时出现 NullPointerException
- ejs - 导航到 ejs 中的公用文件夹
- excel - 如何在 TODAY()+2 打开工作表?
- html - 无法在 CSS 网格中创建一列
- asp.net-mvc - 我需要在 asp.net core 2 REST API 中验证 JWT 令牌吗?
- authentication - CakePHP 2.8 代码在 $this->Auth->user 中有额外的数据。如何?
- java - 深度比较数组中的每个元素