random_state参数在sklearn的ParameterSampler中有什么作用?

时间:2017-07-13 19:54:50

标签: python random scikit-learn sampling

我正在尝试实现sklearn的ParameterSampler,但我并不完全确定random_state参数的作用。

我的猜测是,如果random_state设置为None,则使用正常的随机抽样。如果random_state不是None,那么使用伪随机抽样?

此外,我不确定不同的int值如何影响采样。例如,random_state = 1random_state = 2的不同形式吗?如果是,怎么样?

3 个答案:

答案 0 :(得分:4)

来自documentation

  

如果random_stateNonenp.random,则会返回随机初始化的RandomState对象。

     

如果random_state是一个整数,那么它将用于为一个新的RandomState对象播种。

     

如果random_stateRandomState个对象,则会传递它。

基本上,通过设置random_state,您可以保证(伪)随机数生成器每次都生成相同的随机整数序列,这反过来会影响数据的采样方式。< / p>

答案 1 :(得分:3)

random_state不影响分发。它是一个参数,使您可以获得一致的结果。如果将其设置为1,则每次运行代码时都会得到相同的结果。如果将其设置为2,也会发生这种情况(但可能与之前的值不同)。如果将其设置为“无”(默认值),则每次选择随机种子时,您将获得不同的结果。

答案 2 :(得分:0)

sklearn中的此 random_state 参数为函数的内部随机数生成器提供了种子值。 在此期间,如果我们为该种子值选择不同的值,则将导致不同的随机分割用于训练和测试。因此,如果我们希望每次都接受相同的训练和测试划分,则需要确保传递相同的随机状态参数值。就像是random.seed()代码。