首先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
原文地址:https://www.cnblogs.com/alicewoo/p/9210513.html