今天要介紹的是另一個能夠處理分類問題的模型----支援向量機(Support Vector Machine)。看到他的名字有沒有覺得很莫名其妙,分看看都懂,合在一起就不知道在幹嘛了!別擔心,今天這篇就是用淺顯的方式帶大家認識 SVM 喔~
SVM 是一種監督式的學習方法,用統計風險最小化的原則來估計一個分類的超平面(hyperplane)。它的基本概念就是找到一個決策邊界(decision boundary)讓兩類之間的邊界(margins)最大化,使其可以完美區隔開來。簡單來說,超平面是一種可以以某種型式分割空間的方法。生活在三維空間的我們,可以用一條線切分一個平面,如下圖所示。
當要切分立體(三維)時,我們則需要一個平面來做切分,如下圖所示。
以此類推,N 維空間我們就需要使用一個 (N-1) 的超平面來分割。
因此,SVM 做分類的時候就是例用這樣的概念,尋找到一刀切下去能夠最完美分類的那條線(當然,這個一刀所切開的並非我們能夠想像的平面或是立體,而是某個 hyperplane,是多維的,此分類方法就是所謂線性分類。)
SVM 在處理問題時會像以下圖片所示,不斷地通過計算來取得最好的那條線。
像這種情形無法完美分類的時候就像下圖這樣,換個方位
而當出現下圖這樣沒辦法在平面上完成切線的問題時該怎麼辦?
答案就是讓它進入更多維度的空間就能夠解決了!
了解了超平面 hyperplane 之後我們要來理解一下這句話「找到一個決策邊界(decision boundary)讓兩類之間的邊界(margins)最大化」。如圖所示,紅線到黑線的距離稱為 Margin,而 SVM 就是透過去找 Margin 最大的那個 decision boundary,來找最好的線。
大家如果還有不懂的可以去參考他的解說~
那我們明天就來進行 R 和 Python 的 SVM 實作吧!