个人总结:从 线性回归 到 逻辑回归 为什么逻辑回归又叫对数几率回归?
邏輯回歸不是回歸算法,是分類算法,可以處理二元分類以及多元分類。
線性回歸
線性回歸的模型是求出特征向量Y和輸入樣本矩陣X之間的線性關(guān)系系數(shù)θ,滿足Y = Xθ。此時(shí)Y是連續(xù)的,所以是回歸模型。
對應(yīng)n維樣本數(shù)據(jù),對應(yīng)的模型是這樣的:
?其中θ為模型參數(shù)。
一般用均方誤差作為損失函數(shù),損失函數(shù)的代數(shù)法表示如下:
用矩陣形式表示為:
采用梯度下降法,則θ的迭代公式為:
如果采用最小二乘法,則θ為
在這里最小二乘看上去比梯度下降更簡便,但是最小二乘有很多局限性:
線性回歸的正則化
Lasso回歸
線性回歸的L1正則化通常稱為Lasso回歸,和一般線性回歸的區(qū)別在于損失函數(shù)增加了一個(gè)L1正則化的項(xiàng),同時(shí)有一個(gè)常數(shù)系數(shù)α來調(diào)節(jié)損失函數(shù)的均方差項(xiàng)和正則化項(xiàng)的權(quán)重,具體Lasso回歸的損失函數(shù)表達(dá)式如下:
?
Lasso回歸可以使一些特征系數(shù)變小,甚至一些絕對值較小的系數(shù)直接變?yōu)?,增強(qiáng)模型泛化能力。
Lasso回歸的求解辦法一般有坐標(biāo)軸下降法和最小角回歸法。但Lasso也有L1范數(shù)的缺點(diǎn),它雖然是凸函數(shù),但并不是處處可微分。
Ridge回歸
線性回歸的L2正則化通常稱為Ridge回歸。損失函數(shù)表達(dá)式如下:
Ridge回歸在不拋棄任何一個(gè)特征的情況下縮小了回歸系數(shù),使得模型相對而言比較穩(wěn)定,但和Lasso回歸相比,會(huì)使模型的特征留的特別多,模型解釋性差。
Ridge回歸一般可以直接采用最小二乘法,令J(θ)的導(dǎo)數(shù)為0:
則最后的θ的結(jié)果:
, 其中E為單位矩陣。
也可以用梯度下降法進(jìn)行表示
?
可以看出,在正則化系數(shù)越大的情況下,回歸系數(shù)越小。當(dāng)正則化系數(shù)大到一定的程度時(shí),所有特征系數(shù)會(huì)越來越趨于0。從模型的復(fù)雜度上來解釋,更小的權(quán)值代表復(fù)雜度更低,也就是說θ越小,網(wǎng)絡(luò)復(fù)雜度越低,但是沒辦法讓它全為0,所以沒法做特征選擇。
接上,上面的Y是連續(xù)的,如果想要Y是離散的,就再做一次函數(shù)轉(zhuǎn)換變?yōu)間(Y)。如果使g(Y)在某個(gè)實(shí)數(shù)區(qū)間的時(shí)候?yàn)轭悇eA,另一個(gè)實(shí)數(shù)區(qū)間的時(shí)候?yàn)轭悇eB。就得到一個(gè)分類模型。如果類別只有兩種,就是二元分類模型。
Ridge的優(yōu)點(diǎn)包含了L2范數(shù)的優(yōu)點(diǎn),它是凸函數(shù),且處處可微分。
二元邏輯回歸
這個(gè)函數(shù)g一般取為sigmoid函數(shù),形式如下:
可以看到,當(dāng)z趨近正無窮,g(z)趨于1,而當(dāng)z趨于負(fù)無窮時(shí),g(z)趨于0。非常適合于分類概率模型。
另外還有一個(gè)很好的導(dǎo)數(shù)性質(zhì):
扯一些題外話,為什么邏輯回歸叫對數(shù)幾率回歸,可跳過:
在使用Tensorflow時(shí),我們可能經(jīng)常會(huì)看到Logits這個(gè)東西,它其實(shí)應(yīng)該分開讀log it,這個(gè)it指的就是幾率(Odds),而Log it指的就是對數(shù)幾率。
我們知道概率是P(A) = 發(fā)生事件A的次數(shù)??/??所有事件的次數(shù)
而幾率 Odds(A) = 發(fā)生事件A的概率/不發(fā)生事件A的概率 = P(A)/1-P(A)
那對數(shù)幾率就是,這里是自然對數(shù),它的圖像是
我們用θ將P進(jìn)行表示:
這不就是我們的sigmoid函數(shù)嘛?
而θ就是我們的對數(shù)幾率,這就是為什么使用了sigmoid函數(shù)的邏輯回歸叫做對數(shù)幾率回歸的原因。
順便值得一提的是,將Logit(θ,對數(shù)幾率)輸入sigmoid函數(shù)時(shí)為二分類概率,輸入softmax函數(shù)時(shí)(此時(shí)Logit是一維向量)便得到了多分類概率。
線性回歸: Y?= θX
令z =?θX,則? ?。其中x為樣本輸入,為模型輸出,理解為某一分類的概率大小。而θ為分類模型的模型參數(shù)。可以通過設(shè)置閾值,比如0.5,當(dāng)比閾值大時(shí),則y為1,反之則y為0。
的值越小,則分類為0的概率越高,反之,值越大的話,分類為1的概率越高。如果靠近臨界點(diǎn)(閾值),則分類準(zhǔn)確率下降。
也可以寫成矩陣的模型:
,其中為模型輸出,為mx1的維度。X為樣本特征矩陣,為mxn維度,θ為模型系數(shù),為nx1向量。
?
二元邏輯回歸的損失函數(shù)
線性回歸的輸出是線性的,所以可用誤差平方和來定義損失函數(shù)。但是邏輯回歸不是連續(xù)的,但是可以用最大似然估計(jì)法來推導(dǎo)出損失函數(shù)。
如果輸出是0和1兩類,假定輸入樣本x,用表示訓(xùn)練樣本x條件下預(yù)測y =? 1的概率,則為相應(yīng)樣本預(yù)測y = 0的概率。
可以看出符合樣本符合0-1分布(伯努力分布),將其合并則有概率分布表達(dá)式
,y為0時(shí)則是預(yù)測y = 0的概率,y為1時(shí)預(yù)測y = 1的概率。
有了概率分布表達(dá)式,則可以通過極大似然估計(jì)來求解需要的模型系數(shù)了。
極大似然估計(jì):最合理的參數(shù)估計(jì)量應(yīng)該使得從模型中抽取該n組樣本觀測值的概率最大。打個(gè)比方:一個(gè)袋子中有20個(gè)球,只有黑白兩色,有放回的抽取十次,取出8個(gè)黑球和2個(gè)白球,計(jì)算袋子里有白球黑球各幾個(gè)。那么我會(huì)認(rèn)為我所抽出的這個(gè)樣本是被抽取的事件中概率最大的。設(shè)取黑球的概率為p, p(黑球=8) = p^8*(1-p)^2,讓這個(gè)值最大。極大似然法就是基于這種思想。
于是,邏輯回歸的似然函數(shù)的代數(shù)表達(dá)式就為極大似然估計(jì),我們要讓以下?lián)p失函數(shù)最大:
,其中m為樣本個(gè)數(shù)。
接著對似然函數(shù)對數(shù)化,得到對數(shù)似然損失函數(shù)表達(dá)式為:
這其實(shí)正好也是二分類模型的交叉熵代價(jià)函數(shù)。
將sigmoid代入,最后得到的式子為:
,這其實(shí)就是Logistic Loss的其中一種寫法,此時(shí)。
當(dāng),可以寫成另外一種形式,。可見當(dāng)yi均為1時(shí)兩個(gè)形式相等,而第一個(gè)形式當(dāng)yi為0時(shí),對應(yīng)第二個(gè)形式y(tǒng)i為-1。
接下來,我們要找到使損失函數(shù)最大的參數(shù)θ。
通過取反,轉(zhuǎn)換為找到損失函數(shù)最小時(shí)的參數(shù)θ,這個(gè)時(shí)候就可以用梯度下降法:
其矩陣形式為:
為什么用極大似然估計(jì)而不用最小二乘法?
實(shí)際上也可以使用最小二乘,但是最小二乘得到的權(quán)重效果比較差,因?yàn)槭褂米钚《朔?#xff0c;目標(biāo)函數(shù)就是差值的平方和,是非凸的,不容易求解,容易陷入到局部最優(yōu)解。
如果使用極大似然估計(jì),目標(biāo)函數(shù)就是對數(shù)似然函數(shù),是關(guān)于(w, b)的高階連續(xù)可導(dǎo)凸函數(shù),可以方便通過一些凸優(yōu)化算法求解,比如梯度下降、牛頓法等。
二元邏輯回歸損失函數(shù)的優(yōu)化方法
常見的有梯度下降法,坐標(biāo)軸下降,牛頓法等。
這里使用梯度下降法進(jìn)行推導(dǎo):
?
二元邏輯回歸正則化
常見的有l(wèi)1正則化和l2正則化。
l1正則化增加了l1范數(shù)作為懲罰,超參數(shù)α作為懲罰系數(shù),調(diào)節(jié)罰項(xiàng)大小。這里用矩陣形式的損失函數(shù)來表示
l1正則化一般用坐標(biāo)軸下降法和最小角回歸法。
l2正則化損失函數(shù)表達(dá)式為:
優(yōu)化方法和普通的邏輯回歸類似。
?
二元邏輯回歸的推廣:多元邏輯回歸
二元邏輯回歸推廣到多元邏輯回歸,比如總是認(rèn)為某種類型為正值,其余為0值(1-vs-rest),我們可以訓(xùn)練k個(gè)二分類的邏輯回歸分類器,第i個(gè)分類器用以區(qū)分每個(gè)樣本是否可以歸為第i類。
可以假設(shè)每個(gè)樣本屬于不同標(biāo)簽的概率服從于幾何分布,使用多項(xiàng)邏輯回歸(softmax regression)來進(jìn)行分類
其中為模型的參數(shù)。一般來說多項(xiàng)邏輯回歸會(huì)有參數(shù)冗余的特點(diǎn),即將同時(shí)加減一個(gè)向量后預(yù)測結(jié)果不變。特別的,當(dāng)類別數(shù)為2時(shí):
利用參數(shù)冗余的特點(diǎn),將所有參數(shù)減去,變成:
這其實(shí)就是邏輯回歸的形式,可以看出二分類邏輯回歸實(shí)際上是多分類邏輯回歸的特例。
多元回歸的推導(dǎo)和二元回歸類似。
調(diào)參
penalty: 正則化選擇參數(shù)。可選“l1”或“l2”,默認(rèn)是l2的正則化。如果L2正則化還是過擬合,可以考慮L1正則化。
solver: 優(yōu)化算法選擇參數(shù)。默認(rèn)“liblinear”,內(nèi)部使用坐標(biāo)軸下降法來迭代優(yōu)化損失函數(shù)。“lbfgs”,擬牛頓法的一種,利用損失函數(shù)二階導(dǎo)數(shù)矩陣即海森矩陣來迭代優(yōu)化損失函數(shù)。“newton-cg”也是牛頓法家族的一種。“sag”即隨機(jī)平均梯度下降,梯度下降法的變種,和普通下降法的區(qū)別是每次迭代僅僅用一部分的樣本來計(jì)算梯度,適合于樣本多的時(shí)候。
multi_class:有ovr(默認(rèn))和multinomial兩種選項(xiàng)。ovr即one-vs-rest(所有都可以看做二元邏輯回歸。具體做法是,對于第K類的分類決策,我們把所有第K類的樣本作為正例,除了第K類樣本以外的所有樣本都作為負(fù)例,然后在上面做二元邏輯回歸,得到第K類的分類模型。其他類的分類模型獲得以此類推),而multinomial即前面提到的many-vs-many(MvM,這里舉MvM的特例one-vs-one(OvO)作講解。如果模型有T類,我們每次在所有的T類樣本里面選擇兩類樣本出來,不妨記為T1類和T2類,把所有的輸出為T1和T2的樣本放在一起,把T1作為正例,T2作為負(fù)例,進(jìn)行二元邏輯回歸,得到模型參數(shù)。我們一共需要T(T-1)/2次分類)。如果是二元邏輯回歸,ovr和multinomial并沒有任何區(qū)別,區(qū)別主要在多元邏輯回歸上。
class_weight:?標(biāo)示分類模型中各種類型的權(quán)重,可以不輸入,即不考慮權(quán)重,或者說所有類型的權(quán)重一樣。“balanced”,那么類庫會(huì)根據(jù)訓(xùn)練樣本量來計(jì)算權(quán)重,某類樣本量越多,則權(quán)重越低,樣本量越少,則權(quán)重越高。
sample_weight:?對于樣本不平衡問題,可以通過sample_weight來調(diào)節(jié)每個(gè)樣本權(quán)重。如果上面兩種方法都用到了,那么樣本的真正權(quán)重是class_weight*sample_weight。
小結(jié)
邏輯回歸是基于伯努利分布假設(shè)的概率模型,通過極大似然估計(jì)的假設(shè),輸出y=1的概率。邏輯回歸也可以看做一個(gè)單層神經(jīng)網(wǎng)絡(luò)添加sigmoid函數(shù)進(jìn)行分類。
邏輯回歸嚴(yán)格來說屬于廣義線性模型,是非線性模型,但是在沒有其他條件下只能對線性可分的數(shù)據(jù)進(jìn)行分類。通過對數(shù)據(jù)進(jìn)行升維(非線性映射),之后線性可分,可以使邏輯回歸進(jìn)行非線性分類。
邏輯回歸是解決工業(yè)規(guī)模問題最流行的算法。但在工業(yè)界很少將連續(xù)值作為邏輯回歸的模型的特征輸入,而是將連續(xù)特征離散化為一系列0,1特征交給邏輯回歸模型,這樣做的優(yōu)勢有:
1、易于模型快速迭代
2、稀疏向量內(nèi)積乘法運(yùn)算速度快,計(jì)算結(jié)果方便存儲,容易擴(kuò)展
3、離散后的特征對異常數(shù)據(jù)有很強(qiáng)魯棒性:比如大于30歲是1,300歲還是1
4、簡化邏輯回歸模型的作用,降低過擬合的風(fēng)險(xiǎn)
優(yōu)點(diǎn):
- 適合需要得到一個(gè)分類概率的場景
- 計(jì)算代價(jià)小,在時(shí)間和內(nèi)存需求上相當(dāng)高效。可應(yīng)用于分布式數(shù)據(jù)
- 對于小噪聲的魯棒性很好,并且不會(huì)受到輕微的多重共線性的特別影響(嚴(yán)重多重共線性則可以使用邏輯回歸結(jié)合L2正則化來解決。但是若想得到一個(gè)簡約模型,L2正則化并不是最好的選擇,因?yàn)樗⒌哪P秃w了全部的特征)
缺點(diǎn):
- 容易欠擬合,分類精度不高
- 數(shù)據(jù)特征有缺失或者特征空間很大時(shí)表現(xiàn)效果并不好
總結(jié)
以上是生活随笔為你收集整理的个人总结:从 线性回归 到 逻辑回归 为什么逻辑回归又叫对数几率回归?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maple用Java做的,Debian1
- 下一篇: 华为等安卓手机的vcf无法导入苹果的iC