機器學習公開課筆記第六周,支援向量機

2022-03-17 11:03:14 字數 3069 閱讀 7562

一,支援向量機(svm)定義

支援向量機(svm)和邏輯回歸類似,也是二元分類,但是約束條件不同,它的目標是尋找乙個超平面分割資料,這個超平面一側是分類為-1的資料,一側是是分類是1的資料

這樣的超平面有很多,支援向量機還有乙個約束條件是使兩側資料到這個超平面的距離最小值最大,所以支援向量機也叫大間距分類(large margin classfication)

為了使超平面和資料有間距,分類為1的\(\theta^x^ \geq 1\), 分類為0的\(\theta^x^ \leq -1\)

所以代價函式就變為,\( min_ \frac\left[ \sum_^ y^cost_x^)} + (1 - y^)cost_x^)} \right] + \frac\sum_^ }^\)

\(cost_x^)}\)和\(cost_x^)}\)如下圖所示

二,理解支援向量機

1,向量的內積

向量內積可以理解為乙個向量到另乙個向量的投影乘以另乙個向量的膜

\(u^v = p \cdot ||u|| = u_v_ + u_v_\)

p是u到v的投影(有正負),\(||u|| = \sqrt}^ + }^}\)

2,svm決策邊界(超平面)

為了使超平面和資料有間距,分類為1的\(\theta^x^ \geq 1\), 分類為0的\(\theta^x^ \leq -1\),而不是以像邏輯回歸一樣以0為界限

超平面是由\(\theta\)決定,以兩個特徵的資料為例,先假設\(\theta_ = 0\)

綠線表示決策邊界(超平面),藍線表示決策邊界(超平面)的法向量\(\theta\),由圖易得,資料\(x^\)到\(\theta\)的投影\(p^\)就是到決策邊界(超平面)的距離,

因為約束條件是分類為1的\(\theta^x^ \geq 1\), 分類為0的\(\theta^x^ \leq -1\)

即\(p^ \cdot ||\theta|| \geq 1( if\ y^ = 1)\)

\(p^ \cdot ||\theta|| \leq 1 (if\ y^ = -1)\)

可以合併 \(y \cdot p^ \cdot ||\theta|| \geq 1\)

因為約束條件總能滿足,所以只要\(||\theta||\)越小,投影\(p^\)就越大,間距就越大,就越符合我們svm的要求

又因為\( \frac\sum_^ }^ = \frac||\theta||^\),m是常數,並不影響求\(\theta\)的最小值,用c取代\(\lambda\), \(c= \frac\)

\( min_ c\left[ \sum_^ y^cost_x^)} + (1 - y^)cost_x^)} \right] + \sum_^ }^\)

我們一般設c很大,為了使\(\left[ \sum_^ y^cost_x^)} + (1 - y^)cost_x^)} \right]\)盡量小,盡量滿足約束條件,線性可分

3,核心(kernel)

可以通過核心構造非線性決策邊界函式,選定幾個標記點\(l^\),把每個資料與這些標記點的遠近作為新特徵,高斯核心的構造方式如下

高斯核心的方差變化示意圖

乙個非線性例子

選取每個訓練資料為標記點

使用高斯核心的svm

c和\(\sigma \)和svm模型的影響

儘管我們可以使用庫來實現svm,但是我們還是需要自己選擇常數c和核心(kernel)

我們還可使用線性核心(不使用核心,直接用\(\theta^x \geq 0\))

在呼叫高斯核心產生新的特徵f時,必須使用特徵縮放(feature scaling),否則權值大的某個特徵直接決定改新資料

我們還可使用其它核心,但必須滿足塞爾定理(mercer's theorem),塞爾定理保證svm的優化正確執行,收斂於最小值

可以使用多現實核心

多元分類的處理和邏輯回歸處理類似,可以看成k個二元分類

邏輯回歸還是svm

使用邏輯回歸還是svm的一種方法是取決於特徵數量n和訓練資料數量m

1,n大,m小\(n \geq m, n=10,000, m = 10....1000\),使用邏輯回歸或者是沒有核心的svm

2,n小,m中等\(n=1-1,000, m = 10....10,000\),使用帶高斯核心的svm

3,n小,m大\(n=1-1,000, m = 50,000+\),增加特徵值,然後使用邏輯回歸或者不帶核心的svm(帶高斯核心訓練會很慢)

ps: 神經網路適用於以上所有情況,可惜訓練資料實在太慢

ps: 不帶核心的svm和邏輯回歸類似,在使用其中一種時,可以嘗試使用另外一種,比較看那個效果好

ps:svm演算法是凸優化問題,總是能找到全域性最小或接近它的值

以上只是一種參考方法,重要的還是取決於資料的多少,特徵是否足夠充分等等其他因素

機器學習筆記 六 支援向量機

對於給定的訓練集d yi 分類學習的初衷就是基於訓練集在樣本空間中找到乙個可以有效劃分樣本的超平面。可能存在很多可將樣本分開的超平面,選擇分類結果最魯棒 泛化能力最強的超平面便是支援向量機模型的重點。通過二維樣本點分布的圖示看,最直觀上,找到兩類樣本正中間的超平面是最佳的。如此,在樣本空間中,劃分超...

機器學習公開課筆記第五週之機器學習系統設計

以設計垃圾郵件分類器為例,當我們設計機器學習演算法時,先在24小時內設計出乙個簡單的演算法,跑一遍訓練資料,再根據資料的反饋結果 高偏差,高方差,或對某一類資料誤判比例過高等等 調整我們的演算法,反覆迭代優化 一,提取特徵 從大量垃圾郵件訓練資料中找出出現頻率最高的10,000到50,000個單詞,...

機器學習公開課筆記第五週之優化機器學習演算法

一,提高機器學習演算法準確度的方法 當我們的機器學習演算法不能準確 我們測試資料時,我們可以嘗試通過以下方法提高我們機器學習的演算法準確度 1 獲得更多的訓練樣例 2 減少特徵數 3 增加特徵數 4 增加多項式特徵 5 增大或減小 lambda 二,評估機器學習模型 如果只是單獨的使用乙個訓練集,我...