一阱当、介紹
回歸模型中,處理的因變量都是數(shù)值型區(qū)間變量花颗,建立的模型描述是因變量的期望與自變量之間的線性關(guān)系,比如常見(jiàn)的線性回歸模型惠拭。而在采用回歸模型分析實(shí)際問(wèn)題中扩劝,所研究的變量往往不全是區(qū)間變量而是順序變量或?qū)傩宰兞浚热缍?xiàng)分布問(wèn)題职辅。通過(guò)分析年齡棒呛、性別、體質(zhì)指數(shù)域携、平均血壓簇秒、疾病指數(shù)等指標(biāo),判斷一個(gè)人是否換糖尿病涵亏,Y=0表示未患病宰睡,Y=1表示患病,這里的響應(yīng)變量是一個(gè)兩點(diǎn)(0-1)分布變量气筋,它就不能用h函數(shù)連續(xù)的值來(lái)預(yù)測(cè)因變量Y(只能取0或1)拆内。
總之,線性回歸模型通常是處理因變量是連續(xù)變量的問(wèn)題宠默,如果因變量是定性變量麸恍,線性回歸模型就不再適用了,需采用邏輯回歸模型解決。
邏輯回歸(Logistic Regression)是用于處理因變量為分類變量的回歸問(wèn)題抹沪,常見(jiàn)的是二分類或二項(xiàng)分布問(wèn)題刻肄,也可以處理多分類問(wèn)題,它實(shí)際上是屬于一種分類方法融欧。
邏輯回歸與線性回歸的關(guān)系和區(qū)別:
邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)敏弃。邏輯回歸假設(shè)因變量 y 服從伯努利分布,而線性回歸假設(shè)因變量 y 服從高斯分布噪馏。 因此與線性回歸有很多相同之處麦到,去除Sigmoid映射函數(shù)的話,邏輯回歸算法就是一個(gè)線性回歸欠肾∑康撸可以說(shuō),邏輯回歸是以線性回歸為理論支持的刺桃,但是邏輯回歸通過(guò)Sigmoid函數(shù)引入了非線性因素粹淋,因此可以輕松處理0/1分類問(wèn)題。
二瑟慈、邏輯回歸的生成思路
1. 初步出現(xiàn)的問(wèn)題
回歸任務(wù)是結(jié)果為連續(xù)型變量的任務(wù),logistics regression是用來(lái)做分類任務(wù)的,為什么叫回歸呢?那我們是不是可以假設(shè),邏輯回歸就是用回歸的辦法來(lái)做分類的呢桃移?是的,邏輯回歸就是在用回歸的辦法做分類任務(wù)封豪。
舉一個(gè)例子:預(yù)測(cè)腫瘤大小還是一個(gè)回歸問(wèn)題,得到的線性回歸模型的結(jié)果(腫瘤的大小)也是一個(gè)連續(xù)型變量.通過(guò)設(shè)定閾值,就成功將回歸問(wèn)題轉(zhuǎn)化為了分類問(wèn)題.但是,這樣做還存在一個(gè)問(wèn)題:如果有一個(gè)超大的腫瘤谴轮,閾值就很難設(shè)定,加入還是取平均大小為閾值吹埠。
使用線性的函數(shù)來(lái)擬合規(guī)律后取閾值的辦法是行不通的,行不通的原因在于擬合的函數(shù)太直,離群值(也叫異常值)對(duì)結(jié)果的影響過(guò)大,但是我們的整體思路是沒(méi)有錯(cuò)的,錯(cuò)的是用了太"直"的擬合函數(shù),如果我們用來(lái)擬合的函數(shù)是非線性的,不這么直,是不是就好一些呢?
所以我們下面來(lái)做兩件事:
? ? ?1-找到一個(gè)辦法解決掉回歸的函數(shù)嚴(yán)重受離群值影響的辦法.
? ? ? 2-選定一個(gè)閾值.
2. 問(wèn)題解決
2.1 把回歸函數(shù)掰彎
雖然不能把原來(lái)很直的線性回歸函數(shù)掰彎第步,但是我們可以換一個(gè)判別函數(shù)。就是現(xiàn)在使用的Sigmoid函數(shù)缘琅,也稱為邏輯函數(shù)(Logistic function):
其中:
函數(shù)的定義域?yàn)槿w實(shí)數(shù)粘都,值域在[0,1]之間,x軸在0點(diǎn)對(duì)應(yīng)的結(jié)果為0.5刷袍。當(dāng)x取值足夠大的時(shí)候翩隧,可以看成0或1兩類問(wèn)題,大于0.5可以認(rèn)為是1類問(wèn)題呻纹,反之是0類問(wèn)題堆生,而剛好是0.5,則可以劃分至0類或1類雷酪。
該函數(shù)具有很強(qiáng)的魯棒性(魯棒是Robust的音譯淑仆,也就是健壯和強(qiáng)壯的意思),并且將函數(shù)的輸入范圍(∞,-∞)映射到了輸出的(0,1)之間且具有概率意義.具有概率意義是怎么理解呢:將一個(gè)樣本輸入到我們學(xué)習(xí)到的函數(shù)中,輸出0.7,意思就是這個(gè)樣本有70%的概率是正例,1-70%就是30%的概率為負(fù)例.
總結(jié):
2.2 選定閾值
選定閾值的意思就是,當(dāng)我選閾值為0.5,那么小于0.5的一定是負(fù)例,哪怕他是0.49.此時(shí)我們判斷一個(gè)樣本為負(fù)例一定是準(zhǔn)確的嗎?其實(shí)不一定,因?yàn)樗€是有49%的概率為正利的.但是即便他是正例的概率為0.1,我們隨機(jī)選擇1w個(gè)樣本來(lái)做預(yù)測(cè),還是會(huì)有接近100個(gè)預(yù)測(cè)它是負(fù)例結(jié)果它實(shí)際是正例的誤差.無(wú)論怎么選,誤差都是存在的.所以我們選定閾值的時(shí)候就是在選擇可以接受誤差的程度.
? ? ? ? 我們現(xiàn)在知道了sigmod函數(shù)預(yù)測(cè)結(jié)果為一個(gè)0到1之間的小數(shù),選定閾值的第一反應(yīng),大多都是選0.5,其實(shí)實(shí)際工作中并不一定是0.5,閾值的設(shè)定往往是根據(jù)實(shí)際情況來(lái)判斷的.本小節(jié)我們只舉例讓大家理解為什么不完全是0.5,并不會(huì)有一個(gè)萬(wàn)能的答案,都是根據(jù)實(shí)際工作情況來(lái)定的.
0到1之間的數(shù)閾值選作0.5當(dāng)然是看著最舒服的,可是假設(shè)此時(shí)我們的業(yè)務(wù)是像前邊的例子一樣,做一個(gè)腫瘤的良性惡性判斷.選定閾值為0.5就意味著,如果一個(gè)患者得惡性腫瘤的概率為0.49,模型依舊認(rèn)為他沒(méi)有患惡性腫瘤,結(jié)果就是造成了嚴(yán)重的醫(yī)療事故.此類情況我們應(yīng)該將閾值設(shè)置的小一些.閾值設(shè)置的小,加入0.3,一個(gè)人患惡性腫瘤的概率超過(guò)0.3我們的算法就會(huì)報(bào)警,造成的結(jié)果就是這個(gè)人做一個(gè)全面檢查,比起醫(yī)療事故來(lái)講,顯然這個(gè)更容易接受.
? ? ? ? 第二種情況,加入我們用來(lái)識(shí)別驗(yàn)證碼,輸出的概率為這個(gè)驗(yàn)證碼識(shí)別正確的概率.此時(shí)我們大可以將概率設(shè)置的高一些.因?yàn)榧幢阕R(shí)別錯(cuò)了又能如何,造成的結(jié)果就是在一個(gè)session時(shí)間段內(nèi)重試一次.機(jī)器識(shí)別驗(yàn)證碼就是一個(gè)不斷嘗試的過(guò)程,錯(cuò)誤率本身就很高.
三、邏輯回歸的算法
結(jié)合第二部分中判別函數(shù)和閾值選擇哥力,現(xiàn)在我們需要找到一組可以讓sigmod函數(shù)全都預(yù)測(cè)正確的概率最大的W蔗怠。
1. 損失函數(shù)
若想讓預(yù)測(cè)出的結(jié)果全部正確的概率最大,根據(jù)最大似然估計(jì)墩弯,就是所有樣本預(yù)測(cè)正確的概率相乘得到的P(總體正確)最大。
一個(gè)連乘的函數(shù)是不好計(jì)算的,我們可以通過(guò)兩邊同時(shí)取log的形式讓其變成連加寞射。
得到的這個(gè)函數(shù)越大,證明我們得到的W就越好.因?yàn)樵诤瘮?shù)最優(yōu)化的時(shí)候習(xí)慣讓一個(gè)函數(shù)越小越好,所以我們?cè)谇斑吋右粋€(gè)負(fù)號(hào)渔工。公式如下:
這個(gè)函數(shù)就是我們邏輯回歸(logistics regression)的損失函數(shù),我們叫它交叉熵?fù)p失函數(shù)。
2. 梯度下降法求解交叉熵?fù)p失函數(shù)
求解步驟如下:
? ? ? ? 1-隨機(jī)一組W.
? ? ? ? ?2-將W帶入交叉熵?fù)p失函數(shù),讓得到的點(diǎn)沿著負(fù)梯度的方向移動(dòng).
? ? ? ? ? 3-循環(huán)第二步.
求解梯度部分同樣是對(duì)損失函數(shù)求偏導(dǎo),過(guò)程如下:
四桥温、邏輯回歸為什么對(duì)切斜的數(shù)據(jù)特別敏感(正負(fù)例數(shù)據(jù)比例相差懸殊時(shí)預(yù)測(cè)效果不好)
? ? ? ? 首先從文章開(kāi)頭部分的舉例可以看到,使用線性模型進(jìn)行分類第一個(gè)要面對(duì)的問(wèn)題就是如何降低離群值的影響,而第二大問(wèn)題就是,在正負(fù)例數(shù)據(jù)比例相差懸殊時(shí)預(yù)測(cè)效果不好.為什么會(huì)出現(xiàn)這種情況呢?原因來(lái)自于邏輯回歸交叉熵?fù)p失函數(shù)是通過(guò)最大似然估計(jì)來(lái)推導(dǎo)出的.
? ? ? ? 使用最大似然估計(jì)來(lái)推導(dǎo)損失函數(shù),那無(wú)疑,我們得到的結(jié)果就是所有樣本被預(yù)測(cè)正確的最大概率.注意重點(diǎn)是我們得到的結(jié)果是預(yù)測(cè)正確率最大的結(jié)果,100個(gè)樣本預(yù)測(cè)正確90個(gè)和預(yù)測(cè)正確91個(gè)的兩組w,我們會(huì)選正確91個(gè)的這一組.那么,當(dāng)我們的業(yè)務(wù)場(chǎng)景是來(lái)預(yù)測(cè)垃圾郵件,預(yù)測(cè)黃色圖片時(shí),我們數(shù)據(jù)中99%的都是負(fù)例(不是垃圾郵件不是黃色圖片),如果有兩組w,第一組為所有的負(fù)例都預(yù)測(cè)正確,而正利預(yù)測(cè)錯(cuò)誤,正確率為99%,第二組是正利預(yù)測(cè)正確了,但是負(fù)例只預(yù)測(cè)出了97個(gè),正確率為98%.此時(shí)我們算法會(huì)認(rèn)為第一組w是比較好的.但實(shí)際我們業(yè)務(wù)需要的是第二組,因?yàn)檎龣z測(cè)結(jié)果才是業(yè)務(wù)的根本.
? ? ? ? 此時(shí)我們需要對(duì)數(shù)據(jù)進(jìn)行欠采樣/重采樣來(lái)讓正負(fù)例保持一個(gè)差不多的平衡,或者使用樹(shù)型算法來(lái)做分類.一般樹(shù)型分類的算法對(duì)數(shù)據(jù)傾斜并不是很敏感,但我們?cè)谑褂玫臅r(shí)候還是要對(duì)數(shù)據(jù)進(jìn)行欠采樣/重采樣來(lái)觀察結(jié)果是不是有變好.
五引矩、邏輯回歸的適用場(chǎng)景及優(yōu)缺點(diǎn)
應(yīng)用:
用于分類:適合做很多分類算法的基礎(chǔ)組件。
用于預(yù)測(cè):預(yù)測(cè)事件發(fā)生的概率(輸出)策治。
用于分析:?jiǎn)我灰蛩貙?duì)某一個(gè)事件發(fā)生的影響因素分析(特征參數(shù)值)脓魏。
適用:
基本假設(shè):輸出類別服從伯努利二項(xiàng)分布。
樣本線性可分通惫。
特征空間不是很大的情況。
不必在意特征間相關(guān)性的情景混蔼。
后續(xù)會(huì)有大量新數(shù)據(jù)的情況履腋。
解決過(guò)擬合的方法:
增加數(shù)據(jù)量(萬(wàn)能辦法)
減少特征:手動(dòng)剔除;特征選擇算法
正則化:結(jié)構(gòu)風(fēng)險(xiǎn)最小化策略
? ? 數(shù)據(jù)稀疏:L1正則化
? ? 其他情況:L2正則化
優(yōu)點(diǎn):
(模型)模型清晰惭嚣,背后的概率推導(dǎo)經(jīng)得住推敲遵湖。
(輸出)輸出值自然地落在0到1之間,并且有概率意義(邏輯回歸的輸出是概率么晚吞?http://www.reibang.com/p/a8d6b40da0cf)延旧。
(參數(shù))參數(shù)代表每個(gè)特征對(duì)輸出的影響,可解釋性強(qiáng)槽地。
(簡(jiǎn)單高效)實(shí)施簡(jiǎn)單迁沫,非常高效(計(jì)算量小、存儲(chǔ)占用低)捌蚊,可以在大數(shù)據(jù)場(chǎng)景中使用集畅。
(可擴(kuò)展)可以使用online learning的方式更新輕松更新參數(shù),不需要重新訓(xùn)練整個(gè)模型缅糟。
(過(guò)擬合)解決過(guò)擬合的方法很多挺智,如L1、L2正則化窗宦。
(多重共線性)L2正則化就可以解決多重共線性問(wèn)題赦颇。
缺點(diǎn):
(特征相關(guān)情況)因?yàn)樗举|(zhì)上是一個(gè)線性的分類器,所以處理不好特征之間相關(guān)的情況赴涵。
(特征空間)特征空間很大時(shí)媒怯,性能不好。
(精度)容易欠擬合句占,精度不高沪摄。
和其他分類方法的比較:https://zhuanlan.zhihu.com/p/54197906
六、邏輯回歸方法
from sklearn.linear_model import LogisticRegression
LR = LogisticRegression()
參數(shù)說(shuō)明:
https://blog.csdn.net/jagbiam1000/article/details/79764012
參考:
https://zhuanlan.zhihu.com/p/28408516
https://blog.csdn.net/weixin_39445556/article/details/83930186