數據挖掘算法04 - SVM

SVM

SVM 的英文叫 Support Vector Machine,中文名爲支持向量機。它是常見的一種分類方法,在機器學習中,SVM 是有監督的學習模型

什麼是有監督的學習模型呢?它指的是我們需要事先對數據打上分類標籤,這樣機器就知道這個數據屬於哪個分類。

同樣無監督學習,就是數據沒有被打上分類標籤,這可能是因爲我們不具備先驗的知識,或者打標籤的成本很高。所以我們需要機器代我們部分完成這個工作,比如將數據進行聚類,方便後續人工對每個類進行分析。

SVM 作爲有監督的學習模型,通常可以幫我們模式識別、分類以及迴歸分析。

練習 1:桌子上我放了紅色和藍色兩種球,請你用一根棍子將這兩種顏色的球分開。

你可以很快想到解決方案,在紅色和藍色球之間畫條直線就好了

練習 2:這次難度升級,桌子上依然放着紅色、藍色兩種球,但是它們的擺放不規律。如何用一根棍子把這兩種顏色分開呢?

這裏你可能會靈機一動,猛拍一下桌子,這些小球瞬間騰空而起。在騰起的那一剎那,出現了一個水平切面,恰好把紅、藍兩種顏色的球分開。

在這裏,二維平面變成了三維空間。原來的曲線變成了一個平面。這個平面,我們就叫做超平面。

升維

SVM 的工作原理

用 SVM 計算的過程就是幫我們找到那個超平面的過程,這個超平面就是我們的 SVM 分類器。

  • 分類間隔

在保證決策面不變,且分類不產生錯誤的情況下,我們可以移動決策面 C,直到產生兩個極限的位置:如圖中的決策面 A 和決策面 B。極限的位置是指,如果越過了這個位置,就會產生分類錯誤。這樣的話,兩個極限位置 A 和 B 之間的分界線 C 就是最優決策面。極限位置到最優決策面 C 之間的距離,就是“分類間隔”,英文叫做 margin

如果我們轉動這個最優決策面,你會發現可能存在多個最優決策面,它們都能把數據集正確分開,這些最優決策面的分類間隔可能是不同的,而那個擁有“最大間隔”(max margin)的決策面就是 SVM 要找的最優解。

  • 點到超平面的距離公式

超平面

在這個公式裏,w、x 是 n 維空間裏的向量,其中 x 是函數變量;w 是法向量。法向量這裏指的是垂直於平面的直線所表示的向量,它決定了超平面的方向。

SVM 就是幫我們找到一個超平面,這個超平面能將不同的樣本劃分開,同時使得樣本集中的點到這個分類超平面的最小距離(即分類間隔)最大化。

支持向量就是離分類超平面最近的樣本點,實際上如果確定了支持向量也就確定了這個超平面。所以支持向量決定了分類間隔到底是多少,而在最大間隔以外的樣本點,其實對分類都沒有意義。

所以說, SVM 就是求解最大分類間隔的過程,我們還需要對分類間隔的大小進行定義。

首先,我們定義某類樣本集到超平面的距離是這個樣本集合內的樣本到超平面的最短距離。我們用 di 代表點 xi 到超平面 wxi+b=0 的歐氏距離。因此我們要求 di 的最小值,用它來代表這個樣本到超平面的最短距離。di 可以用公式計算得出:

其中||w||爲超平面的範數。

最大間隔的優化模型

我們的目標就是找出所有分類間隔中最大的那個值對應的超平面。

硬間隔、軟間隔和非線性 SVM

硬間隔指的就是完全分類準確,不能存在分類錯誤的情況。

軟間隔,就是允許一定量的樣本分類錯誤。

核函數。它可以將樣本從原始空間映射到一個更高維的特質空間中,使得樣本在新的空間中線性可分。

所以在非線性 SVM 中,核函數的選擇就是影響 SVM 最大的變量。最常用的核函數有線性核、多項式核、高斯核、拉普拉斯核、sigmoid 核,或者是這些核函數的組合。這些函數的區別在於映射方式的不同。通過這些核函數,我們就可以把樣本空間投射到新的高維空間中。

用 SVM 如何解決多分類問題

SVM 本身是一個二值分類器,最初是爲二分類問題設計的,也就是回答 Yes 或者是 No。而實際上我們要解決的問題,可能是多分類的情況,比如對文本進行分類,或者對圖像進行識別。

針對這種情況,我們可以將多個二分類器組合起來形成一個多分類器,常見的方法有“一對多法”和“一對一法”兩種。

總結

今天我給你講了 SVM 分類器,它在文本分類尤其是針對二分類任務性能卓越。同樣,針對多分類的情況,我們可以採用一對多,或者一對一的方法,多個二值分類器組合成一個多分類器。

另外關於 SVM 分類器的概念,我希望你能掌握以下的三個程度:

  • 完全線性可分情況下的線性分類器,也就是線性可分的情況,是最原始的 SVM,它最核心的思想就是找到最大的分類間隔;
  • 大部分線性可分情況下的線性分類器,引入了軟間隔的概念。軟間隔,就是允許一定量的樣本分類錯誤;
  • 線性不可分情況下的非線性分類器,引入了核函數。它讓原有的樣本空間通過核函數投射到了一個高維的空間中,從而變得線性可分。

SVM 是有監督的學習模型,我們需要事先對數據打上分類標籤,通過求解最大分類間隔來求解二分類問題。如果要求解多分類問題,可以將多個二分類器組合起來形成一個多分類器。

SVM 整個執行的流程,包括數據加載、數據探索、數據清洗、特徵選擇、SVM 訓練和結果評估等環節。

sklearn 已經爲我們提供了很好的工具,對上節課中講到的 SVM 的創建和訓練都進行了封裝,讓我們無需關心中間的運算細節。但正因爲這樣,我們更需要對每個流程熟練掌握,通過實戰項目訓練數據化思維和對數據的敏感度。

最後,你能說一下你對有監督學習和無監督學習的理解嗎?以及,SVM 最主要的思想就是硬間隔、軟間隔和核函數。你是如何理解它們的?

  • 有監督學習,就是告訴他這個是紅的那個是藍的。你給我分出紅藍

  • 無監督,自己學會認識紅色和藍色,然後再分類

  • 硬間接,就是完美數據下的完美情況,分出完美類

  • 軟間隔,就是中間總有雜質,情況總是複雜,分類總是有一點錯誤

  • 核函數,高緯度打低緯度,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章