【问题标题】:how to get the confidence of clustering created by dbscan in python如何在python中获得由dbscan创建的集群的置信度
【发布时间】:2022-01-03 00:35:34
【问题描述】:

我在python中使用了sklearn.dbscan,结果只给出了每个集群的标签,但我也想计算集群的置信度,或者只是集群之间的平均距离。

你们有什么想法吗?

【问题讨论】:

    标签: python cluster-analysis dbscan


    【解决方案1】:

    我认为 Scikit 不支持此功能。集群置信度不是问题,因为 DBSCAN 不使用集群概率。不过,计算聚类距离相对简单。

    import numpy as np
    from sklearn.datasets import load_iris
    from sklearn.cluster import dbscan
    
    
    # Get data & labels
    data = load_iris()['data']
    labels = dbscan(data)[1]
    
    import numpy as np
    from sklearn.datasets import load_iris
    from sklearn.cluster import dbscan
    
    
    # Get data & labels
    data = load_iris()['data']
    labels = dbscan(data)[1]
    
    # Initialize results
    cluster_means = np.zeros((len(set(labels)) - 1, data.shape[1]))
    cluster_distances = np.zeros((len(data), len(set(labels)) - 1))
    
    # Loop through clusters
    for i, cluster in enumerate(set(labels)):
        # Skip noise
        if cluster == -1:
            continue
    
        # Get cluster mean
        cluster_mean = np.mean(data[labels == cluster], axis=0)
    
        # Set cluster mean
        cluster_means[i, :] = cluster_mean
    
        # Set cluster distances
        cluster_distances[:, i] = np.linalg.norm(data - cluster_mean, axis=1)
    

    【讨论】:

      猜你喜欢
      • 2018-11-22
      • 2013-09-04
      • 2015-10-09
      • 2020-06-07
      • 2013-01-15
      • 2014-03-26
      • 2017-08-13
      • 2019-08-31
      • 2017-05-20
      相关资源
      最近更新 更多