【问题标题】:What are the performance metrics for Clustering Algorithms? [closed]聚类算法的性能指标是什么? [关闭]
【发布时间】:2021-08-21 07:44:07
【问题描述】:

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

【问题讨论】:

  • 我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 machine-learning @ 中的介绍和注意事项987654322@.

标签: machine-learning cluster-analysis k-means unsupervised-learning


【解决方案1】:

对于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_unsupervised_learning.ipynb

这个仓库对应的书是:Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition。这是一本了解所有这些细节的好书。

【讨论】:

  • 谢谢哈菲兹。如何与您联系?
  • 先缩放还是先应用PCA?
  • 应先进行缩放,请参见此处:sebastianraschka.com/Articles/…
  • 我如何知道哪种聚类算法效果好?假设如果我使用 3 种聚类算法,我怎么知道哪个表现更好?
  • 从理论上讲,这取决于您的数据——如果您的集群大小几乎相同且呈球形,则尝试“K-Means”,如果集群斑点是椭圆形,则使用高斯混合模型,如果您认为集群可以具有随机形状但具有连续的高密度区域,然后使用“DBSCAN”。
猜你喜欢
  • 2015-01-05
  • 2011-09-23
  • 2016-07-16
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
  • 1970-01-01
  • 2017-04-19
  • 2011-09-03
相关资源
最近更新 更多