支持向量機(jī):分類算法中的“戰(zhàn)斗雞”
SVM算法不僅模型效果好,思維邏輯也超前。本文將介紹向量機(jī)算法相關(guān)詳情,希望對你有所啟發(fā)。
上篇文章我們介紹了決策樹和隨機(jī)森林算法,接下來讓我們用掌聲隆重歡迎分類算法中的“戰(zhàn)斗雞”:支持向量機(jī)。
大家可能都聽過這個(gè)一句話:你考99分是因?yàn)槟阒荒芸嫉?9分,而學(xué)霸考100分是因?yàn)樵嚲碇挥?00分。
用學(xué)霸來形容支持向量機(jī)(Support Vector Machine,SVM)算法其實(shí)一點(diǎn)都不過分,因?yàn)樗梢哉f是機(jī)器學(xué)習(xí)分類算法中的“天花板”戰(zhàn)力了。
SVM算法不僅模型效果好,而且思維邏輯超前,所以即便是在深度學(xué)習(xí)橫行的今天,也因?yàn)楸壬疃壬窠?jīng)網(wǎng)絡(luò)更輕量級(jí),而被作為模型效果的基準(zhǔn)線。
一、基本原理
舉個(gè)栗子,我們要把下圖中的藍(lán)圈圈和紅方塊用一條線分開,會(huì)發(fā)現(xiàn)可以畫出無數(shù)條線,并且這些線都非常好的完成了任務(wù),看起來好像沒什么差別。
接下來,我們又加上了兩個(gè)綠色的三角形(新樣本),上方的三角形更靠近藍(lán)圈圈,下方的三角形更靠近紅方塊。根據(jù)之前介紹的K近鄰算法的原理,距離越近的樣本表示越相似,我們可以得到結(jié)論:上方的三角形大概率屬于藍(lán)圈圈,下方的三角形大概率屬于紅方塊。
那我們再來看剛才表現(xiàn)“完美”的那幾條線,會(huì)發(fā)現(xiàn)這條紅線表現(xiàn)出現(xiàn)了問題,分類和預(yù)期不一致,表現(xiàn)不如其他線。
這說明我們在確定分類線的時(shí)候,不僅要保證分類的正確性,還要盡可能保證邊界樣本點(diǎn)到這條線的距離盡可能遠(yuǎn),以留出足夠多的安全邊際。而距離線越遠(yuǎn),表示區(qū)分度越高,分類效果越好。
按照這個(gè)思路,我們可以找到下圖的這條分類線,它是距離兩個(gè)類別間隔最大的線,也可以稱為兩類樣本數(shù)據(jù)之間的中軸線。
剛才描述的思路就是支持向量機(jī)(SVM)的基本思路:當(dāng)樣本數(shù)據(jù)是線性可分的時(shí)候,找出距離兩類樣本間隔最大的一條線,這條線不止保證了分類的正確性,還盡可能讓兩個(gè)類別更容易區(qū)分。
圖中實(shí)心的藍(lán)圈圈和紅方塊,是距離這條線最近的樣本點(diǎn),就叫做支持向量(Support Vector),這幾個(gè)邊界點(diǎn)到這條線的距離稱為間隔。
間隔距離越大,分類效果的安全邊際越高,就算有新數(shù)據(jù)超出了原有樣本的邊界,但只要差距沒超過間隔,分類結(jié)果就不會(huì)受影響,而尋找最大間隔的過程就是SVM算法最優(yōu)化參數(shù)的過程。
剛才舉的栗子是基于線性可分的樣本數(shù)據(jù),那么面對下圖中的非線性可分的樣本,SVM是怎么處理的呢?
SVM的解決思路就是升維,將二維平面映射到三維空間,剛才那條分類線在三維空間上的投影就變成了一個(gè)平面,這個(gè)平面把原有的空間分割成兩部分,讓二維空間中混雜的樣本在三維空間中線性可分。
我們按照這個(gè)思路繼續(xù)外推,比如映射到一個(gè)更高維的空間,依然可以找到使樣本線性可分的那條“線”,只不過這條“線”是一個(gè)超平面。
SVM通過“核函數(shù)”來將樣本從低維空間映射到高維空間,讓樣本數(shù)據(jù)在新空間中線性可分。常見的核函數(shù)有線性核函數(shù)、多項(xiàng)式核函數(shù)、高斯核函數(shù)等。
所以,SVM就是一個(gè)有監(jiān)督的二分類器,目標(biāo)是找到一個(gè)超平面,讓兩類數(shù)據(jù)距離這個(gè)超平面最遠(yuǎn),從而對新樣本數(shù)據(jù)的分類更準(zhǔn)確。
二、應(yīng)用場景
SVM不僅適用于線性問題,還適用于非線性問題,具有較好的分類性能和泛化能力,適用于多種實(shí)際問題的解決。
- 文本分類:SVM可以將文本表示為特征向量,并通過訓(xùn)練一個(gè)SVM分類器來將文本分為不同的類別,如垃圾郵件分類、情感分析、文本主題分類等。
- 圖像分類:通過提取圖像的特征向量,可以使用SVM來訓(xùn)練一個(gè)分類器,將圖像分為不同的類別,如人臉識(shí)別、物體識(shí)別、圖像檢索等。
- 生物醫(yī)學(xué)領(lǐng)域:可以使用SVM來進(jìn)行癌癥分類、蛋白質(zhì)結(jié)構(gòu)預(yù)測、基因表達(dá)數(shù)據(jù)分析等。
- 金融領(lǐng)域:SVM可以用于金融領(lǐng)域的多個(gè)任務(wù),如信用評分、欺詐檢測、股票市場預(yù)測等。
- 醫(yī)學(xué)圖像分析:可以使用SVM來進(jìn)行病變檢測、疾病診斷、醫(yī)學(xué)圖像分割等。
- 自然語言處理:可以使用SVM進(jìn)行命名實(shí)體識(shí)別、句法分析、機(jī)器翻譯等任務(wù)。
三、優(yōu)缺點(diǎn)
SVM算法的優(yōu)點(diǎn):
- 高準(zhǔn)確性:SVM在處理二分類問題時(shí)具有較高的準(zhǔn)確性,尤其在小樣本數(shù)據(jù)集上表現(xiàn)出色。
- 泛化能力強(qiáng):SVM通過最大化間隔來提高模型的泛化能力,減少過擬合的風(fēng)險(xiǎn)。
- 可處理高維數(shù)據(jù):SVM在高維數(shù)據(jù)上的表現(xiàn)較好,因?yàn)樵诟呔S空間中,數(shù)據(jù)更容易線性可分。
- 非線性問題處理:通過使用核函數(shù),SVM可以處理非線性問題,將數(shù)據(jù)映射到高維空間,從而提高分類的準(zhǔn)確性。
- 特征選擇:SVM可以通過支持向量的重要性來進(jìn)行特征選擇,幫助識(shí)別最重要的特征,減少特征維度。
- 對異常值的魯棒性:SVM對于異常值具有較好的魯棒性,不容易受到異常值的影響。
SVM算法的缺點(diǎn):
- 計(jì)算復(fù)雜度高:SVM在處理大規(guī)模數(shù)據(jù)集時(shí)的計(jì)算復(fù)雜度較高,需要較長的訓(xùn)練時(shí)間和較大的內(nèi)存消耗。
- 參數(shù)選擇敏感:SVM的性能受到參數(shù)選擇的影響,如核函數(shù)的選擇、正則化參數(shù)的選擇等,需要進(jìn)行調(diào)優(yōu)。
- 不適用于大規(guī)模數(shù)據(jù)集:由于計(jì)算復(fù)雜度高,SVM在處理大規(guī)模數(shù)據(jù)集時(shí)可能不太適用。
- 不適用于噪聲較多的數(shù)據(jù)集:SVM對于噪聲較多的數(shù)據(jù)集敏感,可能會(huì)導(dǎo)致模型的性能下降。
- 不直接提供概率估計(jì):SVM本身不直接提供概率估計(jì),需要通過一些額外的方法來進(jìn)行概率估計(jì)。
四、總結(jié)
本文我們介紹了支持向量機(jī)(SVM)的原理、應(yīng)用場景和優(yōu)缺點(diǎn),希望對大家有所幫助。
下篇文章,我們來聊一聊解決聚類問題的K均值算法,敬請期待。
本文由 @AI小當(dāng)家 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!