机器学习第六篇:详解支持向量机算法
(本文框架)
01|概念及原理:
支持向量機(jī)是一種二分類模型,它的基本模型是定義在特征空間上的間隔最大的線性分類器。
說的通俗一點(diǎn)就是就是在特征空間里面用某條線或某塊面將訓(xùn)練數(shù)據(jù)集分成兩類,而依據(jù)的原則就是間隔最大化,這里的間隔最大化是指特征空間里面距離分離線或面最近的點(diǎn)到這條線或面的間隔(距離)最大。
看下面的圖來感受一下,SVM的目的就是要找打能把紅色點(diǎn)和藍(lán)色點(diǎn)準(zhǔn)確分開的線或面。
上圖來源于鏈接:https://www.zhihu.com/question/21094489,里面還有不錯(cuò)的動(dòng)態(tài)展示視頻,可點(diǎn)擊了解。
間隔最大化的直觀解釋:對(duì)訓(xùn)練數(shù)據(jù)集找到幾何間隔最大的超平面意味著以充分大的確信度對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行分類。也就是說,不僅將正負(fù)實(shí)例點(diǎn)分開,而且對(duì)最難分的實(shí)例點(diǎn)(即離平面最近的點(diǎn))也有足夠大的確信度將他們分開。這樣的超平面對(duì)未知的新實(shí)例有很好的分類預(yù)測(cè)能力。
02|幾個(gè)基本概念:
1、線性/非線性
線性是指量與量之間按比例,成直線關(guān)系,在數(shù)學(xué)上可理解為一階導(dǎo)數(shù)為常數(shù)的函數(shù);而非線性是指不按比例,不成直線關(guān)系,一階導(dǎo)數(shù)不為常數(shù)的函數(shù)。
2、線性可分/不可分
對(duì)于二分類問題,有那么一條直線可以把正負(fù)實(shí)例點(diǎn)完全分開,這些數(shù)據(jù)就是線性可分的;而線性不可分就是找不到一條直線可以把正負(fù)實(shí)例點(diǎn)完全分開。
3、超平面
其實(shí)就是實(shí)例點(diǎn)從二維空間轉(zhuǎn)移到三維甚至多維空間中,這個(gè)時(shí)候不能再用直線劃分,而需要用平面去劃分?jǐn)?shù)據(jù)集,這個(gè)平面就稱為超平面。
4、支持向量
在線性可分的情況下,訓(xùn)練數(shù)據(jù)集的樣本點(diǎn)與分離超平面距離最近的樣本點(diǎn)稱為支持向量,而支持向量機(jī)的目的就是求取距離這個(gè)點(diǎn)(下圖中帶有v字母的點(diǎn),與其他實(shí)例點(diǎn)無關(guān))最遠(yuǎn)的分離超平面,這個(gè)點(diǎn)在確定分離超平面時(shí)起著決定性作用,所以把這種分類模型稱為支持向量機(jī)。
5、間隔問題
函數(shù)間隔
一般地,一點(diǎn)距離分離超平面遠(yuǎn)近程度可以反映分類預(yù)測(cè)的準(zhǔn)確程度,在超平面wx+b=0確定的情況下,|wx+b|能夠相對(duì)地表示點(diǎn)x距離超平面的遠(yuǎn)近。而wx+b的符號(hào)與類標(biāo)記y的符號(hào)是否一致能夠表示分類是否正確,所以可以用量y(wx+b)來表示分類正確性及確信度,這就是函數(shù)間隔。
通過上圖能看出|wx+b|與點(diǎn)到超平面的實(shí)際距離之間的區(qū)別,所以前面說到是用|wx+b|來相對(duì)地表示點(diǎn)x到超平面的遠(yuǎn)近。
幾何間隔
上面的函數(shù)間隔,只要成比例的改變w和b的值,超平面不會(huì)改變,但是函數(shù)間隔卻會(huì)改變。比如把w和b均擴(kuò)大一倍,則超平面依然是wx+b=0,而函數(shù)間隔則變成了2|wx+b|,(2wx+2b=w'x+b'=-2)。但是我們學(xué)習(xí)的目的是在保持在間隔不變的情況下通過求取間隔最大化對(duì)應(yīng)的超平面來達(dá)到學(xué)習(xí)的目的,所以我們要保證w保持不變。這里對(duì)w做一些約束,如規(guī)范化,使得間隔是確定的,這時(shí)函數(shù)間隔就成了幾何間隔。?
函數(shù)間隔與幾何間隔的關(guān)系
03|線性可分支持向量機(jī):
線性可分支持向量機(jī)是有一條直線(平面)可以將訓(xùn)練數(shù)據(jù)集完全分離開來,而線性可分支持向量機(jī)的學(xué)習(xí)目的就是找到那一條直線。
1、算法步驟
假設(shè)現(xiàn)在存在這么一個(gè)超平面wx+b=0可以完全把訓(xùn)練數(shù)據(jù)集分開。
思考這個(gè)超平面需要滿足什么樣的條件時(shí)才能夠?qū)?shù)據(jù)完全分開。
如果距離超平面最近的點(diǎn)都能夠被正確分類,那么其他距離較遠(yuǎn)的點(diǎn)肯定都能夠被正確分類。
所以我們現(xiàn)在需要做的是找到距離超平面最近的樣本點(diǎn)(前面幾何間隔與函數(shù)間隔區(qū)別中有說)。
找到最小值以后還不夠,因?yàn)槲覀兦懊嫣岬竭^,樣本點(diǎn)到超平面的距離越大,分類的準(zhǔn)確性越高,所以我們要盡可能的讓步驟4求取的極小值盡可能的大。依據(jù)這個(gè)條件取求取滿足調(diào)價(jià)的最佳分割超平面。?
2、求解約束問題以及算法步驟
04|線性支持向量機(jī):
1、基本概念
2、求解約束問題以及算法步驟
05|非線性支持向量機(jī):
非線性支持向量機(jī)是針對(duì)非線性分類問題的一種學(xué)習(xí)方法。非線性分類問題是指無法用直線(線性模型)將正負(fù)實(shí)例正確分開,但可以用一條曲線將他們分開。
對(duì)解線性分類問題,線性分類支持向量機(jī)是一種非常有效的方法。但是有時(shí)候分類問題是非線性的,非線性分類問題是指利用非線性模型才能很好地進(jìn)行分類。(前面我們已經(jīng)說過線性與非線性的概念)
非線性問題一般不好求解,所以我們一般求解非線性分類問題時(shí),將非線性問題通過非線性變換變換成線性問題。
1、非線性分類問題求解步驟
首先使用一個(gè)變換將原空間(非線性分類對(duì)應(yīng)的空間)的數(shù)據(jù)映射到新空間(線性分類對(duì)應(yīng)的空間),這里用到的方法就是核技巧(核函數(shù))。
然后在新空間里面利用線性分類的方法對(duì)問題進(jìn)行求解。
2、核函數(shù)定義
3、核技巧在支持向量機(jī)中的應(yīng)用:
4、非線性支持向量機(jī)的算法步驟:
PS時(shí)刻:
那些數(shù)學(xué)公式輸入實(shí)在是太麻煩了,所以就用手寫了,但是很無奈字&像素渣渣,所以各位多擔(dān)待,有看不清看不懂的地方可以私聊。
總結(jié)
以上是生活随笔為你收集整理的机器学习第六篇:详解支持向量机算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界怀旧服急救150后怎么提升 急救
- 下一篇: 15 款Python编辑器的优缺点,别再