首页 > 解决方案 > 使用 Numpy 为 sklearn 设置良好的随机化环境

问题描述

我想知道是否有优化随机环境的最佳实践。目前我在我的配置中使用这个简单的结构:

from numpy.random import Generator, PCG64
rng = Generator(PCG64(42))
np.random.seed(42)
  1. rng生成器:所有通用目的(按照特定分布绘制、索引排列、合成数据点等)
  2. legacy为生成器的方法np.random.seed设置 scipy 的随机状态。rvsscipy.stats

我在 sklearn 文档(此处的警告部分)的某处读到该sklearn.model_selection模块使用 scipy 的全局种子,那将是全局种子集,np.random.seed不是吗?

如果您对 scipy 和 sklearn 如何引用全局种子以及什么是好的默认随机化设置有更好的了解,那将非常有用。我已经阅读了与此相关的文档,但有矛盾的迹象:为了保持一致,每次都应该将种子传递给random_state参数(与np.random.RandomState()类一起),但他们也说如果None传递了它将寻找全局 np 种子。但是,使用最后一个选项,我无法清楚地看到一致的行为,并且第二个选项非常冗长。

任何想法 ?

标签: pythonnumpyrandomscikit-learn

解决方案


推荐阅读