1.簡介
首先邏輯回歸(Logistic Regression)是一個(gè)分類算法,它可以處理二元分類以及多元分類,是機(jī)器學(xué)習(xí)中一個(gè)非常非常常見的模型,在實(shí)際生產(chǎn)環(huán)境中也常常被使用,是一種經(jīng)典的分類模型(不是回歸模型)
2.模型構(gòu)建
2.1 線性回歸
為了更容易理解LR,我先說一下線性回歸吧,線性回歸的主要思想就是通過歷史數(shù)據(jù)擬合出一條直線,用這條直線對(duì)新的數(shù)據(jù)進(jìn)行預(yù)測。
對(duì)于一元的自變量:
模型參數(shù)為w,b
對(duì)于每個(gè)樣本誤差為:
最小誤差平方和(線性回歸是連續(xù)的所以可以用模型誤差平方和定義損失函數(shù)):
這里取最小誤差平方和是因?yàn)檎`差有正有負(fù),防止正負(fù)抵消影響誤差判斷
對(duì)于多元的自變量:
自變量可以看作是一個(gè)向量,則方程可記為(i為樣本特征的數(shù)量,j為樣本的數(shù)量):
因?yàn)檫@里的b最終會(huì)是一個(gè)常數(shù),需要注意的是這里的w和x的維度是相同的,故上述公式可變形為:
這時(shí)候整個(gè)公式就可以簡化為
我們只要研究參數(shù)w就可以了,我們最終的學(xué)習(xí)目標(biāo)為使平方差和最小時(shí)w的值:
根據(jù)函數(shù)的特性,要得到最小平方差和,對(duì)w求導(dǎo),導(dǎo)數(shù)為0的地方就是函數(shù)的最小值
令其等于0,得:
然后利用最小二乘法(最小平方和)得到w
注:這里有個(gè)問題,如果不是可逆矩陣,我們可以給他加個(gè)常數(shù)矩陣使他可逆
λ的值可以通過測試得到
2.2 邏輯回歸(二元)
邏輯回歸有個(gè)logit函數(shù):
下面先研究一下這個(gè)函數(shù)原理::
對(duì)于二分類問題,最終因變量y只有兩種情況,且兩種情況概率加起來等于1
eg:一個(gè)事件發(fā)生概率為:p(y=1|x),不發(fā)生概率為:p(y=0|x)
假定p(y=1|x)依賴于線性函數(shù)發(fā)f(x) = wx,但是wx值域在(-∞,+∞)
而兩個(gè)概率的比值卻是(0,+∞),我們對(duì)wx進(jìn)行指數(shù)變換,那么就可以得到:
則可以得到:
現(xiàn)在我們把公式(1)兩邊同時(shí)進(jìn)行取log運(yùn)算,結(jié)果就是logit函數(shù)
而公式(2)就是我們下面要引出的sigmoid函數(shù),也就是LR的模型
2.3 sigmoid函數(shù)
LR算法也可以看作是把線性函數(shù)的結(jié)果映射到了sigmod函數(shù)中
sigmoid函數(shù)公式及模型圖:
則對(duì)于二分類問題類別概率為:
3.損失函數(shù)
從前文可以看到邏輯回歸并不是連續(xù)的,所以不能用模型的誤差平方和定義損失函數(shù),我們可以用極大似然推導(dǎo)邏輯回歸的損失函數(shù)
3.1 極大似然估計(jì)
這里我先解釋一下什么是極大似然估計(jì):eg.一個(gè)袋子中有20個(gè)球,只有黑白兩色,有放回的抽取十次,取出8個(gè)黑球和2個(gè)白球,計(jì)算袋子里有白球黑球各幾個(gè)?
我們假設(shè)每次取出黑球的概率為p,那么白球概率就為(1-p)
則:
我們可以認(rèn)為是按照最大概率來抽取的樣本,對(duì)p進(jìn)行求導(dǎo),讓導(dǎo)數(shù)為0.即可得到黑球?qū)?yīng)的概率。極大似然估計(jì)就是這種思想
3.2 二元邏輯回歸損失函數(shù)
根據(jù)極大似然估計(jì)思想,則假設(shè)二元邏輯回歸的輸出只有0和1兩種,則:
為了方便求解,我們用負(fù)對(duì)數(shù)似然函數(shù)最小化:
損失函數(shù)的本質(zhì)是如果預(yù)測對(duì)了可以不懲罰,如果錯(cuò)了,就加大懲罰,也就是讓損失函數(shù)變得較大,而-log函數(shù)在[0,1]之間正好符合這一點(diǎn)。另外,前面線性回歸我們損失函數(shù)是用誤差平方和,而LR是廣義的線性回歸,模型是sigmoid函數(shù),如果也用誤差平方和的話,對(duì)于sigmoid求導(dǎo)無法保證是凸函數(shù),在優(yōu)化過程中得到的解可能是局部的最優(yōu)解不是全局的,最后,取對(duì)數(shù)之后,求導(dǎo)更方便
3.3 損失函數(shù)優(yōu)化
求導(dǎo)之前我們先對(duì)sigmoid函數(shù)變形一下:
最終的結(jié)果就是我們所需要的梯度,一般我們采用梯度下降法找到最優(yōu)解w,則w的每次迭代公式為:
α為梯度下降法的步長
我們?cè)谶M(jìn)行計(jì)算時(shí)候,會(huì)先設(shè)置個(gè)初始的w,然后當(dāng)函數(shù)值變化較小時(shí),停止
4.總結(jié)
邏輯回歸尤其是二元邏輯回歸是非常常見的模型,訓(xùn)練速度很快,雖然使用起來沒有支持向量機(jī)(SVM)那么占主流,但是解決普通的分類問題是足夠了,訓(xùn)練速度也比起SVM要快不少的