聚类算法的性能指标是什么



我正在研究Kmeans聚类,但与监督学习不同,我无法计算聚类算法的性能指标。如何在训练数据后执行准确性?

对于kmeans,您可以找到它的inertia_。这可以让您了解kmeans算法的工作效果。

kmeans = KMeans(...)
# Assuming you already have fitted data on it.
kmeans.inertia_ # lesser is better

或者,如果你调用score()函数,它会给你同样的结果,但符号是负数。因为我们假设得分越大意味着越好,但对于kmeansinertia_越小越好。因此,为了使它们一致,对其应用了额外的否定

# Call score with data X
kmeans.score(X) # greater is better

这是分析kmeans性能的最基本形式。事实上,如果你把簇的数量取得太高,score()会相应地增加(换句话说,inertia_会减少(,因为inertia_只不过是从每个点到它被分配到的相应簇的质心的平方距离的总和。因此,如果你将簇的数量增加得太多,总距离的平方和会随着每个点的质心离它很近而减少。尽管如此,在这种情况下聚类的质量很糟糕。因此,为了更好地进行分析,您应该找到silhouette score,甚至在这种情况下更好地使用silhouette diagram

你会在这个笔记本上找到所有的实现:09_unsuprevised_earning.ipynb

与这个知识库相对应的书是:《使用Scikit Learn进行机器学习》、《Keras》和《TensorFlow》,第2版。了解所有这些细节是一本很棒的书。

相关内容

  • 没有找到相关文章

最新更新