如何解决ValueError:labels_true 必须是 1D?
我如何计算这个算法的性能。我试过这个简单的例子: `
af = AffinityPropagation().fit(X)
cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_
n_clusters_ = len(cluster_centers_indices)
print("Homogeneity: %0.3f" % homogeneity_score(X,labels))
print("Completeness: %0.3f" % metrics.completeness_score(X,labels))`
但我收到以下错误:ValueError: labels_true must be 1D: shape is (56,52) 请帮忙!
解决方法
错误是由于 homogeneity_score
的错误使用造成的。
这些指标假设基本事实标签可用于您的输入数据。
在您的代码中,您已将输入数据 X
和名为 labels
的预测标签提供给 homoegeneity_score
函数。正确的用法是:
homogeneity_score(labels_true,labels_pred)
在您的情况下,labels_pred
将是 labels
变量。并且 labels_true
应该是您应该能够使用该指标的基本事实标签。
completeness_score
的情况也是如此。
有关这两个指标的官方文档,请参阅此处:
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.homogeneity_score.html https://scikit-learn.org/stable/modules/generated/sklearn.metrics.completeness_score.html
此外,请参阅此答案以更好地了解聚类算法的评估:Performance Analysis of Clustering Algorithms
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。