前言:
上一篇介紹了線性SVM還有一些尾巴沒(méi)有處理谅年,就是異常值的問(wèn)題儡率。
軟間隔
線性可分SVM中要求數(shù)據(jù)必須是線性可分的,才可以找到分類的超平面,但是有的時(shí)候線性數(shù)據(jù)集中存在少量的異常點(diǎn),由于這些異常點(diǎn)導(dǎo)致了數(shù)據(jù)集不能夠線性劃分;直白來(lái)講就是:正常數(shù)據(jù)本身是線性可分的,但是由于存在異常點(diǎn)數(shù)據(jù),導(dǎo)致數(shù)據(jù)集不能夠線性可分身弊。
我們需要對(duì)上一章的SVM算法模型就行改進(jìn)熄捍,對(duì)于每個(gè)樣本只需要引入松弛因子η雾狈,使得樣本到超平面的函數(shù)距離放松了廓潜。當(dāng)然松弛因子的引入是有成本的,可能會(huì)導(dǎo)致模型的分類錯(cuò)誤善榛。為此我們需要在松弛因子前面加入懲罰項(xiàng)系數(shù)辩蛋,來(lái)約束松弛因子的過(guò)大行為。通常情況下移盆,懲罰項(xiàng)系數(shù)需要調(diào)參得到悼院。
異常值在模型中表示如圖所示:
然后按照上一篇的公式進(jìn)行計(jì)算就可以了,這里就不重新推導(dǎo)了咒循,計(jì)算步驟分方法可以參見(jiàn)上一章
軟間隔小結(jié)
(1)可以解決線性數(shù)據(jù)中攜帶異常點(diǎn)的分類模型構(gòu)建的問(wèn)題;
(2).通過(guò)引入懲罰項(xiàng)系數(shù)(松弛因子),可以增加模型的泛化能力,即魯棒性;
(3)如果給定的懲罰項(xiàng)系數(shù)越小,表示在模型構(gòu)建的時(shí)候,就允許存在越多的分類錯(cuò)誤的樣本,也就表示此時(shí)模型的準(zhǔn)確率會(huì)比較低;如果懲罰項(xiàng)系數(shù)越大,表示在模型構(gòu)建的時(shí)候,就越不允許存在分類錯(cuò)誤的樣本,也就表示此時(shí)模型的準(zhǔn)確率會(huì)比較高据途。
不管是線性可分SⅥM還是加入懲罰系數(shù)后的軟間隔線性可分SⅥM其實(shí)都要求數(shù)據(jù)本身是線性可分的,對(duì)于完全不可以線性可分的數(shù)據(jù),這兩種算法模型就沒(méi)法解決這個(gè)問(wèn)題了。類似于下面如圖的數(shù)據(jù):
多項(xiàng)式擴(kuò)展
在線性回歸中,我們可以通過(guò)多項(xiàng)式擴(kuò)展將低維度的數(shù)據(jù)擴(kuò)展成為高維度的數(shù)據(jù),從而可以使用線性回歸模型來(lái)解決問(wèn)題叙甸。也就是說(shuō)對(duì)于二維空間中不是線性可分的數(shù)據(jù),將其映射到高維空間中后,變成了線性可分的數(shù)據(jù)昨凡。
例如:兩維線性模型:
表現(xiàn)為一條直線,如下圖所示:
對(duì)其進(jìn)行多形式擴(kuò)展為:
二維可以變?yōu)槲寰S蚁署,函數(shù)可以寫作為:
在圖像上表示為:
多項(xiàng)式擴(kuò)展主要的作用是把線性不可分的數(shù)據(jù)便脊,通過(guò)向高維空間做一個(gè)映射,使得存在一個(gè)超平面對(duì)數(shù)據(jù)進(jìn)行線性分割光戈。
映射函數(shù)
結(jié)合多項(xiàng)式回歸在處理非線性可分?jǐn)?shù)據(jù)時(shí)候的作用,在SVM的線性不可分的數(shù)據(jù)上,如果將數(shù)據(jù)映射到高維空間中,那么數(shù)據(jù)就會(huì)變成線性可分的,從而就可以使用線性可分SVM模型或者軟門隔線性可分SVM模型哪痰。
也就是說(shuō),對(duì)于線性不可分SVM模型來(lái)講,重點(diǎn)在于低維特征數(shù)據(jù)到高維特征數(shù)據(jù)之間的映射。
問(wèn)題:怎么找到這個(gè)映射呢?也就是按照什么規(guī)則進(jìn)行映射呢久妆?
例如:對(duì)于分布兩個(gè)圓環(huán)上的二維空間向量晌杰,只需要加上半徑為第三空間的值就可以把二維向量映射到三維空間了,如下圖所示:
所以映射函數(shù)非常多筷弦,只要找到能把數(shù)據(jù)進(jìn)行線性分開(kāi)即可肋演。
定義一個(gè)從低維特征空間到高維特征空間的映射函數(shù)Φ,非線性可分SVM的優(yōu)化目標(biāo)函數(shù)我們?cè)谇懊嬉呀?jīng)給出:
可以看到的是,只需要將原來(lái)的低維空間中的兩個(gè)向量的點(diǎn)積轉(zhuǎn)換為高維空間中兩個(gè)向量的點(diǎn)積即可。
思考如下:
這樣一來(lái)問(wèn)題就解決了嗎?似乎是的:拿到非線性數(shù)據(jù),就找一個(gè)映射,然后一股腦把原來(lái)的數(shù)據(jù)映射到新空間中,再做線性SVM即可烂琴。不過(guò)事實(shí)上沒(méi)有這么簡(jiǎn)單!其實(shí)剛才的方法稍想一下就會(huì)發(fā)現(xiàn)有問(wèn)題:在最初的例子里做了一個(gè)二階多項(xiàng)式的轉(zhuǎn)換,對(duì)一個(gè)二維空間做映射,選擇的新空間是原始空間的所有一階和二階的組合,得到了5個(gè)維度;如果原始空間是三維,那么我們會(huì)得到9維的新空間;如果原始空間是n維,那么我們會(huì)得到一個(gè)n(n+3)/2維的新空間;這個(gè)數(shù)目是呈爆炸性增長(zhǎng)的,這給計(jì)算帶來(lái)了非常大的困難,而且如果遇到無(wú)窮維的情況,就根本無(wú)從計(jì)算空間恐怖的內(nèi)積計(jì)算量爹殊。
能不能找到一個(gè)簡(jiǎn)單的方法解決上述的額問(wèn)題呢?下面引出核函數(shù)
核函數(shù)
核函數(shù)在解決線性不可分問(wèn)題的時(shí)候,采取的方式是:使用低維特征空間上的計(jì)算來(lái)避免在高維特征空間中向量?jī)?nèi)積的恐怖計(jì)算量;也就是說(shuō)此時(shí)SVM模型可以應(yīng)用在高維特征空間中數(shù)據(jù)可線性分割的優(yōu)點(diǎn),同時(shí)又避免了引入這個(gè)高維特征奸绷。
假設(shè)函數(shù)Φ是一個(gè)從低維特征空間到高維特征空間的一個(gè)映射,那么如果存在函數(shù)K(X,z),對(duì)于任意的低維特征向量X和z,都有
稱函數(shù)K(x,z)為核函數(shù)( kernal function)梗夸;
常用的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)和高斯核函數(shù)還有sigmoid核函數(shù)号醉,比較常用的有多項(xiàng)式核函數(shù)和高斯核函數(shù)反症。其中多項(xiàng)式核函數(shù)公式如下:
其中γ 辛块、r、d為超參
下面以一個(gè)簡(jiǎn)單的例子來(lái)介紹一下多項(xiàng)式核函數(shù)的思想铅碍,以便增加對(duì)核函數(shù)的理解:
設(shè)兩個(gè)向量a润绵,b:
映射到五維空間后得到:
則他們的內(nèi)積:
我們發(fā)現(xiàn)原本的二維空間積也可以得到類似的式子:
可以發(fā)現(xiàn)兩者之間非常相似,所以我們只要乘上一個(gè)相關(guān)的系數(shù),就可以讓這兩個(gè)式子的值相等,這樣不就將五維空間的一個(gè)內(nèi)積轉(zhuǎn)換為兩維空間的內(nèi)積的運(yùn)算。也就是多項(xiàng)式函數(shù)中的系數(shù)胞谈。
高斯核函數(shù)公式如下:
由于高斯函數(shù)只有一個(gè)參數(shù)授药,且能處理包括多項(xiàng)核函數(shù)的空間映射,所以實(shí)際應(yīng)用中還是高斯核函數(shù)用的比較多呜魄。
高斯核函數(shù)分割數(shù)據(jù)的效果如圖所示:
關(guān)于高斯核函數(shù)的證明悔叽,具體思想就是證明出高斯函數(shù)可以表示為兩個(gè)映射函數(shù)的乘積,具體證明可以參照:
https://blog.csdn.net/u010551462/article/details/41748807
核函數(shù)的總結(jié):
(1)核函數(shù)可以自定義;核函數(shù)必須是正定核函數(shù),即Gram矩陣是半正定矩陣;
(2)核函數(shù)的價(jià)值在于它雖然也是將特征進(jìn)行從低維到高維的轉(zhuǎn)換,但核函數(shù)它事先在低維上進(jìn)行計(jì)算,而將實(shí)質(zhì)上的分類效果表現(xiàn)在了高維上,也就如上文所說(shuō)的避免了直接在高維空間中的復(fù)雜計(jì)算
(3).通過(guò)核函數(shù),可以將非線性可分的數(shù)據(jù)轉(zhuǎn)換為線性可分?jǐn)?shù)據(jù)