【问题标题】:How to find 1 cluster in group of data points如何在一组数据点中找到 1 个集群
【发布时间】:2021-02-08 15:47:41
【问题描述】:

我试图在一组数据中找到 1 个簇,如果不选择所有数据点都在簇内(即在模拟开始时丢失的粒子),我不确定如何做到这一点。

我附上了我试图在我的代码中识别的集群的 gif,并希望找到它的均方根半径。

【问题讨论】:

    标签: python cluster-analysis simulation


    【解决方案1】:

    一个集群手段是一组与其他集群区分开来的数据。如果只能有 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_)
    

    【讨论】:

      猜你喜欢
      • 2022-07-11
      • 2014-06-26
      • 2016-04-10
      • 2018-06-02
      • 2017-06-01
      • 2021-12-22
      • 2019-04-04
      • 2021-01-13
      • 1970-01-01
      相关资源
      最近更新 更多