隨機種子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