sklearn-4.1邏輯回歸,SVM

sklearn前面有過一個(gè)樹狀圖,大概說了什么情況用什么模型合適。


模型選擇樹狀圖

監(jiān)督學(xué)習(xí)分類模型,主要有邏輯回歸LogisticRegression,支持向量機(jī)svm,神經(jīng)網(wǎng)絡(luò),近鄰KNeighboursClassification,樸素貝葉斯naive_bayes以及集成模型,隨機(jī)森林, AdaBoost等等。

這次先說邏輯回歸(LR),svm。說說我的理解

在線性可分的情況下,邏輯回歸和svm可以說是一個(gè)相似的模型.

先看假設(shè)函數(shù),hypothesis,先用邊界函數(shù)確定決策邊界,都是一個(gè)平面。

LR將邊界兩邊的f(x)值映射到Sigmoid函數(shù)中,得到一個(gè)概率,概率大于0.5,則認(rèn)為是分類1,否則就為0。從Sigmoid函數(shù)可以看出x離0越遠(yuǎn),分類正確的概率越大。然后通過極大似然估計(jì)得到cost function目標(biāo)函數(shù),求解這根線的參數(shù)。


LR

Sigmoid函數(shù)

而SVM是確定兩根線,用于確定這兩條線的點(diǎn)就是支持向量,在這兩條線兩側(cè)的點(diǎn)分別是不同類別,SVM要求的是這兩條線是所有線里最大間距的兩條。而超平面是中間這條f(x)=0,這條線。


SVM

總的說來,我認(rèn)為都是先畫一條線(一個(gè)超平面),根據(jù)這個(gè)平面得到一個(gè)f(x),然后用映射函數(shù)映射成0或者1.

跟LR不同的是SVM只跟支持向量有關(guān),刪減一些離線比較遠(yuǎn)的點(diǎn),不會(huì)影響超平面,計(jì)算量也會(huì)小一些,且要求|f(x)|>=1,分類效果更好。但是就對(duì)異常點(diǎn)比較敏感。
而LR的平面是通過所有點(diǎn)確定的,刪減點(diǎn)必然會(huì)有影響。

關(guān)于SVM的目標(biāo)函數(shù)

ng這樣推導(dǎo)的svm的目標(biāo)函數(shù),根據(jù)LR的目標(biāo)函數(shù),做了一定的簡(jiǎn)化,就變成這樣。粉色線的斜率都行,因?yàn)榭吹贸鲈诜诸愓_的情況下,f(x)=0,不正確的離0越遠(yuǎn),值越大,錯(cuò)的越多,懲罰越大。


根據(jù)LR推導(dǎo)SVM目標(biāo)函數(shù)

svm的目標(biāo)函數(shù)

這實(shí)際就是hinge loss,如果被正確分類,損失是0,否則損失就是 1?mi(w) 。


hinge loss圖像

用hinge 函數(shù)來表示目標(biāo)函數(shù)就會(huì)成這樣??梢钥闯墒荓2正則加Hinge loss之和。


image.png

y取0,1?-1,1

可以看到ng的y取值0,1,但是更多情況下,SVM的y取值為-1,1,特別是用幾何來推導(dǎo)目標(biāo)函數(shù)時(shí)。比如理解SVM的三重境界,特別提到為啥要取-1,1.
我認(rèn)為是因?yàn)镾VM有一個(gè)約束條件,就是y>=1時(shí),f(x)>=1,,f(x)<=-1時(shí),y><=-1,用-1,1就能把這兩個(gè)條件合成一個(gè)


這也正是幾何求解時(shí)的函數(shù)間隔,它既能表示分類的正確性,也能表示離0的距離,即x正確分類的可信度。

但是可以看到用幾何求解的目標(biāo)函數(shù)是

這與ng的目標(biāo)函數(shù)有所差異,就是少了一坨。這就是所謂硬間隔,就是所有點(diǎn)都必須離超平面有1以上的距離,但是有些情況有噪點(diǎn),異常點(diǎn),SVM就會(huì)為了零星異常點(diǎn)更改超平面。
比如這樣,明顯看出間隔變小,并不是一個(gè)更好的邊界。


image.png

于是修改了約束條件。意思是不用強(qiáng)行比1大,小點(diǎn)也行,這就是軟間隔。
image.png

目標(biāo)函數(shù)也就變成這樣。


image.png

ng與幾何推導(dǎo)最后也就是殊途同歸了。

整理一下


image.png

線性不可分

LR對(duì)線性不可分的情況不太友好,因?yàn)閷?duì)于f(x)是多項(xiàng)式的情況,w項(xiàng)太多,不好確定,一般情況線性不可分會(huì)選用SVM的核函數(shù)和神經(jīng)網(wǎng)絡(luò)。
SVM的核函數(shù)是把線性不可分的數(shù)據(jù)升維度之后就能線性可分,然后數(shù)學(xué)能通過核函數(shù)再降維。


image.png

樸素貝葉斯主要用在處理文字信息,分類垃圾信息之類,近鄰KNeighboursClassification統(tǒng)計(jì)需驗(yàn)證點(diǎn)周圍的k個(gè)已知點(diǎn)的類別,取多數(shù)的那個(gè)類別為該點(diǎn)的類別。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容