【问题标题】:KMeans evaluation metric not converging. Is this normal behavior or no?KMeans 评估指标不收敛。这是正常行为还是没有?
【发布时间】:2017-05-21 11:15:31
【问题描述】:

我正在解决一个问题,该问题需要在大约 125 个不同的数据集上单独运行 KMeans。因此,我希望以数学方式计算每个数据集的“最佳”K。但是,随着 K 值的增加,评估指标会继续下降。

对于示例数据集,有 50K 行和 8 列。使用 sklearn 的calinski-harabaz score,我正在遍历不同的 K 值以找到最佳/最低分数。但是,我的代码达到了 k=5,600,而 calinski-harabaz 的分数仍在下降!

似乎发生了一些奇怪的事情。指标效果不好?我的数据可能有缺陷吗(请参阅我的 question about normalizing rows after PCA)? 是否有另一种/更好的方法在数学上收敛到“最佳”K?或者我应该强迫自己在所有数据集中手动选择一个常数 K?

任何其他观点都会有所帮助。谢谢!

【问题讨论】:

    标签: algorithm machine-learning scikit-learn k-means evaluation


    【解决方案1】:

    我对 calinski-harabaz 分数一无所知,但一些分数指标会随着 K 的增加而单调增加/减少。例如,每次添加新功能时,线性回归的均方误差总是会减小到模型,因此已经开发了其他分数,这些分数会增加对越来越多的特征的惩罚。

    有一个很好的answer here 很好地涵盖了 CH 分数。通常对这些单调评分指标有效的简单方法是绘制 K 与分数,并选择分数不再提高“很多”的 K。这是非常主观的,但仍然可以产生良好的结果。

    【讨论】:

    • 谢谢你,泰德。在您分享的链接中 - 以及 sklearn 的网站上 - 它提到“最佳” CH 分数实际上是最大值(不是最小值,这是我在上面的问题中错误地假设的)。也就是说,我确实实现了基于 K 值低于 BIC 分数的二阶导数的用户定义阈值的位置来优化 K 值的代码。这产生了不错的结果,但 CH 最大值在我的数据集上更有效。
    【解决方案2】:

    摘要

    指标随着K的每增加而减少;这强烈表明您没有对数据集进行自然聚类。

    讨论

    CH 分数取决于集群内和集群间密度之间的比率。对于相对平滑的点分布,K 的每次增加都会为您提供稍微更密集的集群,它们之间的密度略低。尝试点阵:改变半径并手动进行计算;你会看到它是如何工作的。在极端情况下,K = n:每个点都是自己的簇,密度无穷大,簇间密度为0。

    其他指标

    也许最简单的度量是平方和,它已经是聚类计算的一部分。将与质心的距离平方相加,除以 n-1(n=集群总体),然后对所有集群进行相加/平均。

    我正在寻找一篇专门讨论这个问题的指标的论文;如果我能找到参考,我会更新这个答案。

    注意对于您选择的任何指标(如 CH),未能找到局部最小值表明数据确实没有自然聚类。

    下一步该怎么做?

    以某种可以可视化的形式呈现您的数据。如果看到自然聚类,请查看特征;你怎么能看到它,但代数(度量)却不能?制定一个指标,突出您所感知的差异。

    我知道,这与您尝试自动化的问题类似。欢迎研究。 :-)

    【讨论】:

    • 确实,我的数据集中似乎没有自然分组。实际上,最佳 K 值是 1。 CH 分数的最大值是当 K=2(即尝试的最小 K)时,当我强制 K=1 时,这对我的数据集产生了最好的结果。正如我在另一条评论中提到的,我尝试了另一种方法,该方法根据 BIC 的二阶导数何时低于某个用户定义的阈值来找到 K。这也产生了有意义的结果,但不如 K=1 时那么好。有趣...还有更多需要研究,但非常感谢您帮助我思考这个问题!
    • 很高兴能提供帮助。我对结果嗤之以鼻……这是一个用你的脑袋玩游戏的数据集。 :-)
    【解决方案3】:

    我的问题的问题是“最好的”Calinski-Harabaz 分数是最高的,而我的问题假设“最好的”是最低的。它是通过分析集群间离散度与集群内离散度的比率来计算的,前者/分子要最大化,后者/分母要最小化。事实证明,在这个数据集中,“最佳”CH 分数是 2 个集群(可用于比较的最小值)。我实际上是用 K=1 运行的,这也产生了很好的结果。正如 Prune 建议的那样,数据集中似乎没有自然分组。

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 2019-03-14
      • 1970-01-01
      • 2010-12-17
      • 2017-06-08
      • 2012-06-26
      相关资源
      最近更新 更多