首页 文章

scikit-learn中SGDC分类器的正则化参数和迭代

提问于
浏览
2

Python scikit-learn SGDClassifier()既支持l1,l2又支持弹性,找到正则化参数的最佳值似乎很重要 .

我得到了一个建议,使用SGDClassifier()和GridSearchCV()来做这件事,但在SGDClassifier中只提供正则化参数 alpha . 如果我使用SVM或LogisticRegression等损失函数,我认为参数优化应该有 C 而不是alpha . 使用Logisitic回归或SVM时,有没有办法在SGDClassifier()中设置最佳参数?

另外,我还有一个关于迭代参数n_iter的问题,但我不明白这个参数是什么意思 . 如果与shuffle选项一起使用,它是否像装袋一样工作?所以,如果我使用l1惩罚和n_iter的大值,它会像RandomizedLasso()一样工作吗?

1 回答

  • 8

    Calpha 都具有相同的效果 . 不同之处在于术语的选择 . C1/alpha 成正比 . 您应该使用 GridSearchCV 以相同的方式选择 alphaC ,但请记住更高的 C 更容易过度拟合,其中较低的 alpha 更可能过度拟合 .

    L2将产生具有许多小系数的模型,其中L1将选择具有大量0系数和几个大系数的模型 . 弹性网是两者的结合 .

    SGDClassifier 使用随机梯度下降,其中数据通过样本逐个学习算法 . n_iter 告诉它应该对数据传递多少次 . 随着迭代次数的增加和学习率的下降,SGD变得更像批量梯度下降,但它也变得更慢 .

相关问题