首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保列表中的实数至少相距'y‘?

如何确保列表中的实数至少相距'y‘?
EN

Stack Overflow用户
提问于 2013-07-06 11:39:30
回答 1查看 77关注 0票数 0

我有一堆数据(x,y),我想对它们进行聚类(比如60个点)。然而,由于数据的性质,一些集群可能非常小(1-2个点),而其他集群可能包含许多点(5-6个)。由于固有的随机起始点,运行k均值算法会导致不唯一的质心值。我知道每个星团的中心在y方向上应该至少是'y‘的距离。(x相对不重要)所以在运行我的kmeans之后,如果任何2个集群的中心在'y‘内,我想重新运行kmeans算法,直到它达到我的标准。此外,如果没有收敛,聚类的数量可以慢慢减少。

我该如何在R中做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-06 13:53:37

你的问题没有实际意义:y是一个变量,还是给定维度中集群之间的最小距离?

这就是说,我们来试一试。簇的中心在k均值拟合的分量$centers中。所以你可以重复这个过程,直到你得到一个拟合,其中中心在y维度上至少相距给定的距离。

代码语言:javascript
复制
repeat {
    m <- kmeans(df, k)
    cy <- m$centers[, 2]
    cy_diff <- diff(sort(cy))
    if(all(cy_diff > min_dist)) break
}

根据您的数据替换dfkmin_dist。这一切在统计上都是可疑的,但这是CrossValidated的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17499449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档