![](/img/trans.png)
[英]Using scikit-learn's SGDClassifier to implement SVM: how to tune the regularization parameter?
[英]Regularization parameter and iteration of SGDClassifier in scikit-learn
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變得更像批量梯度下降,但它也變得更慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.