Scikit学习中的随机状态(伪随机数)

Scikit学习中的随机状态(伪随机数),第1张

Scikit学习中的随机状态(伪随机数

train_test_split
将数组或矩阵拆分为随机训练和测试子集。这意味着每次运行时不指定
random_state
,您都会得到不同的结果,这是预期的行为。例如:

运行1:

>>> a, b = np.arange(10).reshape((5, 2)), range(5)>>> train_test_split(a, b)[array([[6, 7],        [8, 9],        [4, 5]]), array([[2, 3],        [0, 1]]), [3, 4, 2], [1, 0]]

运行2

>>> train_test_split(a, b)[array([[8, 9],        [4, 5],        [0, 1]]), array([[6, 7],        [2, 3]]), [4, 2, 0], [3, 1]]

它改变。另一方面,如果使用

random_state=some_number
,则可以保证 运行1 的输出与 运行2
的输出相等,即,拆分将始终相同。实际的
random_state
数字是42,0,21,…无关紧要。重要的是,每次使用42时,第一次拆分时总会得到相同的输出。如果您想要可重复的结果(例如在文档中),这将很有用,这样每个人在运行示例时都可以始终看到相同的数字。实际上,我会说,
random_state
在测试材料时,应将设置为某个固定数字,但如果确实需要随机(而不是固定)分割,则应在生产中将其删除。

关于第二个问题,伪随机数生成器是一个生成几乎真正随机数的数字生成器。为什么它们不是真正随机的,超出了此问题的范围,可能对您而言无关紧要,您可以在此处查看更多详细信息。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5617520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存