random_state ---summary


1-簡介

random_state 相當於隨機數種子random.seed() 。random_state 與 random seed 作用是相同的。可參考:https://www.jianshu.com/p/4deb2cb2502f

 

對模型沒有影響,但是對於一些進行隨機選擇的過程有影響。比如隨機拆分訓練集和測試集。隨機種子一致的時候能保證每次結果的一致性

 

random_state--- 如果你在需要設置隨機數種子的地方都設置好,那么當別人重新運行你的代碼的時候就能得到完全一樣的結果,復現和你一樣的過程。

 

2-原理(轉載自https://blog.csdn.net/Perfect_Accepted/article/details/81151952

我們在使用sklearn的train_test_split函數隨機划分數據集生成training set 於test set時,在函數train_test_split中有一個參數為random_state。

random_state:隨機數種子——其實就是該組隨機數的編號,在需要重復試驗的時候,保證得到一組一樣的隨機數。比如每次都為1,其他參數一樣的情況下你得到的隨機數組是一樣的。當為None時,產生的隨機數組也會是隨機的。

隨機數的產生取決於種子,隨機數和種子之間的關系遵從以下兩個規則:種子不同,產生不同的隨機數;種子相同,即使實例不同也產生相同的隨機數。

下面我們通俗的解釋一下就是:

參數test_size:如果是浮點數,在0-1之間,表示test set的樣本占比;如果是整數的話就表示test set樣本數量。

test_size只是確定training set於test set的各自所占比例或者數量,並沒有確定數據的划分規則。比如我們有數據集[1,2,3,4,5,6,7,8,9],我們確定test_size=3,那問題是我們應該取哪三個數作為test set呢,這時候就應該使用random_state來確定我們的划分規則,假設我們取random_state=1,它按一定的規則去取出我們的數據,當我們random_state=2時,它又換成另一種規則去取我們的數據,random_state的取值范圍為0-2^32。當random_state=None時,可以理解為隨機分配一個整數給random_state,這樣就導致每次運行的結果都可能不同。

3-疑問

00-random_state=數值,內部是否封裝了一個算法,算法是?

01-random_state的取值范圍為為什么是0-2^32?

 

4-待做

查看random_state源碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM