【问题标题】:DBSCAN with python and scikit-learn: What exactly are the integer labes returned by make_blobs?使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是什么?
【发布时间】:2013-03-26 23:50:33
【问题描述】:

我正在尝试理解由 scikit (http://scikit-learn.org/0.13/auto_examples/cluster/plot_dbscan.html) 实现的 DBSCAN 算法的示例。

我换行了

X, labels_true = make_blobs(n_samples=750, centers=centers, cluster_std=0.4)

X = my_own_data,所以我可以将自己的数据用于 DBSCAN。

现在,make_blobs 的第二个返回参数变量labels_true 用于计算结果的一些值,如下所示:

print "Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels)
print "Completeness: %0.3f" % metrics.completeness_score(labels_true, labels)
print "V-measure: %0.3f" % metrics.v_measure_score(labels_true, labels)
print "Adjusted Rand Index: %0.3f" % \
    metrics.adjusted_rand_score(labels_true, labels)
print "Adjusted Mutual Information: %0.3f" % \
    metrics.adjusted_mutual_info_score(labels_true, labels)
print ("Silhouette Coefficient: %0.3f" %
       metrics.silhouette_score(D, labels, metric='precomputed'))

如何从我的数据 X 计算 labels_true?在这种情况下,scikit 与label 到底是什么意思?

感谢您的帮助!

【问题讨论】:

    标签: python scikit-learn dbscan


    【解决方案1】:

    labels_true 是点到标签的“真实”分配:它们实际上应该属于哪个集群。这是可用的,因为make_blobs 知道它是从哪个“blob”生成点的。

    您无法为您自己的任意数据X 获得该数据,除非您有某种真正的点标签(在这种情况下,您无论如何都不会进行聚类)。这只是显示了在您知道真实答案的假案例中聚类执行情况的一些衡量标准。

    【讨论】:

    • 所以注释掉这些行并运行示例。 #print("同质性: %0.3f" % metrics.homogeneity_score(labels_true, labels)) #print("完整性: %0.3f" % metrics.completeness_score(labels_true, labels)) #print("V-measure: %0.3 f" % metrics.v_measure_score(labels_true, labels)) #print("Adjusted Rand Index: %0.3f" # % metrics.adjusted_rand_score(labels_true, labels)) #print("Adjusted Mutual Information: %0.3f" # % metrics .adjusted_mutual_info_score(labels_true, labels))
    猜你喜欢
    • 1970-01-01
    • 2012-10-29
    • 2012-10-08
    • 2016-02-17
    • 2016-11-22
    • 2018-07-03
    • 2020-07-13
    • 2017-02-25
    • 2018-04-10
    相关资源
    最近更新 更多