我正在尝试实现 sklearn 的 ParameterSampler,但我不完全确定
random_state
参数的作用。
我的猜测是,如果
random_state
设置为None
,则使用正态随机抽样。如果 random_state
不是 None
,那么使用伪随机采样?
我也不确定不同的 int 值如何影响采样。例如,
random_state = 1
是否与random_state = 2
不同?如果是的话,怎么办?
来自文档:
如果
是random_state
或None
,则返回随机初始化的np.random
对象。RandomState
如果
是一个整数,那么它用于播种新的random_state
对象。RandomState
如果
是一个random_state
对象,那么它会被传递。RandomState
基本上,通过设置
random_state
,您可以保证(伪)随机数生成器每次生成相同的随机整数序列,这反过来又会影响数据的采样方式。
random_state
不影响分布。它是一个使您能够获得一致结果的参数。如果将其设置为 1,则每次运行代码时都会得到相同的结果。如果将其设置为 2,也会发生这种情况(但可能与以前的值不同)。如果将其设置为“无”(默认值),则每次选择随机种子时,您都会得到不同的结果。
random_state 参数为函数的内部随机数生成器提供种子值。 如果我们为该种子值选择不同的值,这将导致训练和测试的随机分割不同。因此,如果我们想要每次获得相同的训练和测试分割,我们需要确保传递相同的随机状态参数值。所以它类似于 random.seed() 代码。