邏輯回歸演算法梳理

2021-09-14 07:04:02 字數 3591 閱讀 4370

正則化與模型評估指標

邏輯回歸的優缺點

樣本不均衡問題解決辦法

sklearn引數

線性回歸是回歸問題,**連續型變數,其取值可以在在,0, 1之外。

邏輯回歸是分類問題,屬於某類的概率,也可看做是回歸的分類問題。

引數估計:

線性回歸中使用的是最小化平方誤差損失函式,對偏離真實值越遠的資料懲罰越嚴重。假如使用線性回歸對二分類問題做**,則乙個真值為1的樣本,其**值為50,那麼將會對其產生很大的懲罰,這也和實際情況不符合,更大的**值說明為1的可能性越大,而不應該懲罰的越嚴重

邏輯回歸使用對數似然函式進行引數估計,使用交叉熵作為損失函式,對**錯誤的懲罰是隨著輸出的增大,逐漸逼近乙個常數,這就不存在上述問題了

邏輯回歸就是這樣的乙個過程:面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞。

邏輯回歸選擇 sigmoid 函式作為**函式, 影象如下, g (x) = 11+

當x = 0的時候, g(x) = 0.5

當x < 0的時候, g(x) < 0.5, x越小, g(x)越接近0

當x > 0的時候, g(x) > 0.5,x越大, g(x)越接近1

假設令z(x)=θtx , 則g(z) = g(θtx ) = 11+

e−(θ

tx)\frac

1+e−(θ

tx)1

​可以理解成sigmoid函式將我們的**值轉化為一條上界為1, 下界為0的曲線

我們的目標是盡可能減少誤分類的點。

就是統計將0分為1, 將1分為0的點。

損失函式的本質就是,錯的離譜的點,給的懲罰重一點, 錯的沒那麼離譜的點, 給的懲罰輕一點。

所以我們定義邏輯回歸的代價函式為:

試著思考一下, 在y=1的情況下,隨著h(x)越來越大,**值越接近1。 所以我們的懲罰就要相對輕一點。

看y=1的情況, -log(h(x))是乙個減函式,滿足條件

y=0的情況下, -log(1 - h(x))是乙個增函式, 滿足條件。

至於為什麼取自然對數為底的對數,是因為sigmoid函式有個e, 去自然對數為底的對數,方便處理這個e

接下來,為了方便計算,我們會考慮將上述兩條式子合併成一條。

那麼損失函式就是

首先我們對sigmoid函式進行求導。

接下來我們對θ1進行求導。

前面的1/m 以及求和符號不影響求導。 所以我們只看裡面。

這裡應用剛才算出來的sigmoid函式求導結果。

然後就可以應用梯度下降演算法啦。 找到最優解。

為了避免過擬合問題,又不得不提到正則化了。

樓主還沒搞懂這個問題, 請大家移步這個帖子

增加資料集。

重新取樣(整體)

用不同的評判指標。

比如,當負樣本很小的時候,準確率其實不適用,(因為所有都**正樣本,準確率其實也有可能很高。模型需要的是找出負樣本)

在已有樣本的情況下重新欠取樣。

總觀測 = 1000

欺詐性觀察 = 20

非欺詐性觀察 = 980

事件發生率 = 2%

這種情況下我們複製 20 個欺詐性觀察 20 次。

非欺詐性觀察 = 980

複製少數類觀察之後的欺詐性觀察 = 400

過取樣之後新資料集中的總體觀察 = 1380

欠取樣之後新資料集的事件發生率 = 400/1380 = 29%

penalty : str, 『l1』 or 『l2』, default: 『l2. 預設正則化用l2範數

『newton-cg』, 『sag』 and 『lbfgs』 只支援l2範數

dual : bool, default: false. 預設false

對偶或者原始方法。dual只適用於正則化相為l2 liblinear的情況,通常樣本數大於特徵數的情況下,建議使用false

tol : float, default: 1e-4 預設0.0001

停止迭代的條件

c : float, default: 1.0 預設1

λ的倒數,必須為正, 數值越小, 代表更強的正則化

fit_intercept:預設為true

是否存在截距,預設存在

intercept_scaling : float, default 1. 預設1

只有在solver == liblinear 且有截距時有用。

class_weight : dict or 『balanced』, default: none

預設為none;與「」形式中的類相關聯的權重。如果不給,則所有的類的權重都應該是1。

random_state

整型,預設none;當「solver」==「sag」或「liblinear」時使用。在變換資料時使用的偽隨機數生成器的種子。

solver

,預設: 『liblinear』;用於優化問題的演算法。

對於小資料集來說,「liblinear」是個不錯的選擇,而「sag」和』saga』對於大型資料集會更快。

對於多類問題,只有』newton-cg』, 『sag』, 'saga』和』lbfgs』可以處理多項損失;「liblinear」僅限於「one-versus-rest」分類。

max_iter

最大迭代次數,整型,預設是100;

multi_class : str, , default: 『ovr』

字串型,,預設:『ovr』;如果選擇的選項是「ovr」,那麼乙個二進位制問題適合於每個標籤,否則損失最小化就是整個概率分布的多項式損失。對liblinear solver無效。

##########觀引數有感,邏輯回歸還有很多東西要了解。路漫漫其修遠兮。

邏輯回歸演算法梳理

邏輯回歸演算法梳理 1 邏輯回歸與線性回歸的聯絡與區別 區別 邏輯回歸 值返回的離散值,線性回歸返回的連續值 聯絡 2 邏輯回歸的原理 邏輯回歸就是這樣的乙個過程 面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞 3 邏輯回歸損失...

邏輯回歸演算法梳理

其原理是將樣本的特徵和樣本發生的概率聯絡起來。優化方法 模型評估指標 在資料極度偏斜的情況下,分類準確度存在問題,比如 癌症,因此只用分類準確度是遠遠不夠的。引入以下指標,優點 缺點 樣本的過取樣和欠取樣 直接基於原始訓練集進行學習,但在用訓練好的分類器進行 時,將y 1 y嵌入到決策過程中,稱為 ...

邏輯回歸演算法梳理

區別 線性回歸主要用來解決連續值 的問題,邏輯回歸用來解決分類的問題,輸出的屬於某個類別的概率。面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞 正則化方法 正則化是結構風險最小化策略的實現,是在經驗風險上加乙個正則化項或懲罰項。...