Python scikit-learn SGDClassifier()同时支持l1,l2和弹性,找到正则化参数的最佳值似乎很重要。
我得到了将SGDClassifier()与GridSearchCV()一起使用的建议,但是在SGDClassifier中仅提供正则化参数alpha。如果我使用诸如SVM或LogisticRegression之类的损失函数,则我认为应该使用C而不是alpha进行参数优化。使用Logisitic回归或SVM时,是否可以在SGDClassifier()中设置最佳参数?
另外,我还有一个关于迭代参数n_iter的问题,但我不明白该参数的含义。如果与shuffle选项一起使用,是否像套袋一样工作?因此,如果我使用l1惩罚和较大的n_iter值,它将像RandomizedLasso()一样工作吗?
C
并且alpha
都具有相同的效果。区别在于术语的选择。C
与...成正比1/alpha
。您应该使用GridSearchCV
选择一种alpha
或C
相同的方式,但请记住,较高的C
值可能过度拟合,而较低的值alpha
则可能过度拟合。
L2将生成一个具有许多小系数的模型,其中L1将选择一个具有大量0系数和一些大系数的模型。弹性网是两者的结合。
SGDClassifier
使用随机梯度下降法,其中数据逐个样本地通过学习算法馈送。该n_iter
告诉它应该多少遍做过来的数据。随着迭代次数的增加和学习率的降低,SGD变得更像批次梯度下降,但它也变慢了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句