使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是啥?

Posted

技术标签:

【中文标题】使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是啥?【英文标题】: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 到底是什么意思?

感谢您的帮助!

【问题讨论】:

【参考方案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))

以上是关于使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习系列4 使用Python创建Scikit-Learn回归模型

使用 python 和 scikit-learn 的 DBSCAN:make_blobs 返回的整数标签到底是啥?

如何在 scikit-learn 的 SVM 中使用非整数字符串标签? Python

python机器学习——使用scikit-learn训练感知机模型

在 python 中使用 scikit-learn 线性回归模型时出错

使 Python 能够利用所有内核来拟合 scikit-learn 模型