随机种子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参数的意义]

SVM sklearn 上的随机种子产生不同的结果

为啥 ShuffleSplit 比 train_test_split 更多/更少随机(使用 random_state=None)?

train_test_split()的各参数详解

np.random的随机数函数