2017-03-24 18 views
-1

當我尋找sklearn文檔中的任意通態參數,這就是我發現:與上sklearn數據分割的隨機狀態參數的問題

random_state:int或RandomState 僞隨機數生成器狀態用於隨機抽樣。

我不太明白它是什麼。

不同分類器的準確性會根據我在隨機狀態參數上編寫的數字而顯着變化。這是爲什麼?我應該設置哪個號碼?

這是我第一次參加機器學習項目。

+1

([隨機狀態Scikit學會(僞隨機數)]的可能的複製http://stackoverflow.com/questions/28064634/random-state- pseudo-random-numberin-scikit-learn) –

回答

2

設置random_state參數可確保您每次運行代碼時都以完全相同的方式拆分數據。當您想要比較不同模型的精確度(例如不同的算法或附加特徵,或兩者)時,這種做法很重要:如果您在測試新方法時以不同方式對套牌進行洗牌,您如何知道增加或減少準確度是由於您對模型所做的更改,而不是由於使用略有不同的訓練和測試數據集所致?

至於爲您的random_state參數選擇編號:由您決定。一些試驗參數的不同值,並查看模型的最佳性能值。這取決於您的應用程序:這是您正在開發的生產規模機器學習模型,還是數據科學挑戰的模型?在前一種情況下,應該沒什麼關係。在後一種情況下,我已經知道完全調整模型的人,然後開始嘗試使用不同的參數來提高他們的準確度。我不一定同意這種做法,因爲它似乎是另一種形式的過度配合(更多here。我通常選擇100,因爲這個數字對我來說很有趣 - 其實沒有邏輯背後的意思。有些人選擇42,其他1

參見更詳細的示例here

+0

我已經閱讀過你通過我的文檔,但是恐怕我不清楚應該設置哪個隨機狀態號碼 謝謝你的速度! –

+1

@BorjaFernándezAntelo你甚至讀過我寫的嗎?我在第二段詳細說明你如何去選擇你的'random_state'參數。 – blacksite