0x00 前言
邏輯回歸(Logistic Regression,LR)。在Kaggle競賽的統(tǒng)計中,LR算法以63.5%的出產(chǎn)率,榮獲各領(lǐng)域中“出場率最高的算法”這一殊榮。在實際場景中,邏輯回歸同樣應(yīng)用廣泛,大到國家各項經(jīng)濟(jì)政策的制定,小到計算廣告CTR,都能看到LR算的身影。
除了應(yīng)用廣泛外,LR的建模過程還體現(xiàn)了數(shù)據(jù)建模中很重要的思想: 對問題劃分層次,并利用非線性變換和線性模型的組合,將未知的復(fù)雜問題分解為已知的簡單問題 。因此,我們可以說:理解好邏輯回歸的細(xì)節(jié),就掌握了數(shù)據(jù)建模的精髓。
0x01 什么是邏輯回歸
1.1 線性回歸能解決分類問題么?
其實,線性回歸是不能解決分類問題的。因為我們在使用線性回歸模型時,我們實際上做了3個假設(shè)(實際上有更多的假設(shè),這里只討論最基本的三個):
- 因變量和自變量之間呈線性相關(guān)。
- 自變量與干擾項相互獨(dú)立。
- 沒被線性模型捕捉到的隨機(jī)因素服從正態(tài)分布。
從理論上來說,任何數(shù)據(jù)放在任何模型里都會得到相應(yīng)的參數(shù)估計,進(jìn)而通過模型對數(shù)據(jù)進(jìn)行預(yù)測。但是這并不一定能保證模型效果,有時會得到“錯且無用”的模型,因此建模的過程中需要不斷提出假設(shè)和檢驗假設(shè)。
1.2 用邏輯回歸解決分類問題
有些算法,表面上叫“XX回歸”,背地里卻是解決分類問題的。
其原理是將 樣本的特征 和 樣本發(fā)生的概率 聯(lián)系起來,即, 預(yù)測的是樣本發(fā)生的概率是多少。由于概率是一個數(shù),因此被叫做“邏輯回歸”。
在線性回歸算法的例子中,我們進(jìn)行房價預(yù)測得到的結(jié)果值,就是我們預(yù)測的房價,是一個數(shù)值。
但是我們在邏輯回歸算法中,得到的預(yù)測值是一個概率,然后在概率的基礎(chǔ)上多做一步操作,得到分類的結(jié)果。比如某銀行使用邏輯回歸做風(fēng)控模型,先設(shè)置一個閾值0.5,如果得到它逾期的概率大于0.5,就不放款;否則就放款。對于“放款” or “不放款”來說,實際上是一個標(biāo)準(zhǔn)的分類問題。
通過這個小例子我們可以看到, 在回歸問題上再多做一步,就可以作為分類算法來使用了。邏輯回歸只能解決二分類問題,如果是多分類問題,LR本身是不支持的。
對于線性回歸來說,通過傳遞的自變量x來計算預(yù)測值:。其中實際上就是參數(shù)與樣本的矩陣相乘,。那我們可不可以找到一組參數(shù),與特征矩陣相乘,直接得到表示概率的結(jié)果呢?
單單從應(yīng)用的角度來說,是可以的,但是并不好。這是因為 線性回歸得到值是沒有限制的,值域從負(fù)無窮到正無窮的值。而對于概率來說,其值域為[0,1],是有限制的。如果直接使用線性回歸得到的結(jié)果,使得最終擬合的結(jié)果可信程度較差。
那么下面我們就看一看,邏輯回歸背后的數(shù)學(xué)原理。
0x02 LR算法數(shù)學(xué)推導(dǎo)
2.1 決策背后的博弈
邏輯回歸使用什么樣的方式來得到一個事件發(fā)生的概率值的呢?分類的背后又是什么呢?
以銀行理財產(chǎn)品營銷場景為例,對于銀行來說,客戶只有“買”和“不買”兩種行為,但是這個行為實際上是客戶在接到營銷行為,如電話營銷、短信營銷之后,經(jīng)過內(nèi)心博弈產(chǎn)生的最終結(jié)果。
客戶為什么會做出“買”或“不買”這樣的被分類的行為?如果客戶手里有一筆暫時不會動用的閑錢,且他希望能夠通過投資行為獲利,并且對盈利效果表示認(rèn)可,則客戶會考慮購買理財產(chǎn)品。但是反過來,如果客戶沒有錢,或者他有其他更好的投資渠道,或者厭惡投資風(fēng)險,那么客戶就不會購買。從經(jīng)濟(jì)學(xué)的角度來說,購買理財產(chǎn)品這一行為,既能給客戶帶來正效用,也能給客戶帶來負(fù)效用。 當(dāng)客戶主觀認(rèn)為正效用大于負(fù)效用時,可就是購買行為帶來的整體效用大于0時,客戶就會購買,反之則不然 。
2.2 博弈中的隱含變量
那么我們從數(shù)學(xué)角度出發(fā),分析上述場景:假設(shè)有自變量集合,這些參數(shù)表示這種特征,決定購買行為對客戶的效用,包括正效用和負(fù)效用。我們將客戶的購買行為記為y,其中y=1表示客戶購買理財產(chǎn)品;y=0表示客戶沒有購買。于是可以得到下面的公式:
如果,我們 假設(shè)正負(fù)效用函數(shù)與自變量特征參數(shù)成線性相關(guān) ,則根據(jù)可以得出:。其中是相互獨(dú)立的隨機(jī)變量,且都服從正態(tài)分布。
在得到正負(fù)效用線性函數(shù)之后,就可以 用正效用減去負(fù)效用的解是否大于0作為分類依據(jù) 。令,則可以得到:。如果我們將其轉(zhuǎn)換為分類問題,則可以得到階梯函數(shù)如下:
更進(jìn)一步,我們將上面的函數(shù)轉(zhuǎn)變?yōu)榍蟾怕剩纯蛻糍徺I理財產(chǎn)品的概率如下:
其中, 是隨機(jī)變量的累積分布函數(shù) ,表示客戶購買的比例。
這個模型在學(xué)術(shù)上被稱作是 probit回歸 (雖然是名字中有“回歸”兩個字,但是實際上解決的還是分類問題)。
在模型搭建的過程中,我們假設(shè)了客戶內(nèi)心博弈的正負(fù)效用變量:,因此這類隱藏變量模型(latent variable model);而正負(fù)效用變量:被稱為隱藏變量(latent variable)。
由此可見, 對于一個分類問題,由于“窗口效用”,我們只能看見客戶的購買行為,但是在分類的背后,是隱藏變量之間的博弈,我們通過搭建隱藏變量的模型,來求出客戶購買的概率 。
2.3 sigmoid函數(shù)與邏輯回歸
在上一節(jié)我們得到了probit回歸在數(shù)學(xué)上是比較完美的,但是正態(tài)分布的累積分布函數(shù),其表達(dá)形式很復(fù)雜(復(fù)雜到懶得把公式寫出來),且沒有解析表達(dá)式。因此直接在probit回歸上做參數(shù)估計是比較困難的。但是好在我們可以對其做近似,讓其在數(shù)學(xué)上更加簡潔。
此時,神奇的數(shù)學(xué)家們發(fā)現(xiàn):正態(tài)分布在線性變換下保持穩(wěn)定,而邏輯分布可以很好地近似正態(tài)分布。因此可以使用標(biāo)準(zhǔn)邏輯分布的累積分布函數(shù)來替換正態(tài)分布的累積分布函數(shù)。
標(biāo)準(zhǔn)邏輯分布的概率密度函數(shù)為,對應(yīng)的積累分布函數(shù)為:
在學(xué)術(shù)界被稱為sigmoid函數(shù),是在數(shù)據(jù)科學(xué)領(lǐng)域,特別是神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)領(lǐng)域中非常重要的函數(shù)!。其圖像如下圖所示,呈S狀,因此也被稱為“S函數(shù)”。當(dāng)t趨近于正無窮時,趨近于0,則趨近于1;當(dāng)t趨近于負(fù)無窮時,趨近于正無窮,則趨近于0。因此該函數(shù)的值域為(0,1)。
兩種不同的效用函數(shù)(假定他們都滿足線性回歸模型的假設(shè))相互競爭時,其中某一方最終勝出的概率分布在數(shù)學(xué)上可近似為sigmoid函數(shù)。通俗講:sigmoid函數(shù)表述了某一方競爭勝出的概率。
將效用函數(shù)之差(同樣是線性回歸模型)帶入sigmoid函數(shù)中,當(dāng)t>0時,得到的結(jié)果是概率值p>0.5;當(dāng)t<0時,得到的結(jié)果是p<0.5。因此,實際上我們得到是這樣的公式:
至此,大名鼎鼎的邏輯回歸模型(logit regression)如下,其中表示客戶特征,表示模型參數(shù):
0xFF 總結(jié)
在本篇文章中,我們學(xué)習(xí)了邏輯回歸的算法模型。
首先,邏輯回歸是解決分類問題的,本質(zhì)是求概率再分類。在分類結(jié)果的背后是隱藏變量的博弈,我們認(rèn)為隱藏變量與特征是線性相關(guān)的,因此就可以對隱藏變量之差求概率(得到隨機(jī)變量的累積分布函數(shù)),得到probit回歸模型。為了使數(shù)學(xué)公式更為簡單,使用sigmoid函數(shù)去近似,最終得到邏輯回歸模型:
根據(jù)建模過程,我們已經(jīng)得到了邏輯回歸模型,下一步就是找到損失函數(shù),去盡可能地擬合數(shù)據(jù)。
那么對于給定的樣本數(shù)據(jù)集X,y,我們?nèi)绾握业揭唤M參數(shù),使得用這樣的方式,可以最大程度獲得樣本數(shù)據(jù)集X對應(yīng)的分類輸出y?






