【发布时间】:2021-02-08 15:47:41
【问题描述】:
【问题讨论】:
标签: python cluster-analysis simulation
【问题讨论】:
标签: python cluster-analysis simulation
一个集群手段是一组与其他集群区分开来的数据。如果只能有 1 个集群,则它必须是所有集群。换句话说,当有其他集群时,一个集群才有意义。
所以你找不到唯一的 1 个集群。您应该区分多个集群并选择 1。
从这个角度来看,您似乎想要有两个集群,一个集群是围绕原点 (0, 0) 的密集点,另一个集群是远离原点的所有其他稀疏点。对于此类数据,您可以使用spectral clustering。
尝试sklearn.cluster.SpectralClustering 与各种gamma。
有以下数据
X = np.array([
[0, 0], [0.1, 0], [0, 0.1], [-0.1, 0], [0, -0.1], # hopefully cluster 1
[5, 0], [0, 5], [-5, 0], [0, -5] # hopefullycluster 2
])
我可以使用gamma=5.0成功地将它们区分为两个集群
clustering = SpectralClustering(
n_clusters=2,
gamma=5.0,
assign_labels="discretize",
random_state=0
).fit(X)
print(clustering.labels_)
【讨论】: