关于使用Scikit-Learn运行机器学习算法时的种子系统,通常会提到三个不同的内容:
random.seed
np.random.seed
SkLearn
中的random_state
(交叉验证迭代器、ML算法等)
我已经在脑海中有了这个FAQ的SkLearn
,以及articles指出这不应该只是一个简单的FAQ。
我的最终问题是,如何在使用SkLearn
运行ML算法时获得完全可重复的结果?
更详细地说:
- 如果我只使用
np.random.seed
而不在SkLearn
中指定任何random_state
,那么我的结果是否完全可重复?
至少出于知识的考虑,还有一个问题:
np.random.seed
和SkLearn
的random_state
是如何在内部相关的?np.random.seed
如何影响SkLearn
的种子系统(random_state
),并使其(至少从理论上讲)能够再现相同的结果?
numpy.random.seed
进行设置”。 - Outcastnumpy.random.seed
设置任何值,那么它会自行随机选择一个值吗? - Outcast