随机种子random_state,random seed
Posted alicewoo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机种子random_state,random seed相关的知识,希望对你有一定的参考价值。
首先random_state和random seed是一样的,都是设置随机种子
在许多模型中都有random_state,例如SVC, ShuffleSplit()等,在模型中设置random_state作用就是可以使每次用相同的训练集相同参数可以得到相同的结果。不然的话,每训练一次,结果就会有波动。如果random_state都设置好,当别人拿到你的代码运行时就能得到和你一样的结果,复现你的过程。
特别注意:随机种子设置为0的时候结果也是一样的,除了不设置或设置为None时,产生的结果会不同
例:
不设置随机种子时,生成的随机数是变化的:
>>> random.seed()
>>> for i in range(10):
print(random.randint(1, 100))
31
14
40
70
62
34
5
74
60
78
>>> random.seed()
>>> for i in range(10):
print(random.randint(1, 100))
81
74
89
91
50
49
20
35
12
68
>>>
设置随机种子时,生成的随机数是不变的:
>>> random.seed(123)
>>> for i in range(10):
print(random.randint(1, 100))
7
35
12
99
53
35
14
5
49
69
>>> random.seed(123)
>>> for i in range(10):
print(random.randint(1, 100))
7
35
12
99
53
35
14
5
49
69
>>> random.seed(0)
>>> for i in range(10):
print(random.randint(1, 100))
50
98
54
6
34
66
63
52
39
62
>>> random.seed(0)
>>> for i in range(10):
print(random.randint(1, 100))
50
98
54
6
34
66
63
52
39
62
以上是关于随机种子random_state,random seed的主要内容,如果未能解决你的问题,请参考以下文章
sklearn 的 train_test_split 中的 random_state 参数
[转][python sklearn模型中random_state参数的意义]
为啥 ShuffleSplit 比 train_test_split 更多/更少随机(使用 random_state=None)?