2017-07-03 35 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