機器學習系列19:將核函數應用於支援向量機

  • 2019 年 10 月 7 日
  • 筆記

當我們在已知參數的情況下,如何用帶有核函數的支援向量機(SVM)去訓練假設函數呢?

首先我們將樣本做為標記:

對於每一個 x,都要計算出它的特徵 f,f 為一個向量:

如果下式成立,就可以預測 y 等於 1,也就是為正樣本:

但是如何選取參數呢?我們最小化下面這個函數的時候,就可以得到參數向量:

現在還有兩個係數沒有選擇,C 和 σ^2 。C 相當於 1/λ,之前我們學過,λ 的變化會影響高偏差或高方差。因此按照 1/λ 對高偏差或高方差的影響表現選取即可。

現在我們用數據實際觀察一下 C 對 SVM 的影響。當 C 很小時,對於下列數據的決策邊界如下:

如果將 C 換成 100,我們再來看此時的決策邊界:

現在你對 C 是不是有一個直觀的認識了呢?

σ^2 很大時,影像為:

特徵 f 變化平滑,因此表現為高偏差,低方差。σ^2 很小時,影像為:

特徵 f 變化激烈,因此表現為高方差,低偏差。

這樣,一個完整的利用核函數的支援向量機演算法就算是完成了。

如何選擇使用邏輯回歸或者SVM

如果特徵的數量遠大於樣本數,就要用邏輯回歸或者線性核函數(不帶核函數的SVM)。

如果特徵的數量比較小,而樣本的數目正好合適,就用高斯核函數。

如果特徵的數量比較小,而樣本的數目非常大,就要用邏輯回歸或者線性核函數(不帶核函數的SVM)。