邏輯回歸(Logistic Regression)是一種統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法,簡(jiǎn)單易用,卻涉及很多知識(shí)點(diǎn)。正所謂麻雀雖小,五臟俱全。大多數(shù)教程都是從定義和原理出發(fā),來(lái)講解邏輯回歸,容易顯得晦澀難懂。本文將結(jié)合實(shí)例和圖示,幫助讀者在7分鐘內(nèi)搞懂邏輯回歸算法。
功能邏輯回歸一般用于二分類任務(wù),并能給出兩個(gè)類的相應(yīng)概率。 常見的應(yīng)用包括垃圾郵件判別、銀行判斷是否給用戶貸款等等。當(dāng)然,二分類問題可以擴(kuò)展到多分類問題。 做二分類任務(wù),最簡(jiǎn)單的判別函數(shù)是階躍函數(shù),如下圖紅線所示。當(dāng) 時(shí)判斷為正類(1),反之為負(fù)類(0)。但階躍函數(shù)不連續(xù),過于“死板”,不便于后續(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)于概率值。
為何不叫邏輯分類?既然是做分類任務(wù),為什么不叫它“邏輯分類”呢?首先,“邏輯”指的是“l(fā)ogistic”(音譯),“回歸”來(lái)源于線性回歸的 ,使用線性回歸去擬合逼近一個(gè)決策邊界,使得按照這個(gè)邊界進(jìn)行數(shù)據(jù)分類后的總損失最小。以概率0.5作為界線,將數(shù)據(jù)分為正例和反例。當(dāng) ,對(duì)應(yīng)正例(趨近于概率1);當(dāng) ,對(duì)應(yīng)負(fù)例(趨近于概率0)。這是在使用回歸的思想去解決分類問題,所以稱為邏輯回歸。等價(jià)于在線性回歸外包裹了一層sigmoid函數(shù),將離散值映射為0和1之間的概率,以0.5為界。核心問題理解邏輯回歸的一個(gè)核心問題是,如何求解決策邊界 ?對(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)越大,可以通過函數(shù) 體現(xiàn)。模型的訓(xùn)練目的是盡可能減小損失,所以會(huì)讓輸出值朝著1的方向?qū)W習(xí)。是否可以將兩類的cost函數(shù)合并到一塊,方便計(jì)算總損失呢? 通過一個(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ì)算過程如下:最終的結(jié)果是: ,維度是[3, 1],即參數(shù) 。梯度下降法剛剛我們使用了梯度下降法迭代求解最優(yōu)的 ,一共分為3步:當(dāng)cost函數(shù)是凸函數(shù)時(shí),可以保證cost降到全局最小,否則可能只走到局部最小。在cost不斷減小的過程中,將求得最優(yōu)的分界線。使用邏輯回歸,我們可以使用python、C++等語(yǔ)言自己實(shí)現(xiàn),或借助機(jī)器學(xué)習(xí)工具包Sklearn中的接口 LogisticRegression [2]。現(xiàn)在,大家是不是理解了邏輯回歸的思想呢?如有疑問,歡迎交流(vx:cs-yechen)
參 考 文 獻(xiàn)[1] 文小刀機(jī)器學(xué)習(xí)|邏輯回歸:https://www.bilibili.com/video/BV1As411j7zw[2] LogisticRegression: https:///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)”,就可以啦。
感謝支持,比心。
|