簡體   English   中英

SGDClassifier 與 LogisticRegression 與 scikit-learn 庫中的 sgd 求解器

[英]SGDClassifier vs LogisticRegression with sgd solver in scikit-learn library

scikit-learn 庫具有以下看起來相似的分類器:

  • 邏輯回歸分類器具有不同的求解器,其中之一是“sgd”

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression

  • 它還有一個不同的分類器“SGDClassifier”,並且對於邏輯回歸,損失參數可以稱為“log”。

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier

它們本質上相同還是不同? 如果它們不同,那么兩者之間的實現有何不同? 考慮到邏輯回歸問題,您如何決定使用哪一個?

不過,Sklearn 中的邏輯回歸沒有“sgd”求解器。 它實現了對數正則化邏輯回歸:它最小化了對數概率。

SGDClassifier 是一個廣義線性分類器,它將使用隨機梯度下降作為求解器。 正如這里提到的http://scikit-learn.org/stable/modules/sgd.html :“盡管 SGD 在機器學習社區中存在了很長時間,但它最近才受到了相當多的關注在大規模學習的背景下。” 它易於實施且高效。 例如,這是用於神經網絡的求解器之一。

使用 SGDClassifier,您可以使用許多不同的損失函數(最小化或最大化以找到最佳解決方案的函數),讓您可以“調整”模型並為您的數據找到最佳的基於 sgd 的線性模型。 事實上,一些數據結構或一些問題將需要不同的損失函數。

在您的示例中,SGD 分類器將具有與邏輯回歸相同的損失函數,但求解器不同。 根據您的數據,您可以得到不同的結果。 您可以嘗試使用交叉驗證找到最佳超參數,甚至嘗試使用網格搜索交叉驗證來找到最佳超參數。

希望能回答你的問題。

所有線性分類器(SVM、邏輯回歸、ao)都可以使用 sgd:隨機梯度下降

基本上,SGD 就像一把傘,能夠面對不同的線性函數。 SGD 是一種近似算法,類似於取單個點,隨着點數的增加,它更多地與最優解進行轉換。 因此,它主要用於數據集較大的時候。 Logistic Regression 默認使用梯度下降,所以它更慢(如果在大型數據集上進行比較)為了使 SGD 對任何特定的線性函數表現良好,讓我們在這里說 Logistic Regression 我們調整稱為超參數調整的參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM