sklearn的ParameterSampler中的random_state参数有啥作用?

Posted

技术标签:

【中文标题】sklearn的ParameterSampler中的random_state参数有啥作用?【英文标题】:What does the random_state parameter do in sklearn's ParameterSampler?sklearn的ParameterSampler中的random_state参数有什么作用? 【发布时间】:2017-12-18 18:44:44 【问题描述】:

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

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

我也不确定不同的 int 值对采样有何影响。例如,random_state = 1 是否与 random_state = 2 不同?如果是,怎么做?

【问题讨论】:

【参考方案1】:

来自documentation:

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

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

如果random_stateRandomState 对象,则它被传递。

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于sklearn的ParameterSampler中的random_state参数有啥作用?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn中OneHotEncoder

sklearn的PCA

sklearn中SVM的实现

sklearn中决策树算法DesiciontTreeClassifier()调用以及sklearn自带的数据包sklearn.datasets.load_iris()的应用

Sklearn库

sklearn:在 RandomizedSearchCV 中使用管道?