Machine learning 集群算法的性能指标是什么?

Machine learning 集群算法的性能指标是什么?,machine-learning,cluster-analysis,k-means,unsupervised-learning,Machine Learning,Cluster Analysis,K Means,Unsupervised Learning,我正在研究Kmeans聚类,但与监督学习不同,我无法计算聚类算法的性能指标。如何在训练数据后进行精度测试?对于kmeans,您可以找到它的惯性。这可以让您了解kmeans算法的工作情况 kmeans = KMeans(...) # Assuming you already have fitted data on it. kmeans.inertia_ # lesser is better 或者,如果您调用score函数,则会得到相同的结果,但符号为负数。我们假设分数越大越好,但对于kmeans

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

对于kmeans,您可以找到它的惯性。这可以让您了解kmeans算法的工作情况

kmeans = KMeans(...)
# Assuming you already have fitted data on it.
kmeans.inertia_ # lesser is better
或者,如果您调用score函数,则会得到相同的结果,但符号为负数。我们假设分数越大越好,但对于kmeans来说,惯性越小越好。因此,为了使它们保持一致,对其应用了额外的否定

# Call score with data X
kmeans.score(X) # greater is better
这是分析kmeans性能的最基本形式。事实上,如果你把簇的数量看得太高,分数会相应增加,换句话说,惯性会减少,因为惯性只不过是从每个点到相应簇的质心的距离平方的总和,它被分配到该簇。所以,如果你增加集群的数量太多,总距离的平方和会减少,因为每个点都会得到一个非常接近它的质心。不过,在这种情况下,集群的质量很糟糕。所以,为了更好地进行分析,您应该找出轮廓分数,或者在这种情况下更好地使用轮廓图

您将在本笔记本中找到所有实现:


与此存储库对应的书籍是:。这是一本了解所有这些细节的好书。

我投票结束这个问题,因为它不是关于中定义的编程,而是关于ML理论和/或方法论-请参阅机器学习中的介绍和注释。谢谢Hafiz。如何与您联系?应首先进行缩放还是应首先应用PCA?应首先进行缩放,请参见此处:我如何知道哪种聚类算法工作良好?假设我使用3种聚类算法,我如何知道哪种算法性能更好?理论上讲,这取决于你的数据-如果你的聚类大小和球形几乎相同,那么尝试“K-均值”,如果聚类块的形状是椭圆形,那么使用高斯混合模型,如果您认为集群可以具有随机形状,但具有连续的高密度区域,则使用“DBSCAN”。