機器學習 SVM

2021-10-09 04:18:38 字數 2900 閱讀 8368

如果沒學過svm的話那就等於沒有學過機器學習。svm作為機器學習中最經典的演算法之一在2023年之前曾叱吒風雲,可以說除了整合演算法或深度學習之外是乙個最好的分類器。

svm的型別有三種,即線性可分支援向量機、軟間隔支援向量機以及非線性支援向量機。由於本文是對演算法進行概括,因此手推支援向量機的任務這裡就不描述了,感興趣的話大家可以自己拿筆在紙上划拉划拉~~!

線性可分支援向量機(硬間隔支援向量機),即樣本資料是線性可分的,如圖所示。

換句話說svm總能找到乙個超平面是距離超平面最近的樣本到超平面的距離最遠(這是svm的核心思想,也是最優化的目標函式)。在對svm的求解中,以距離最小化為目標函式,以樣本點的函式距離大於1為約束條件,將原問題轉化為對偶問題並使用了拉格朗日乘子法進行求解。由於原問題是乙個圖二次優化問題,因此具有強對偶性,交換了最大化和最小化目標函式的次序,在滿足kkt條件下可以求出權重w,然後採用smo演算法求解所有的λ,最後求解偏移量b。值得注意的是,所有λi大於0所對應的樣本點xi極為支援向量(支援向量即為到達超平面最近的樣本點,正是由支援向量來尋找的最小風險化的超平面,因此超平面的求解與λi = 0的樣本點無關),如圖所示。

軟間隔支援向量機

但是在實際應用中,資料很多情況下都是線性難以分割(風險較大)或不可分的,如下圖所示,

因此軟間隔svm橫空出世。軟間隔支援向量機可以允許某些靠近決策邊界的樣本不滿足約束條件,也就是說有些樣本我允許你是個特例,放寬對你的限制,如圖所示。

這樣,在數學上可以引入乙個鬆弛變數,使得這些「特殊」樣本的函式距離更加接近決策邊界。由於引入了鬆弛變數,因此目標函式上也要加入乙個懲罰項,通過懲罰因子來控制鬆弛變數的大小。如果懲罰係數非常非常大,那麼鬆弛變數將趨近於0,那麼軟間隔svm就退化成了硬間隔的svm,反之如果懲罰係數很小,那麼鬆弛變數會變得較大,這會容許更多的樣本犯錯誤

非線性支援向量機

那麼對於線性不可分的資料怎麼辦?別擔心,核函式老哥幫你解決這個問題。和函式的思想並不是有svm發展而來,而是早在之前就已經廣泛應用各個領域,包括其他機器學習(pca和kmeans等)。雖然說樣本目前是線性不可分的,但是如果將樣本對映到高維空間,那或許就變成線性可分的了,不妨看一下下圖的例子。

上面的第一幅圖中的樣本是一種環狀結構,顯然你根本找不到乙個超平面將他們一分為二,不過將它們對映到三維空間結果可就不一樣咯,從第二幅我們可以很清晰的看到,原本在二維平面上線性不可分的點在三維空間中可以很容易的被切分成兩類,這種思想就是核函式思想。

值得注意的是,核函式並不是直接將我們的樣本點先對映到高維空間中去計算內積,而是採用了核技巧。這個核技巧我第一次看到的時候真的是覺得喵喵喵啊!!!它講述的是兩個樣本在低維空間上先做內積,然後將內積值做乙個非線性對映(高維對映),這等同於樣本點之間先對映到高維空間在做內積。通過這種核技巧,可以大大簡化運算,提高計算機的運算效率並節約了大量的儲存空間,使得svm對線性不可分的資料集能夠快速進行分類。通常常見的核函式包括線性核函式、多項式核函式、高斯核函式和徑向基核函式。

這裡再說一下幾種核函式的優缺點:

線性核函式:這個用的比較多,一般不清楚資料是否線性可分的時候先用線性核函式試一試,主要是因為線性核函式沒有引數限制。

多項式核函式:這個需要設定三個引數,參數量太多比較麻煩而且難以確定,因此基本很少用這個核函式。

徑向基核函式(其實就是高斯核函式):如果線性核函式不行的話,嗯基本就他了!只需要乙個引數γ就可以幫你搞定,參數量比較少。但是γ得選取很關鍵,如果γ過大,那就很容易過擬合,如果太小,則容易欠擬合。理論上來說徑向基核函式可以將樣本對映到無限維上面,至於為什麼,你可以用泰勒展開去試試呀,這裡不多說了。

svm的優缺點:

優點

由於超平面是通過直接求解最優化問題得到的,因此得到的超平面即為全域性最優解(這可比梯度下降法要有優勢的哦!)。

由於資料集的複雜程度只取決於支援向量而不是資料維度,因此從一定程度上的可以說避免了「維度災難」。

不僅可以用於現行問題上還可以用在非線性問題上。

理論基礎比較完善。

缺點

只適用於二分類問題,需要使用多個svm解決多分類問題。(svm的推廣svr也適用於回歸問題)

缺失值對svm的影響較大(如果有缺失值,可以使用樹模型,因為樹模型對缺失值不敏感)

這裡補充一點:

總結來看,對於有缺失值的資料在經過缺失值處理後:

資料量很小,用樸素貝葉斯

資料量適中或者較大,用樹模型,優先 xgboost

資料量較大,也可以用神經網路

避免使用距離度量相關的模型,如 knn 和 svm(可以說涉及到計算距離的學習器對缺失值都很敏感!!!)

機器學習 SVM

svm 支援向量機是個二分類模型。給定給乙個包含正例和反例的樣本集合,svm的目的是尋找乙個超平面來對樣本根據正例和反例進行分割。保證最大間隔,間隔最大可以有效避免在分類面上的樣本的誤判率。網上也是對其推崇備至,認為不管什麼任務,先跑跑svm和rf。對於超平面的求取,是乙個凸二次規劃問題,牽扯到對偶...

機器學習 SVM

當train data線性可分時,存在多個分離超平面可以把兩類資料正確分開,感知機利用的是誤分類最小的策略,求得分離超平面。但是這是有無窮多個解,而線性svm利用了間隔最大化求分離超平面,解是唯一的,優點是不僅把正負樣本點分開,還對最難分的點 即離超平面最近的點 也有足夠大的確信度將它們分開 希望用...

機器學習SVM

svm支援向量機他是乙個二類分類模型,是給基本模型的特徵空間間隔最大的線性分類器,目的就是求最大間隔 eg 給定一些資料點用x表示資料點,用y表示分的類別 y可以取1或者 1,分別代表兩個不同的類 線性分類器 svm 就是要在n維中找到乙個超平面可以將資料更好的分類 這個超平面的方程可以表示為 wt...