2017-07-03 36 views
0

我正在使用sklearn來訓練模型。火車dataset約爲3000k,所以我用SGDClassifier。該功能不太好,所以我知道它可能不會收斂。但我想SGDClassifier根據我的設置提前停止,就像max_iter = 1000一樣。就我而言,功能SGDClassifier沒有像max_iter這樣的參數。我該怎麼做? 這是代碼。 enter image description heresklearn SGDClassifier不能停止

這是打印信息。 enter image description here

任何幫助將不勝感激...

+0

默認interations爲SGDClassifier是5,用'n_iter' PARAM控制。你的模型運行多久? –

+1

嗨,歡迎來到SO!請[發佈文本,而不是截圖](http://meta.stackoverflow.com/a/285557/3005167)。您可能還想閱讀[如何問](http://stackoverflow.com/help/how-to-ask)和[最小,完整且可驗證的示例](http://stackoverflow.com/help/mcve )。祝你好運! – kazemakase

+0

它已經運行了大約20個小時。 – chenzhixing

回答

0

這是奇怪的,在默認情況下scikit學習0.18.2,n_iter設置爲5個時代。您能否用腳本更新您的問題,以便使用玩具數據集(例如使用numpy.random.randn或類似產品生成)來重現行爲。

注意,在scikit學習掌握和0.19一旦釋放,n_iter將被棄用,取而代之的是max_itertol(例如設置爲1E-3)當目標函數不再進取自動停止。

0

20小時跑步可能並不奇怪,因爲你有一個3000k的數據集,並且你使用的速度很慢,所以使用SGDClassifier。你有什麼處理器?

如果您在Windows中,請嘗試使用CTRL + C停止它。然後,使用n_iter來控制所需的迭代次數。但是,默認值是5。

最後,如果你想保存的模型在這裏看到:

Save and Load Machine Learning Models in Python with scikit-learn