SGDClassifier梯度下降分類方法


SGDClassifier梯度下降分類方法

這個分類器跟其他線性分類器差不多,只是它用的是mini-batch來做梯度下降,在處理大數據的情況下收斂更快

1.應用

SGD主要應用在大規模稀疏數據問題上,經常用在文本分類及自然語言處理。假如數據是稀疏的,該模塊的分類器可輕松解決如下問題:超過105的訓練樣本、超過105的features。利用梯度來求解參數。

sklearn.linear_model.SGDClassifier(loss=’hinge’, penalty=’l2’, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=None, tol=None, shuffle=True, verbose=0, epsilon=0.1, n_jobs=1, random_state=None, learning_rate=’optimal’, eta0=0.0, power_t=0.5, class_weight=None, warm_start=False, average=False, n_iter=None)

2.損失函數

loss=”hinge”: (soft-margin) 線性SVM.
loss=”modified_huber”: 帶平滑的hinge loss.
loss=”log”: logistic 回歸

3.懲罰項

penalty=”l2”: 對coef_的L2范數罰項
penalty=”l1”: 對coef_的L1范數罰項
penalty=”elasticnet”: L2和L1的convex組合; (1 - l1_ratio) * L2 + l1_ratio * L1

4.SGDClassifier支持多分類,它以”one-vs-all(OVA)”的方式通過結合多個二分類來完成。對於K個類中的每個類來說,一個二分類器可以通過它和其它K-1個類來進行學習得到。在測試時,我們會為每個分類器要計算置信度(例如:到超平面的有符號距離)並選擇最高置信度的類。

我還不是很明白,但是先放在這里,后面補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM