正則化與模型評估指標
邏輯回歸的優缺點
樣本不均衡問題解決辦法
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嵌入到決策過程中,稱為 ...
邏輯回歸演算法梳理
區別 線性回歸主要用來解決連續值 的問題,邏輯回歸用來解決分類的問題,輸出的屬於某個類別的概率。面對乙個回歸或者分類問題,建立代價函式,然後通過優化方法迭代求解出最優的模型引數,然後測試驗證我們這個求解的模型的好壞 正則化方法 正則化是結構風險最小化策略的實現,是在經驗風險上加乙個正則化項或懲罰項。...