KMeans 评估指标不收敛。这是正常行为还是不正常?
KMeans evaluation metric not converging. Is this normal behavior or no?
我正在解决一个问题,该问题需要 运行 KMeans 分别处理约 125 个不同的数据集。因此,我希望以数学方式计算每个数据集的 'optimal' K。但是,评估指标会随着 K 值的升高而持续下降。
对于示例数据集,有 50K 行和 8 列。使用 sklearn 的 calinski-harabaz score,我正在遍历不同的 K 值以找到最佳/最小分数。然而,我的代码达到了k=5,600,calinski-harabaz分数还在下降!
似乎发生了一些奇怪的事情。该指标是否运作良好?我的数据是否有缺陷(请参阅我的 是否有 another/better 方法在数学上收敛于 'optimal' K?或者我应该强迫自己在所有数据集中手动选择一个常量 K?
任何其他观点都会有所帮助。谢谢!
我对 calinski-harabaz 分数一无所知,但一些分数指标会随着 K 的增加而单调 increasing/decreasing。例如,每次线性回归的均方误差总是会减少新特征被添加到模型中,因此已经开发了其他分数来增加对增加特征数量的惩罚。
有一个非常好的 answer here 很好地涵盖了 CH 分数。通常适用于这些单调评分指标的简单方法是绘制 K 与分数的关系图,并选择分数不再提高的 K 'much'。这是非常主观的,但仍然可以给出很好的结果。
摘要
指标每增加K就会减少;这强烈表明您没有对数据集进行自然聚类。
讨论
CH 分数取决于簇内密度和簇间密度之间的比率。对于相对平滑的点分布,K 的每次增加都会使您的簇密度稍高,它们之间的密度稍低。尝试点阵:改变半径并手工计算;你会看到它是如何工作的。在极端情况下,K = n:每个点都是自己的簇,密度无穷大,簇与簇之间的密度为0。
其他指标
也许最简单的指标是平方和,它已经是聚类计算的一部分。对与质心的距离平方求和,除以 n-1(n=集群人口),然后 add/average 所有集群的距离。
我正在寻找一篇讨论这个问题的指标的特定论文;如果我能找到参考,我会更新这个答案。
N.B。对于您选择的任何指标(与 CH 一样),未能找到局部最小值表明数据确实没有自然聚类。
下一步做什么?
以某种形式呈现您的数据您可以可视化。如果你看到自然聚类,看特征;你怎么能看到它,但代数(度量)不能?制定一个指标,突出您所感知的差异。
我知道,这与您尝试自动化的问题类似。欢迎研究。 :-)
我的问题的问题是 'best' Calinski-Harabaz 分数是最大值,而我的问题假设 'best' 是最小值。它是通过分析簇间散布与簇内散布的比率来计算的,你想要最大化的 former/numerator,你想要最小化的 latter/denominator。事实证明,在此数据集中,'best' CH 分数具有 2 个聚类(可用于比较的最小值)。我实际上 运行 K=1,这也产生了很好的结果。正如 Prune 所建议的那样,数据集中似乎没有自然分组。
我正在解决一个问题,该问题需要 运行 KMeans 分别处理约 125 个不同的数据集。因此,我希望以数学方式计算每个数据集的 'optimal' K。但是,评估指标会随着 K 值的升高而持续下降。
对于示例数据集,有 50K 行和 8 列。使用 sklearn 的 calinski-harabaz score,我正在遍历不同的 K 值以找到最佳/最小分数。然而,我的代码达到了k=5,600,calinski-harabaz分数还在下降!
似乎发生了一些奇怪的事情。该指标是否运作良好?我的数据是否有缺陷(请参阅我的
任何其他观点都会有所帮助。谢谢!
我对 calinski-harabaz 分数一无所知,但一些分数指标会随着 K 的增加而单调 increasing/decreasing。例如,每次线性回归的均方误差总是会减少新特征被添加到模型中,因此已经开发了其他分数来增加对增加特征数量的惩罚。
有一个非常好的 answer here 很好地涵盖了 CH 分数。通常适用于这些单调评分指标的简单方法是绘制 K 与分数的关系图,并选择分数不再提高的 K 'much'。这是非常主观的,但仍然可以给出很好的结果。
摘要
指标每增加K就会减少;这强烈表明您没有对数据集进行自然聚类。
讨论
CH 分数取决于簇内密度和簇间密度之间的比率。对于相对平滑的点分布,K 的每次增加都会使您的簇密度稍高,它们之间的密度稍低。尝试点阵:改变半径并手工计算;你会看到它是如何工作的。在极端情况下,K = n:每个点都是自己的簇,密度无穷大,簇与簇之间的密度为0。
其他指标
也许最简单的指标是平方和,它已经是聚类计算的一部分。对与质心的距离平方求和,除以 n-1(n=集群人口),然后 add/average 所有集群的距离。
我正在寻找一篇讨论这个问题的指标的特定论文;如果我能找到参考,我会更新这个答案。
N.B。对于您选择的任何指标(与 CH 一样),未能找到局部最小值表明数据确实没有自然聚类。
下一步做什么?
以某种形式呈现您的数据您可以可视化。如果你看到自然聚类,看特征;你怎么能看到它,但代数(度量)不能?制定一个指标,突出您所感知的差异。
我知道,这与您尝试自动化的问题类似。欢迎研究。 :-)
我的问题的问题是 'best' Calinski-Harabaz 分数是最大值,而我的问题假设 'best' 是最小值。它是通过分析簇间散布与簇内散布的比率来计算的,你想要最大化的 former/numerator,你想要最小化的 latter/denominator。事实证明,在此数据集中,'best' CH 分数具有 2 个聚类(可用于比较的最小值)。我实际上 运行 K=1,这也产生了很好的结果。正如 Prune 所建议的那样,数据集中似乎没有自然分组。