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個類來進行學習得到。在測試時,我們會為每個分類器要計算置信度(例如:到超平面的有符號距離)並選擇最高置信度的類。
我還不是很明白,但是先放在這里,后面補充
