gpt4 book ai didi

r - kmeans : Quick-TRANSfer stage steps exceeded maximum

转载 作者:行者123 更新时间:2023-12-03 08:49:09 48 4
gpt4 key购买 nike

我正在使用标准 stats 在具有 636,688 行和 7 列的数据集上运行 R 中的 k-means 聚类。包裹:kmeans(dataset, centers = 100, nstart = 25, iter.max = 20) .

我收到以下错误:Quick-TRANSfer stage steps exceeded maximum (= 31834400) ,虽然可以在 http://svn.r-project.org/R/trunk/src/library/stats/R/kmeans.R 查看代码- 我不确定出了什么问题。我认为我的问题与我的数据集的大小有关,但如果有人能一劳永逸地澄清我可以做些什么来缓解这个问题,我将不胜感激。

最佳答案

我只是有同样的问题。

通过 ?kmeans 查看 R 中的 kmeans 文档:

The Hartigan-Wong algorithm generally does a better job than either of those, but trying several random starts (‘nstart’> 1) is often recommended. In rare cases, when some of the points (rows of ‘x’) are extremely close, the algorithm may not converge in the “Quick-Transfer” stage, signalling a warning (and returning ‘ifault = 4’). Slight rounding of the data may be advisable in that case.



在这些情况下,您可能需要切换到 Lloyd 或 MacQueen 算法。

R 在这里令人讨厌的事情是它继续发出可能被忽视的警告。出于我的基准测试目的,我认为这是一次失败的运行,因此我使用:
if (kms$ifault==4) { stop("Failed in Quick-Transfer"); }

根据您的用例,您可能想要做类似的事情
if (kms$ifault==4) { kms = kmeans(X, kms$centers, algorithm="MacQueen"); }

相反,继续使用不同的算法。

如果您对 K 均值进行基准测试,请注意 R 使用 iter.max=10默认情况下。可能需要超过 10 次迭代才能收敛。

关于r - kmeans : Quick-TRANSfer stage steps exceeded maximum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382681/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com