sklearn.linear_model.SGDClassifier中的参数n_iter设置问题

  统计/机器学习 监督式学习 Python    浏览次数:12609        分享
1

n_iter是循环次数的意思,应该是越大越好的。我设置n_iter=100,程序跑了很久,n_iter=100000,根本就跑不出来了,等了十几个小时了,为什么这么久,SGD的优势不是速度吗?

我又试了n_iter=1,就是只用一个数据点,按照预期,应该是立即出结果,结果很差。实际上是依然等了一会,而且结果并不离谱。

所以这个n_iter到底怎么用?

 

水煮鱼   2017-04-11 22:10



   2个回答 
3

n_iter其实是epoch的意思。

比如你的训练集样本数量是10000,那么你实际的训练次数是10000 * n_iter,而不是n_iter。所以如果你设置n_iter=100000的话,就需要很久很久才能跑完了。

SofaSofa数据科学社区DS面试题库 DS面经

batmanX   2017-04-12 09:52

2

这个n_iter和训练神经网络时的epoch是一个意思

SofaSofa数据科学社区DS面试题库 DS面经

五道口少年   2017-04-13 07:28



  相关讨论

sklearn里的LabelEncoder什么用?

python里怎么安装CatBoostClassifier?

请问在sklearn怎么在已有的模型的基础上训练新的数据?

sklearn实现adaboost算法了吗?

sklearn.linear_model.SGDClassifier能做小批量学习(mini-batch)吗?

sklearn中的Randomizedlogisticregression是什么算法?和SGDClassifier一样吗?

怎么获取sklearn.linear_model.SGDRegressor的回归系数、截距?

sklearn分类模型中预测结果怎么调整概率的阈值

CatBoostClassifier里的rsm参量是什么意思?

sklearn里learning_rate什么意思?

  随便看看

样本权重大小不同时,用什么分类算法比较合适?

python怎么对list中的元素做连乘?

怎么理解surrogate loss function代理损失函数?

点击率的95%置信区间该怎么算?

python(matplotlib)中如何把折线图和柱状图画在一起?