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

What does the random_state parameter do in sklearn's ParameterSampler?

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

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

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

来自documentation

If random_state is None or np.random, then a randomly-initialized RandomState object is returned.

If random_state is an integer, then it is used to seed a new RandomState object.

If random_state is a RandomState object, then it is passed through.

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

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

sklearn 中的这个 random_state 参数为函数的内部随机数生成器提供种子值。 如果我们为该种子值选择不同的值,那将导致训练和测试的不同随机拆分。因此,如果我们希望每次都获得相同的训练和测试拆分,我们需要确保传入相同的随机状态参数值。所以它类似于 random.seed() 代码。