【机器学习基础】四个小项目完全解读支持向量机
支持向量機(jī)算法的基礎(chǔ)是最大間隔分類器,最大間隔分類器雖然很簡單,但不能應(yīng)用于大部分?jǐn)?shù)據(jù),因?yàn)榇蟛糠謱偈欠蔷€性數(shù)據(jù),無法用線性分類器進(jìn)行分類,解決方案是對特征空間進(jìn)行核函數(shù)映射,然后再運(yùn)行最大間隔分類器。
本文跳過枯燥乏味的算法推導(dǎo)過程,循序漸進(jìn)的介紹支持向量機(jī)分類原理,并通過四個小項(xiàng)目快速的理解支持向量機(jī)的線性分類,非線性分類和參數(shù)調(diào)參過程。
1.最大間隔分類器
最大間隔分類器使用超平面進(jìn)行分類。
什么是超平面?
假如特征空間是 p 維,超平面就是 p-1維,為了可視化超平面,假設(shè)特征空間是3個維度的,那么超平面是2維的。
超平面表達(dá)式如下:
如果數(shù)據(jù)的特征滿足上式,那么該點(diǎn)落在超平面上,若不滿足,則該點(diǎn)處于超平面的兩側(cè)。
超平面如下圖:
一般來說,如果數(shù)據(jù)可以用超平面完美地進(jìn)行分離,那么超平面的數(shù)量是無限的,因?yàn)樗梢韵蛏弦苿印⑾蛳乱苿?#xff0c;或者對該超平面進(jìn)行小角度的選擇而不與觀測數(shù)據(jù)接觸。
超平面是無限的,如何選擇最優(yōu)超平面?
最優(yōu)超平面是離觀測點(diǎn)最遠(yuǎn)的分離超平面,在給定超平面的情況下,我們計算每個訓(xùn)練數(shù)據(jù)到超平面的距離,這就是所謂的間隔,最優(yōu)超平面也就是間隔最大的分類器。如下圖:
正如你所看到的,有三個觀測點(diǎn)到超平面的距離相等,這三個觀測點(diǎn)就是支持向量,若這三個觀測點(diǎn)的位置改變了,超平面也會相應(yīng)的改變。最大間隔分類器的性能只與這三個點(diǎn)相關(guān),與其他數(shù)據(jù)不相關(guān),看到這里,是不是對支持向量機(jī)算法有了新的收獲了?
如果數(shù)據(jù)分布是非線性的,不能用超平面進(jìn)行分類,如下圖:
對于這樣的數(shù)據(jù)分布,我們將使用核函數(shù)映射為新的特征空間,再運(yùn)行最大間隔分類器進(jìn)行分類,這種方法稱為支持向量機(jī)。
2.支持向量機(jī)
支持向量機(jī)的核函數(shù)映射是一種擴(kuò)展特征空間的方法,核函數(shù)的核心思想是計算兩個數(shù)據(jù)點(diǎn)的相似度。核函數(shù)的度沒有限制,使用度大于1的內(nèi)核可以得到更靈活的決策邊界,如下圖所示:
為了更好的理解核函數(shù)的選擇是如何影響SVM算法,我們在四個不同的場景實(shí)現(xiàn)它。
項(xiàng)目1——線性核支持向量機(jī)
在開始之前,讓我們導(dǎo)入一些有用的庫:
導(dǎo)入需要訓(xùn)練和測試的數(shù)據(jù)路徑:
定義可多次調(diào)用的畫圖函數(shù):
散點(diǎn)圖可視化數(shù)據(jù):
散點(diǎn)圖如下:
線性核支持向量機(jī)對該數(shù)據(jù)進(jìn)行分類,其中正則化參數(shù)C=1,并使用預(yù)測值繪制超平面(hyperplane),如下圖:
由上圖的分類結(jié)果可知,當(dāng)正則化參數(shù)等于1時,模型對異常值不敏感。因此,低的正則化參數(shù)往往泛化能力更好,測試誤差率大于驗(yàn)證誤差率。
若增加正則化參數(shù)C等于100,那么模型對異常點(diǎn)異常敏感,分類結(jié)果如下圖:
由上圖結(jié)果可知:C=100時,異常值能夠正確分類,但是分類超平面與樣本點(diǎn)的距離非常近,可以推斷該模型處于過擬合狀態(tài),泛化能力差。
項(xiàng)目2——高斯核支持向量機(jī)
若分類邊界是非線性的,我們常常使用高斯核進(jìn)行SVM分類。
首先,可視化需要分類的數(shù)據(jù):
散點(diǎn)圖:
高斯核用來衡量兩個數(shù)據(jù)點(diǎn)的相似度,公式如下:
其中參數(shù)σ決定相似度指標(biāo)趨于零的速度。
高斯核支持向量機(jī)訓(xùn)練和預(yù)測代碼:
預(yù)測結(jié)果及分類邊界如下圖:
項(xiàng)目3——支持向量機(jī)調(diào)參
本節(jié)介紹用交叉驗(yàn)證方法選擇模型最優(yōu)參數(shù),首先下載數(shù)據(jù)集:
圖形如下:
使用交叉驗(yàn)證方法選擇最優(yōu)參數(shù),代碼如下:
選擇最優(yōu)參數(shù)的模型(C=1,sigma=0.1)來預(yù)測和畫出分類邊界:
結(jié)果圖:
項(xiàng)目4——用SVM進(jìn)行垃圾郵件分類
下載數(shù)據(jù),并用線性核進(jìn)行分類,得到訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率。
代碼如下:
得到訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率的結(jié)果分別為:99.8%和98.9%。
3.小結(jié)
本文介紹了最大間隔分類器的原理,若遇到非線性邊界數(shù)據(jù)的分類任務(wù),則需要用支持向量機(jī)去構(gòu)建模型。文章通過四個小項(xiàng)目解釋線性核SVM,高斯核SVM,正則化參數(shù)C的作用以及如何用交叉驗(yàn)證方法選擇模型的最優(yōu)參數(shù)。
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯 本站qq群851320808,加入微信群請掃碼:總結(jié)
以上是生活随笔為你收集整理的【机器学习基础】四个小项目完全解读支持向量机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】如何提升BERT在下游任务中的
- 下一篇: 如何修改Win11睡眠时间