支持向量機:分類算法中的“戰斗雞”

0 評論 3307 瀏覽 11 收藏 9 分鐘

SVM算法不僅模型效果好,思維邏輯也超前。本文將介紹向量機算法相關詳情,希望對你有所啟發。

上篇文章我們介紹了決策樹和隨機森林算法,接下來讓我們用掌聲隆重歡迎分類算法中的“戰斗雞”:支持向量機。

大家可能都聽過這個一句話:你考99分是因為你只能考到99分,而學霸考100分是因為試卷只有100分。

用學霸來形容支持向量機(Support Vector Machine,SVM)算法其實一點都不過分,因為它可以說是機器學習分類算法中的“天花板”戰力了。

SVM算法不僅模型效果好,而且思維邏輯超前,所以即便是在深度學習橫行的今天,也因為比深度神經網絡更輕量級,而被作為模型效果的基準線。

一、基本原理

舉個栗子,我們要把下圖中的藍圈圈和紅方塊用一條線分開,會發現可以畫出無數條線,并且這些線都非常好的完成了任務,看起來好像沒什么差別。

接下來,我們又加上了兩個綠色的三角形(新樣本),上方的三角形更靠近藍圈圈,下方的三角形更靠近紅方塊。根據之前介紹的K近鄰算法的原理,距離越近的樣本表示越相似,我們可以得到結論:上方的三角形大概率屬于藍圈圈,下方的三角形大概率屬于紅方塊。

那我們再來看剛才表現“完美”的那幾條線,會發現這條紅線表現出現了問題,分類和預期不一致,表現不如其他線。

這說明我們在確定分類線的時候,不僅要保證分類的正確性,還要盡可能保證邊界樣本點到這條線的距離盡可能遠,以留出足夠多的安全邊際。而距離線越遠,表示區分度越高,分類效果越好。

按照這個思路,我們可以找到下圖的這條分類線,它是距離兩個類別間隔最大的線,也可以稱為兩類樣本數據之間的中軸線。

剛才描述的思路就是支持向量機(SVM)的基本思路:當樣本數據是線性可分的時候,找出距離兩類樣本間隔最大的一條線,這條線不止保證了分類的正確性,還盡可能讓兩個類別更容易區分。

圖中實心的藍圈圈和紅方塊,是距離這條線最近的樣本點,就叫做支持向量(Support Vector),這幾個邊界點到這條線的距離稱為間隔。

間隔距離越大,分類效果的安全邊際越高,就算有新數據超出了原有樣本的邊界,但只要差距沒超過間隔,分類結果就不會受影響,而尋找最大間隔的過程就是SVM算法最優化參數的過程。

剛才舉的栗子是基于線性可分的樣本數據,那么面對下圖中的非線性可分的樣本,SVM是怎么處理的呢?

SVM的解決思路就是升維,將二維平面映射到三維空間,剛才那條分類線在三維空間上的投影就變成了一個平面,這個平面把原有的空間分割成兩部分,讓二維空間中混雜的樣本在三維空間中線性可分。

我們按照這個思路繼續外推,比如映射到一個更高維的空間,依然可以找到使樣本線性可分的那條“線”,只不過這條“線”是一個超平面。

SVM通過“核函數”來將樣本從低維空間映射到高維空間,讓樣本數據在新空間中線性可分。常見的核函數有線性核函數、多項式核函數、高斯核函數等。

所以,SVM就是一個有監督的二分類器,目標是找到一個超平面,讓兩類數據距離這個超平面最遠,從而對新樣本數據的分類更準確。

二、應用場景

SVM不僅適用于線性問題,還適用于非線性問題,具有較好的分類性能和泛化能力,適用于多種實際問題的解決。

  • 文本分類:SVM可以將文本表示為特征向量,并通過訓練一個SVM分類器來將文本分為不同的類別,如垃圾郵件分類、情感分析、文本主題分類等。
  • 圖像分類:通過提取圖像的特征向量,可以使用SVM來訓練一個分類器,將圖像分為不同的類別,如人臉識別、物體識別、圖像檢索等。
  • 生物醫學領域:可以使用SVM來進行癌癥分類、蛋白質結構預測、基因表達數據分析等。
  • 金融領域:SVM可以用于金融領域的多個任務,如信用評分、欺詐檢測、股票市場預測等。
  • 醫學圖像分析:可以使用SVM來進行病變檢測、疾病診斷、醫學圖像分割等。
  • 自然語言處理:可以使用SVM進行命名實體識別、句法分析、機器翻譯等任務。

三、優缺點

SVM算法的優點:

  • 高準確性:SVM在處理二分類問題時具有較高的準確性,尤其在小樣本數據集上表現出色。
  • 泛化能力強:SVM通過最大化間隔來提高模型的泛化能力,減少過擬合的風險。
  • 可處理高維數據:SVM在高維數據上的表現較好,因為在高維空間中,數據更容易線性可分。
  • 非線性問題處理:通過使用核函數,SVM可以處理非線性問題,將數據映射到高維空間,從而提高分類的準確性。
  • 特征選擇:SVM可以通過支持向量的重要性來進行特征選擇,幫助識別最重要的特征,減少特征維度。
  • 對異常值的魯棒性:SVM對于異常值具有較好的魯棒性,不容易受到異常值的影響。

SVM算法的缺點:

  • 計算復雜度高:SVM在處理大規模數據集時的計算復雜度較高,需要較長的訓練時間和較大的內存消耗。
  • 參數選擇敏感:SVM的性能受到參數選擇的影響,如核函數的選擇、正則化參數的選擇等,需要進行調優。
  • 不適用于大規模數據集:由于計算復雜度高,SVM在處理大規模數據集時可能不太適用。
  • 不適用于噪聲較多的數據集:SVM對于噪聲較多的數據集敏感,可能會導致模型的性能下降。
  • 不直接提供概率估計:SVM本身不直接提供概率估計,需要通過一些額外的方法來進行概率估計。

四、總結

本文我們介紹了支持向量機(SVM)的原理、應用場景和優缺點,希望對大家有所幫助。

下篇文章,我們來聊一聊解決聚類問題的K均值算法,敬請期待。

本文由 @AI小當家 原創發布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!