【问题标题】:set.seed changing from day to dayset.seed 每天都在变化
【发布时间】:2017-11-18 02:07:12
【问题描述】:

我正在使用 set.seed 和 kmeans 函数。虽然我使用 set.seed 我的集群中心不断变化,但我的数据没有。而且,它只是每天都在变化,而不是每天都在变化。所以,在同一天没有任何变化,但第二天我的集群会发生变化。我假设 set.seed 函数导致了这种情况。如果是这样,有谁知道如何在 kmeans 或类似函数中设置随机性?有人可以给我一些见解。示例代码如下:

set.seed(1234)

ITsegment2 <- kmeans(iTeller_z, 4)

【问题讨论】:

  • 一个可重现的例子肯定会有所帮助......
  • @AkselA 随着集群每天都在变化,我无法在会话中实现它。我刚刚注意到,在不改变数据集群中心值的情况下,它们会发生变化,如果种子没有改变,它们也不应该发生变化。这更像是一个概念问题。
  • “概念”问题(大体上)被认为过于宽泛、模糊和基于意见而偏离主题。为了使这样一个问题有价值,它的案例需要非常清楚。您根本没有明确说明您的情况,因此您的问题没有什么价值,并且有被标记为关闭的危险。您来这里已经三年多了,问了 20 多个问题,您现在肯定已经弄清楚这个地方的运作方式了吗?
  • @AkselA 为什么 set.seed 从一天到下一天使用会导致不同的结果过于广泛?真的吗?如果你不知道为什么或者这个问题太宽泛,请跳过它。

标签: r k-means seed


【解决方案1】:

可能有更聪明的方法,但这里有一个简单的解决方案:

set.seed(as.numeric(Sys.Date()))

Sys.Date() 返回今天的日期,因为.numeric 把它转换成一个数字...所以这个数字每天都会改变。

干杯

【讨论】:

  • 我不希望种子每天都在变化。那就是问题所在。我想设置种子并每天保持相同的结果。
  • 使用 set.seed 和一个修复号应该这样做......你能提供一个可重现的例子吗?
猜你喜欢
  • 2019-01-06
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2021-11-09
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
相关资源
最近更新 更多