1. 程式人生 > >隨機種子random_state,random seed

隨機種子random_state,random seed

不同 and state 每次 shu IT random 隨機 作用

首先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