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