我需要知道为什么cross_validation.train_test_split中的参数random_state是整数而不是布尔值,因为它的作用是标记随机分配?
答案 0 :(得分:2)
random_state
不仅是随机性的标志,还是使用哪种随机种子。如果选择random_state = 3
,您将“随机”拆分数据集,但每次都可以重现相同的拆分。即每个使用相同数据集的调用都将产生相同的拆分,如果您未指定random_state
参数,则不会出现这种情况。
我使用引号的原因是它实际上是伪随机的。 维基百科解释了这样的伪随机性:
伪随机过程是一个似乎是随机的过程 不。伪随机序列通常表现出统计随机性 而由完全确定的因果过程产生。 这种过程比真正随机的过程更容易生成 它的好处是可以一次又一次地使用它来精确生产 相同的数字 - 用于测试和修复软件。
答案 1 :(得分:0)
为了进一步扩展Kelvin的答案,如果你想要一个随机的列车测试分组,那么就不要指定random_state
参数。如果你不想要一个随机的列车 - 测试分割(即每次你想要一个相同的可重复的分割),用你选择的整数指定random_state
。