使用python和scikit-learn的DBSCAN: make_blobs返回的整数标签究竟是什么?



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

I changed the line

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

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

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

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 ?在这种情况下,label的scikit到底是什么意思?

谢谢你的帮助!

labels_true是点对标签的"真实"分配:它们实际上应该属于哪个聚类。这是可用的,因为make_blobs知道它从哪个"blob"生成了这个点。

你不能得到你自己的任意数据X,除非你对点有某种真正的标签(在这种情况下,你不会做聚类)。这只是显示了在您知道真实答案的假情况下群集执行情况的一些度量。

最新更新