邏輯回歸(Logistic Regression)是一種統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法,簡(jiǎn)單易用,卻涉及很多知識(shí)點(diǎn)。正所謂麻雀雖小,五臟俱全。大多數(shù)教程都是從定義和原理出發(fā),來(lái)講解邏輯回歸,容易顯得晦澀難懂。本文將結(jié)合實(shí)例和圖示,幫助讀者在7分鐘內(nèi)搞懂邏輯回歸算法。
功能
邏輯回歸一般用于二分類(lèi)任務(wù),并能給出兩個(gè)類(lèi)的相應(yīng)概率。
常見(jiàn)的應(yīng)用包括垃圾郵件判別、銀行判斷是否給用戶貸款等等。當(dāng)然,二分類(lèi)問(wèn)題可以擴(kuò)展到多分類(lèi)問(wèn)題。
做二分類(lèi)任務(wù),最簡(jiǎn)單的判別函數(shù)是階躍函數(shù),如下圖紅線所示。當(dāng) 時(shí)判斷為正類(lèi)(1),反之為負(fù)類(lèi)(0)。但階躍函數(shù)不連續(xù),過(guò)于“死板”,不便于后續(xù)求導(dǎo)優(yōu)化。因此用logistic function(上圖黑線)代替,因?yàn)槌尸F(xiàn)“S”形,也稱為 sigmoid function,對(duì)應(yīng)公式:
定義域?yàn)檎麄€(gè)實(shí)數(shù)集合,值域?yàn)?~1,相當(dāng)于概率值。
為何不叫邏輯分類(lèi)?
既然是做分類(lèi)任務(wù),為什么不叫它“邏輯分類(lèi)”呢?首先,“邏輯”指的是“l(fā)ogistic”(音譯),“回歸”來(lái)源于線性回歸的 ,使用線性回歸去擬合逼近一個(gè)決策邊界,使得按照這個(gè)邊界進(jìn)行數(shù)據(jù)分類(lèi)后的總損失最小。以概率0.5作為界線,將數(shù)據(jù)分為正例和反例。當(dāng) ,對(duì)應(yīng)正例(趨近于概率1);當(dāng) ,對(duì)應(yīng)負(fù)例(趨近于概率0)。這是在使用回歸的思想去解決分類(lèi)問(wèn)題,所以稱為邏輯回歸。等價(jià)于在線性回歸外包裹了一層sigmoid函數(shù),將離散值映射為0和1之間的概率,以0.5為界。核心問(wèn)題
理解邏輯回歸的一個(gè)核心問(wèn)題是,如何求解決策邊界 ?對(duì)于二維輸入樣本點(diǎn), 等價(jià)于:求最優(yōu)決策邊界,等價(jià)于求 的值。當(dāng)樣本的真實(shí)標(biāo)簽 是1和0時(shí),我們分別定義一個(gè)損失函數(shù):以 為例,當(dāng)模型的預(yù)測(cè)值 趨向1時(shí),損失函數(shù)取值也應(yīng)該越來(lái)越??;反之,當(dāng) 趨向0時(shí),損失函數(shù)值越來(lái)越大,可以通過(guò)函數(shù) 體現(xiàn)。模型的訓(xùn)練目的是盡可能減小損失,所以會(huì)讓輸出值朝著1的方向?qū)W習(xí)。是否可以將兩類(lèi)的cost函數(shù)合并到一塊,方便計(jì)算總損失呢?
通過(guò)一個(gè)“聰明”的對(duì)數(shù)似然函數(shù),我們達(dá)到了目的:對(duì)于下圖的樣本點(diǎn),綠線是決策邊界。綠線上部 ,距離綠線越遠(yuǎn) 越大,預(yù)測(cè)值 越接近1。求解邊界
明確了損失函數(shù)后,我們來(lái)計(jì)算模型參數(shù)的最優(yōu)值。首先需要計(jì)算cost對(duì)參數(shù) 的導(dǎo)數(shù),再借助梯度下降等算法微調(diào)參數(shù)值,不斷逼近最優(yōu)解。假設(shè)我們有10個(gè)樣本點(diǎn),每個(gè)樣本包含3個(gè)特征,則 維度為[10, 3], 維度為[3, 1], 和 的維度為[10, 1]。cost的維度也是[10, 1]。cost和H相關(guān),H和Z相關(guān),Z和WX相關(guān),存在關(guān)系映射:cost~H~Z~X。根據(jù)鏈?zhǔn)角髮?dǎo)法則,整個(gè)計(jì)算過(guò)程如下:最終的結(jié)果是: ,維度是[3, 1],即參數(shù) 。梯度下降法
剛剛我們使用了梯度下降法迭代求解最優(yōu)的 ,一共分為3步:當(dāng)cost函數(shù)是凸函數(shù)時(shí),可以保證cost降到全局最小,否則可能只走到局部最小。在cost不斷減小的過(guò)程中,將求得最優(yōu)的分界線。使用邏輯回歸,我們可以使用python、C++等語(yǔ)言自己實(shí)現(xiàn),或借助機(jī)器學(xué)習(xí)工具包Sklearn中的接口 LogisticRegression [2]。現(xiàn)在,大家是不是理解了邏輯回歸的思想呢?如有疑問(wèn),歡迎交流(vx:cs-yechen)
參 考 文 獻(xiàn)
[1] 文小刀機(jī)器學(xué)習(xí)|邏輯回歸:https://www.bilibili.com/video/BV1As411j7zw[2] LogisticRegression: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
由于微信平臺(tái)算法改版,公號(hào)內(nèi)容將不再以時(shí)間排序展示,如果大家想第一時(shí)間看到我們的推送,強(qiáng)烈建議星標(biāo)我們和給我們多點(diǎn)點(diǎn)【在看】。星標(biāo)具體步驟為:
(1)點(diǎn)擊頁(yè)面最上方'AINLP',進(jìn)入公眾號(hào)主頁(yè)。
(2)點(diǎn)擊右上角的小點(diǎn)點(diǎn),在彈出頁(yè)面點(diǎn)擊“設(shè)為星標(biāo)”,就可以啦。
感謝支持,比心
。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。