對數機率回歸

2021-09-29 12:15:31 字數 1725 閱讀 5856

class

sklearn

.linear_model.logisticregression(penalty=

'l2'

, dual=

false

, tol=

0.0001

, c=

1.0, fit_intercept=

true

, intercept_scaling=

1, class_weight=

none

, random_state=

none

, solver=

'liblinear'

, max_iter=

100,

multi_class=

'ovr'

, verbose=

0, warm_start=

false

, n_jobs=

1)

一對多,多元當成二元回歸來處理。多對多,從多個類中每次選兩個類進行二元回歸。如果總共有t類,需要t(t-1)/2次分類。

一對多相對簡單,但分類效果相對略差(大多數樣本分佈情況)。而多對多分類相對精確,但是速度相對慢。

一對多,則4種損失函式的優化方法liblinear,newton-cg,lbfgs和sag都可以選擇。多對多,則只能選擇newton-cg, lbfgs和sag了

newton-cg、lbfgs和sag這三種優化演算法時都需要損失函式的一階或者二階連續導數,因此不能用於沒有連續導數的l1正則化,只能用於l2正則化。而liblinear通吃l1正則化和l2正則化。

同時,sag每次僅僅使用了部分樣本進行梯度迭代,所以當樣本量少的時候不要選擇它,而如果樣本量非常大,比如大於10萬,sag是第一選擇。但是sag不能用於l1正則化,所以當你有大量的樣本,又需要l1正則化的話就要自己做取捨了。要麼通過對樣本取樣來降低樣本量,要麼回到l2正則化。

但是liblinear也有自己的弱點!我們知道,邏輯回歸有二元邏輯回歸和多元邏輯回歸。對於多元邏輯回歸常見的有one-vs-rest(ovr)和many-vs-many(mvm)兩種。而mvm一般比ovr分類相對準確一些。而liblinear只支援ovr,不支援mvm,這樣如果我們需要相對精確的多元邏輯回歸時,就不能選擇liblinear了。也意味著如果我們需要相對精確的多元邏輯回歸不能使用l1正則化了。

penalty

solver

適用場景

l1liblinear

liblinear適用於小資料集;如果選擇l2正則化發現還是過擬合,即**效果差的時候,就可以考慮l1正則化;如果模型的特徵非常多,希望一些不重要的特徵係數歸零,從而讓模型係數稀疏化的話,也可以使用l1正則化。

l2liblinear

libniear只支援多元邏輯回歸的ovr,不支援mvm,但mvm相對精確。

l2lbfgs/newton-cg/sag

較大資料集,支援one-vs-rest(ovr)和many-vs-many(mvm)兩種多元邏輯回歸。

l2sag

如果樣本量非常大,比如大於10萬,sag是第一選擇;但不能用於l1正則化。

fit方法中的sample_weight可以設定單個樣本權重。

其他類

線性模型 對數機率回歸 邏輯回歸 演算法

又常常稱為邏輯回歸,邏輯斯諦回歸 如果是分類任務,如何使用線性回歸模型呢?答案在廣義線性模型的公式中,只需要找到乙個單調可微函式將分類任務的真實標記y 與線性回歸模型的 值聯絡起來。考慮二分類任務,輸出 y y in y 線性回歸的 值 z w tx b z w tx b z wtx b 是實值,需...

機器學習之對數機率回歸理解

對數機率回歸不是回歸,是分類。1.對數機率回歸的形式 由線性回歸的y wx轉化為 y pre sigmoid wx 即是對數機率回歸 2.對數機率回歸的名字來由 對數機率優化的本質 2.1由於上述1中的優化目標是希望 y pre 即sigmoid wx 盡可能等於分類標記y 2.2由sigmoid函...

機器學習入門學習筆記 (2 3)對數機率回歸推導

在以前的部落格 機器學習入門學習筆記 2.1 線性回歸理論推導 中推導了單元線性回歸和多元線性回歸的模型。將線性回歸模型簡寫為 y tx b 對數線性回歸模型可以寫成 ln y t b 本質上仍然是線性回歸,只不過擬合的是非線性的ln函式了。更一般地,考慮單調可微函式g 令y g 1 tx b 這個...