資料探勘演算法04 SVM

2021-09-23 18:23:32 字數 3040 閱讀 1612

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 訓練和結果評估等環節。

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

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

資料探勘十大演算法 SVM

support vector classifier svc 與support vector regressor svr 函式間隔 mi n w x b 此時如果我們倍增w,b 可以無限擴大函式間隔,因此,它並不能作為標準 幾何間隔,是歸一化的函式間隔 mi n w x b w 為了方便討論,令幾何間...

資料探勘面試之SVM

svm 上 理論知識 本文簡單講述了svm的一些小問題 0x00 前言 0x01 初始svm 問題1 你能給我講講什麼是svm嗎?回答 svm是一種二分類模型,它的基本模型是在特徵空間中尋找間隔最大化的分割超平面的線性分類器。如在下面的兩個類別中 暫且稱兩個類為黃球和紅球 我們要將其分割開的方式有多...

十大經典資料探勘演算法 SVM

十大經典資料探勘演算法 系列 c4.5 k means svmapriori empagerank adaboost knnna ve bayes cart svm support vector machines 是分類演算法中應用廣泛 效果不錯的一類。統計學習方法 對svm的數學原理做了詳細推導與...