邏輯回歸的算法思想

Logistic regression(簡(jiǎn)稱LR)是機(jī)器學(xué)習(xí)最常用的算法,經(jīng)常用來(lái)處理二分類問(wèn)題

我們舉一個(gè)生活案例,畢業(yè)的學(xué)生都要求職,如果你看上了一家企業(yè)惠呼,并把你的簡(jiǎn)歷投遞給該企業(yè)的hr,我們省略中間N輪的面試筆試經(jīng)過(guò)峦耘,那么這件事情對(duì)于你會(huì)產(chǎn)生兩個(gè)結(jié)果剔蹋,你被錄取了或者你被淘汰了。假設(shè)我們有一個(gè)模型算法用來(lái)預(yù)測(cè)這件事情的結(jié)果辅髓,那么你通過(guò)這個(gè)模型來(lái)預(yù)測(cè)結(jié)果泣崩,但是你會(huì)發(fā)現(xiàn)少梁,模型只會(huì)直接告訴你你被錄取(你很開(kāi)心)或者你被淘汰(你很絕望)矫付,這樣不免會(huì)顯得太粗魯太直接凯沪,你更希望模型可以告訴你一個(gè)可能性,比如說(shuō)你非常有希望买优,有一點(diǎn)希望妨马,不怎么有希望,你想都不用想了等等信息杀赢,這樣會(huì)使得結(jié)果更加人

我們的世界是隨機(jī)的烘跺,比如今天會(huì)不會(huì)下雨,今天去散步會(huì)偶遇到誰(shuí)葵陵,開(kāi)車走這條路會(huì)不會(huì)擁堵液荸,有哪幾家企業(yè)相中你的offer,玩游戲掉落的裝備脱篙,同一間辦公室兩個(gè)人生日相同的可能性,甚至蝴蝶效應(yīng)等伤柄,每一件事件的發(fā)生都可以用可能性或者幾率來(lái)表達(dá)绊困,而促使該事件發(fā)生的條件越充分,事件發(fā)生的可能性也就越大适刀,所以人類發(fā)明了概率來(lái)描述這一現(xiàn)象

假設(shè)y是我們想要的結(jié)果概率秤朗,而簡(jiǎn)歷有m個(gè)因素可以理解成m個(gè)因變量,我們將m個(gè)因變量表示為x1笔喉,x2取视,...,xm常挚,那么公司會(huì)怎么考慮這些因素呢作谭?最快速的方式就是把這些因素對(duì)應(yīng)的得分進(jìn)行求和,和的結(jié)果越大表示錄用奄毡,也就是屬于錄用這個(gè)類別折欠,反之和的結(jié)果越小,就屬于淘汰這個(gè)類別吼过。我們將每個(gè)因變量對(duì)應(yīng)的權(quán)值表示為θ1锐秦,θ2,...盗忱,θm酱床,將因變量乘以相應(yīng)的權(quán)值得到的加權(quán)和就是最后的得分,根據(jù)得分就可以進(jìn)行歸類

本章知識(shí)點(diǎn):

1趟佃、多項(xiàng)式邏輯函數(shù)

2扇谣、sigmoid非線性函數(shù)

3慷垮、分類任務(wù)函數(shù)

4最大似然函數(shù)和其對(duì)數(shù)化處理

5揍堕、最大似然函數(shù)的偏導(dǎo)數(shù)求解

6料身、梯度上升法

7、隨機(jī)梯度上升法

一. 邏輯函數(shù)

假設(shè)我們的數(shù)據(jù)有n個(gè)獨(dú)立的維度衩茸,我們用x1芹血,x2,...楞慈,xn來(lái)表示幔烛,用w1,w2囊蓝,...饿悬,wn表示每個(gè)維度的權(quán)值,我們叫做回歸系數(shù)聚霜,分類結(jié)果y=0或者y=1表示兩個(gè)類別狡恬,顯然w1,w2蝎宇,...弟劲,wn就是模型待求解的參數(shù)列表

首先我們需要擬合出一個(gè)多項(xiàng)式邏輯函數(shù)f(x),用來(lái)表示其加權(quán)和結(jié)果

多項(xiàng)式邏輯函數(shù)

上式的右邊我們用W表示這n個(gè)回歸系數(shù)向量姥芥,X表示n維樣本特征向量兔乞,則根據(jù)向量的乘法,W的轉(zhuǎn)置和X的點(diǎn)積就可以表示加權(quán)和結(jié)果凉唐。

二. sigmoid非線性函數(shù)

現(xiàn)在我們希望f(x)具有良好的邏輯判斷性質(zhì)庸追,最好可以直接表達(dá)出樣本被分到某類的概率,比如f(x) > 0.5的時(shí)候表示x被分到正類台囱,f(x) < 0.5表示分到反類淡溯,并且我們希望f(x)的結(jié)果總是在[0,1]之間可以直接表示概率玄坦,那么我們需要一個(gè)函數(shù)g(z)來(lái)映射f(x)血筑,于是我們會(huì)用到sigmoid函數(shù):

sigmoid函數(shù)
sigmoid函數(shù)圖像

很明顯,sigmoid滿足我們對(duì)g(z)的一切要求煎楣,定義域?yàn)槿我鈱?shí)數(shù)R豺总,值域正好在[0,1]之間择懂,并且在x=0處值為0.5喻喳,整個(gè)函數(shù)單調(diào)遞增且非線性變化,我們就可以根據(jù)g(z)的值是否大于0.5來(lái)判斷樣本x屬于正類還是反類

現(xiàn)在我們?cè)O(shè)預(yù)測(cè)函數(shù)h(x)來(lái)計(jì)算樣本x的類別困曙,那么怎么映射h(x)到sigmoid函數(shù)上呢表伦?

設(shè)h(x)表示預(yù)測(cè)出樣本x屬于正類的概率谦去,那么樣本x屬于反類的概率就為1 - h(x),我們定義讓步比為正類和反類的比值蹦哼,那么引入對(duì)數(shù)后我們得到下面關(guān)系

讓步比

我們利用對(duì)數(shù)來(lái)求解出h(x)

sigmoid映射h(x)

從上面式子可以看出鳄哭,我們可以用g(z)來(lái)直接映射f(x)就可以得到h(x),即h(x) = g(f(x))纲熏,且h(x)擁有sigmoid函數(shù)的一切特性妆丘,h(x)即為模型的預(yù)測(cè)函數(shù)

線性模型加權(quán)和
加權(quán)和非線性輸出

從上面兩個(gè)模型我們也可以證明出:邏輯回歸的本質(zhì)就是一個(gè)線性分類模型,它通過(guò)一個(gè)非線性化映射輸出一個(gè)概率值來(lái)評(píng)判分類的標(biāo)準(zhǔn)

三. 分類任務(wù)函數(shù)

設(shè)P(y=1|x)表示樣本x屬于正類的概率局劲,那么P(y=0|x) 表示反類的概率勺拣,我們需要用一個(gè)分類函數(shù)用來(lái)表示P(y|x)是屬于正類還是反類的概率,于是得到下面分類函數(shù)

每個(gè)樣本(xi鱼填,yi)出現(xiàn)的概率

仔細(xì)觀察上式药有,當(dāng)yi=1時(shí),p(y|x)即表示樣本x屬于正類的概率苹丸,而當(dāng)yi=0時(shí)愤惰,p(y|x)即表示樣本x屬于反類的概率,而P(y=1|x)我們可以用之前的預(yù)測(cè)函數(shù)h(x)來(lái)表示谈跛,于是分類函數(shù)可以整合為

分類函數(shù)

四. 最大似然函數(shù)及其對(duì)數(shù)化

現(xiàn)在我們寫出了預(yù)測(cè)函數(shù)和分類函數(shù)羊苟,以及擁有二分類數(shù)據(jù)樣本集做訓(xùn)練,而回歸因子W未知感憾,那么怎么求解出W呢?下一步令花,我們需要構(gòu)造出損失函數(shù)Loss(代價(jià)函數(shù))

那么我們的損失函數(shù)為什么不用最小二乘法了呢阻桅?(請(qǐng)比較線性回歸的損失函數(shù)思考)

我們知道,邏輯回歸可以被視為一個(gè)廣義上的線性模型兼都,而它的外層函數(shù)g是sigmoid函數(shù)嫂沉,問(wèn)題就在這里,g是一個(gè)非線性函數(shù)扮碧,如果我們把預(yù)測(cè)函數(shù)h(x)帶入最小二乘法函數(shù)中趟章,會(huì)發(fā)現(xiàn)損失函數(shù)圖像是非凸函數(shù)

非凸函數(shù)

由于g的非線性使得用最小二乘法表示的loss擁有多個(gè)局部極小值,這樣會(huì)影響我們使用梯度下降法求解最小值時(shí)慎王,有非常大的概率不是全局最優(yōu)解蚓土,只是得到局部最小值,這也就解釋了我們不能使用最小二乘法來(lái)表示損失

那我們需要找到什么樣的函數(shù)來(lái)表示模型的損失呢赖淤?

回想我們從小做數(shù)學(xué)題蜀漆,大多都是根據(jù)一些已知條件來(lái)推算結(jié)果,而當(dāng)下的模型是已經(jīng)知道了結(jié)果咱旱,需要尋找使得該結(jié)果出現(xiàn)的概率最大的條件确丢,而這個(gè)條件就是W

顯然绷耍,我們需要構(gòu)造的函數(shù)是統(tǒng)計(jì)模型中參數(shù)的函數(shù),而這個(gè)函數(shù)就是似然函數(shù)鲜侥。它在觀察到結(jié)果的時(shí)候褂始,對(duì)產(chǎn)生該結(jié)果的參數(shù)列表進(jìn)行估計(jì),使得該參數(shù)列表最具有合理性

通過(guò)之前的分析描函,我們需要找到一個(gè)凸函數(shù)給預(yù)測(cè)函數(shù)h(x)作為損失函數(shù)崎苗,為此我們寫出似然函數(shù)L(w),因?yàn)槊總€(gè)樣本互相獨(dú)立赘阀,那么n個(gè)樣本出現(xiàn)的似然度為

似然函數(shù)

顯然益缠,似然函數(shù)就是我們的損失函數(shù),我們需要求出使得似然函數(shù)L(w)最大的系數(shù)組合基公,該組合即為W幅慌,即問(wèn)題轉(zhuǎn)化為求解最大似然函數(shù)

我們先準(zhǔn)備嘗試用數(shù)學(xué)知識(shí)直接對(duì)L(w)求導(dǎo),計(jì)算其導(dǎo)數(shù)為0的解析解轰豆,如何存在解析解胰伍,那么我們就可以直接對(duì)損失函數(shù)進(jìn)行優(yōu)化了,為此我們需要變換L(w):取自然對(duì)數(shù)酸休,然后化簡(jiǎn)

對(duì)數(shù)化似然函數(shù)

我們將預(yù)測(cè)函數(shù)h(x)和邏輯函數(shù)f(x)帶入上式l(w)再次化簡(jiǎn)可得

損失函數(shù)最終表達(dá)式

至此骂租,我們終于找到了損失函數(shù)Loss和邏輯函數(shù)f(x)的關(guān)系,最優(yōu)化Loss函數(shù)斑司,求出相對(duì)的f(x)渗饮,也就找到了回歸因子W,下面我們需要對(duì)參數(shù)W求偏導(dǎo)數(shù)

五. 最大似然函數(shù)的偏導(dǎo)數(shù)

最大似然函數(shù)參數(shù)的偏導(dǎo)數(shù)

至此宿刮,我們一步步推導(dǎo)出了最大似然函數(shù)的偏導(dǎo)數(shù)互站,令該導(dǎo)數(shù)為0可以得到極值,但是很不幸的是僵缺,它無(wú)法通過(guò)直接解析來(lái)求解胡桃,所以我們需要利用迭代逼近,也就是梯度下降(上升)法來(lái)求解極值

六. 梯度上升算法

機(jī)器學(xué)習(xí)中梯度下降似乎已經(jīng)無(wú)處不在使用了磕潮,它是求解最優(yōu)化函數(shù)問(wèn)題中最常見(jiàn)的算法翠胰,顯然,在似然函數(shù)作為損失函數(shù)的模型中自脯,我們需要計(jì)算梯度上升(和梯度下降方向相反)來(lái)得到最大似然值

我們從構(gòu)造邏輯函數(shù)f(x)之景、預(yù)測(cè)函數(shù)h(x)、分類函數(shù)P(y|x)冤今、似然函數(shù)L(w)闺兢,對(duì)數(shù)化似然函數(shù)得到和f(x)相關(guān)的l(w)作為損失函數(shù),最后對(duì)l(w)求偏導(dǎo)數(shù),才可以寫出梯度上升式子

梯度上升更新回歸因子

上式就是最基本的梯度上升法屋谭,其中α設(shè)置為學(xué)習(xí)率脚囊,表示每次迭代上升的幅度(步長(zhǎng)),這個(gè)式子的作用即是每次迭代更新回歸因子W來(lái)逼近最大值(最合理的參數(shù)列表)

梯度下降法求解回歸因子
二分類結(jié)果迭代500次

從結(jié)果中可以看到模型在梯度上升算法優(yōu)化后桐磁,準(zhǔn)確率大概在95%左右

七. 隨機(jī)梯度上升法

已經(jīng)有了梯度上升悔耘,為什么還需要隨機(jī)梯度上升呢,這二者有什么區(qū)別呢我擂?

我們來(lái)分析一下代碼中梯度上升式子衬以,weights = weights + alpha * x.T * (y - hx),顯然校摩,每一次的迭代更新都需要計(jì)算所有數(shù)據(jù)的損失函數(shù)看峻,當(dāng)訓(xùn)練數(shù)據(jù)較小還好,但是如果有數(shù)十億樣本衙吩,那么上式的矩陣乘法消耗的時(shí)間將會(huì)非常大互妓,于是我們考慮使用隨機(jī)梯度上升來(lái)更新參數(shù)列表

所謂的隨機(jī)梯度上升,指的是每次迭代更新參數(shù)時(shí)不需要用到所有的數(shù)據(jù)樣本矩陣x和y坤塞,而是使用樣本中隨機(jī)選出的一個(gè)數(shù)據(jù)點(diǎn)來(lái)計(jì)算梯度并更新參數(shù)冯勉,這樣可以在新的樣本到來(lái)時(shí)對(duì)模型進(jìn)行增量式更新

可以看出隨機(jī)梯度上升法是一個(gè)在線學(xué)習(xí)算法,相比之前的梯度上升法一次性處理整個(gè)數(shù)據(jù)樣本可以被稱作批處理摹芙,訓(xùn)練之前我們一般將訓(xùn)練數(shù)據(jù)隨機(jī)打亂在進(jìn)行隨機(jī)梯度算法

隨機(jī)梯度上升算法求解回歸因子
二分類結(jié)果迭代200次

從結(jié)果中可以看到模型在隨機(jī)梯度上升算法優(yōu)化后灼狰,準(zhǔn)確率大概在98%左右

最后從一元線性回歸到邏輯回歸的原理分析過(guò)程中,我們可以總結(jié)出機(jī)器學(xué)習(xí)算法的基本步驟如下:

1浮禾、對(duì)于一個(gè)實(shí)際問(wèn)題交胚,我們需要使用數(shù)學(xué)語(yǔ)言來(lái)描述并建立數(shù)學(xué)模型,比如回歸模型還是分類模型等

2盈电、對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗/補(bǔ)充

3承绸、建立模型的預(yù)測(cè)函數(shù)來(lái)描述問(wèn)題的解(線性模型,非線性模型)

4挣轨、建立模型的損失(代價(jià))函數(shù)來(lái)最優(yōu)化問(wèn)題的解(比如最小二乘法,似然函數(shù)等)

5轩猩、純數(shù)學(xué)推導(dǎo)出損失函數(shù)關(guān)于帶求解參數(shù)的偏導(dǎo)數(shù)表達(dá)式

6卷扮、在偏導(dǎo)數(shù)無(wú)法計(jì)算出其解析解或者無(wú)法求導(dǎo)的情況下,借助迭代算法一步步逼近最優(yōu)解(梯度下降均践,隨機(jī)梯度下降等)

7晤锹、編程實(shí)現(xiàn)整個(gè)算法,并嘗試調(diào)整超參數(shù)組合得到最優(yōu)模型

邏輯回歸代碼見(jiàn):邏輯回歸的基本原理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彤委,一起剝皮案震驚了整個(gè)濱河市鞭铆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖车遂,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件封断,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舶担,警方通過(guò)查閱死者的電腦和手機(jī)坡疼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衣陶,“玉大人柄瑰,你說(shuō)我怎么就攤上這事〖艨觯” “怎么了教沾?”我有些...
    開(kāi)封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)译断。 經(jīng)常有香客問(wèn)我授翻,道長(zhǎng),這世上最難降的妖魔是什么镐作? 我笑而不...
    開(kāi)封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任藏姐,我火速辦了婚禮,結(jié)果婚禮上该贾,老公的妹妹穿的比我還像新娘羔杨。我一直安慰自己,他們只是感情好杨蛋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布兜材。 她就那樣靜靜地躺著,像睡著了一般逞力。 火紅的嫁衣襯著肌膚如雪曙寡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天寇荧,我揣著相機(jī)與錄音举庶,去河邊找鬼。 笑死揩抡,一個(gè)胖子當(dāng)著我的面吹牛户侥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峦嗤,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蕊唐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了烁设?” 一聲冷哼從身側(cè)響起替梨,我...
    開(kāi)封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后副瀑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弓熏,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年俗扇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硝烂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铜幽,死狀恐怖滞谢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情除抛,我是刑警寧澤狮杨,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站到忽,受9級(jí)特大地震影響橄教,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喘漏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一护蝶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧翩迈,春花似錦持灰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至返十,卻和暖如春妥泉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洞坑。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工盲链, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迟杂。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓匈仗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親逢慌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容