2017-03-05 30 views
0

根據sklearn.cross_validation模塊中的資源在線「train_test_split」函數以隨機狀態返回數據。「train_test_split」的模型評估不是靜態的嗎?

這是否意味着如果我用兩次相同的數據訓練一個模型,我得到兩個不同的模型,因爲學習過程中使用的訓練數據點在每種情況下都不相同?

在實踐中,這兩種模型的準確性有很大差異?這是一種可能的情況嗎?

+2

如果你想擁有可重現的行爲,但仍然基於隨機分裂(這是PRNG的基本使用模式),你可以將種子設置爲某種常量。如果你不這樣做,可能會使用基於時間的播種,結果會有所不同。一般來說,這些差異沒有理論上的限制。理論上可能是災難性的(取決於所使用的分類器)。 – sascha

回答

1

您可以將random_state參數設置爲某個常數值以重現數據拆分。另一方面,測試你想知道的內容通常是一個好主意 - 即用不同的隨機狀態至少運行兩次訓練並比較結果。如果他們差異很大,這是一個跡象表明有問題,並且您的解決方案不可靠。