9

我正在尝试理解由 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。

现在,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'))

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

感谢您的帮助!

4

1 回答 1

12

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

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

于 2013-04-04T18:45:01.517 回答