为什么cross_validation.train_test_split中的参数random_state是整数而不是布尔值

时间:2017-03-29 19:28:32

标签: python machine-learning cross-validation sklearn-pandas

我需要知道为什么cross_validation.train_test_split中的参数random_state是整数而不是布尔值,因为它的作用是标记随机分配?

2 个答案:

答案 0 :(得分:2)

random_state不仅是随机性的标志,还是使用哪种随机种子。如果选择random_state = 3,您将“随机”拆分数据集,但每次都可以重现相同的拆分。即每个使用相同数据集的调用都将产生相同的拆分,如果您未指定random_state参数,则不会出现这种情况。

我使用引号的原因是它实际上是伪随机的。 维基百科解释了这样的伪随机性:

  

伪随机过程是一个似乎是随机的过程   不。伪随机序列通常表现出统计随机性   而由完全确定的因果过程产生。   这种过程比真正随机的过程更容易生成   它的好处是可以一次又一次地使用它来精确生产   相同的数字 - 用于测试和修复软件。

答案 1 :(得分:0)

为了进一步扩展Kelvin的答案,如果你想要一个随机的列车测试分组,那么就不要指定random_state参数。如果你想要一个随机的列车 - 测试分割(即每次你想要一个相同的可重复的分割),用你选择的整数指定random_state