我想使用Rsample()
中的函数从我的数据集中随机选择 n 行。我每次都得到不同的输出,因此使用函数来获得相同的输出。我知道 中的每个整数都会给我一个唯一的输出,如果设置相同的种子,输出将是相同的。但是我无法弄清楚作为参数传递给函数的整数的含义。它只是进入随机生成器算法的一个索引,还是意味着您开始采样的部分数据?例如,in是什么意思?set.seed()
set.seed()
set.seed()
2
set.seed(2)
问问题
19677 次
3 回答
28
在过去,有些书包含随机数字的页面和页面(当然是随机顺序)。
我喜欢把它想象成告诉计算机从一本巨大的随机数书中的set.seed(x)
页面开始读取随机数。与数据无关,而是选择随机数的算法应该如何开始。x
x
这可能有点简单,但我喜欢这个类比。
于 2013-02-04T19:39:19.720 回答
11
随机种子(或种子状态,或只是种子)是用于初始化伪随机数生成器的数字(或向量)。
对于要在伪随机数生成器中使用的种子,它不需要是随机的。由于数字生成算法的性质,只要忽略原始种子,算法生成的其余值将以伪随机方式遵循概率分布。
——维基百科
所以,随机函数可以这样实现:
int rand_r(unsigned int *seed)
{
*seed = *seed * 1103515245 + 12345;
return (*seed % ((unsigned int)RAND_MAX + 1));
}
(样本取自 glibc)
于 2013-02-04T10:22:09.800 回答
5
它只是一个用于为随机数生成器设置种子的数字。它与您的数据无关。如果您没有明确提供种子,则会从当前时间创建一个新种子。
有关它的大量详细信息,请参阅?set.seed
帮助页面。
于 2013-02-04T10:11:06.067 回答