我正在尝试实现sklearn的ParameterSampler,但我并不完全确定random_state
参数的作用。
我的猜测是,如果random_state
设置为None
,则使用正常的随机抽样。如果random_state
不是None
,那么使用伪随机抽样?
此外,我不确定不同的int值如何影响采样。例如,random_state = 1
是random_state = 2
的不同形式吗?如果是,怎么样?
答案 0 :(得分:4)
如果
random_state
为None
或np.random
,则会返回随机初始化的RandomState
对象。如果
random_state
是一个整数,那么它将用于为一个新的RandomState
对象播种。如果
random_state
是RandomState
个对象,则会传递它。
基本上,通过设置random_state
,您可以保证(伪)随机数生成器每次都生成相同的随机整数序列,这反过来会影响数据的采样方式。< / p>
答案 1 :(得分:3)
random_state
不影响分发。它是一个参数,使您可以获得一致的结果。如果将其设置为1,则每次运行代码时都会得到相同的结果。如果将其设置为2,也会发生这种情况(但可能与之前的值不同)。如果将其设置为“无”(默认值),则每次选择随机种子时,您将获得不同的结果。
答案 2 :(得分:0)
sklearn中的此 random_state 参数为函数的内部随机数生成器提供了种子值。 在此期间,如果我们为该种子值选择不同的值,则将导致不同的随机分割用于训练和测试。因此,如果我们希望每次都接受相同的训练和测试划分,则需要确保传递相同的随机状态参数值。就像是random.seed()代码。