【问题标题】:How to extract clusters from HDBSCAN algorithm如何从 HDBSCAN 算法中提取聚类
【发布时间】:2020-05-06 18:51:54
【问题描述】:

我想提取形成每个聚类的原始点,我知道 HDBSCAN 没有聚类中心,所以我想如果每个标签以相同的顺序对应于原始点,我可以执行以下操作,但是结果真的很糟糕!!

  hd = hdscan.labels_
  df['s1']=np.where(hd==0 ,df['Close'] ,np.nan)

【问题讨论】:

    标签: python cluster-analysis hdbscan


    【解决方案1】:

    您可以使用 sklearn 模块中的 NearestCentroid 方法来获取 HDBSCAN 集群。对于我的用例,我使用以下函数来获取集群中心:

    from sklearn.neighbors.nearest_centroid import NearestCentroid
    
    def get_cluster_centers(self, clustering_df= None, metrics_by_col='CLUSTER_NO'):
        model_cols=['CREATEDTTM','LAT_GEOCODER','LNG_GEOCODER']
        clf = NearestCentroid()
        clf.fit(clustering_df[model_cols],clustering_df[metrics_by_col])
        centers_df=pd.DataFrame(clf.centroids_,columns=model_cols)
        centers_df['classes']=clf.classes_
        centers_df.set_index('classes', inplace= True)
        return centers_df
    

    clustering_df 是缩放的数据框。您应该始终使用标准化数据进行聚类处理。

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 1970-01-01
      • 2021-09-13
      • 2021-10-09
      • 1970-01-01
      • 2019-09-22
      • 2022-12-28
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多