天天看點

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

機器學習-監督學習之決策向量機算法

首先我們看下面的例子,我們有一些藍色的點和一些紅色的點,現在想用一條線來分割他們,我們的目标是讓點到分割線的距離盡可能遠,這個距離稱為Margin。

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

對于複雜問題如下圖,我們用兩種名額來衡量:1.margin的寬度 2.錯分類的數量

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Error = Classification error + margin error

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Perceptron 算法

之前學的perceptron算法強調計算error function,然後用gradient descent方法找到最佳的w和b的值。

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

分類算法

對于分類算法的error計算類似perceptron,根據兩方的邊際線計算出距離的誤差。

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Margin Error 邊際誤差

Margin = 2 / |W|

Error = | W | 2

對應的margin越大則誤差越小,margin越小則誤差越大

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

C Parameter

對于複雜問題,可能有時關注點不同,這是設定一個C參數。

當C參數大時,更關注于分類誤差。

當C參數小時,則更關注于邊界誤差

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Kernel trick 多項式核心

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

當一條直線點分布的比較不均勻時,就要把直線一維問題轉換為多項式問題。

多項式核心2

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

當處理此類複雜問題時,有兩種方式進行分類:

  1. 多項式核心:
    機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
  2. 轉換為多元問題
    機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
    但是實際上兩種方法得到的結果都是一樣的:
    機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Polynominal Kernel 多項式核函數

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

多項式核函數将會得到五個變量,x y xy x2 y2

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Higher degree 的Polynomial kernel 将會幫助我們更加細分資料

RBF核函數

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

Gamma parameter

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法
機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

large gamma 趨向于overfit, 而small gamma趨向于underfit

gamma定義

機器學習-監督學習之決策向量機算法機器學習-監督學習之決策向量機算法

SVC 的sklearn實作

>>> from sklearn.svm import SVC
>>> model = SVC()
>>> model.fit(x_values, y_values)
           

在上述示例中,model 變量是一個拟合到資料 x_values 和 y_values 的支援向量機模型。拟合模型是指尋找拟合訓練資料的最佳界線。我們使用模型的 predict() 函數進行兩項預測。

超參數

當我們定義模型時,可以指定超參數。正如在此部分中看到的,最常見的超參數包括:

C:C 參數。

kernel:核心。最常見的核心為 ‘linear’、‘poly’ 和 ‘rbf’。

degree:如果核心是多項式,則此參數為核心中的最大單項式次數。

gamma:如果核心是徑向基函數,則此參數為 γ 參數。

例如,下面我們定義了一個次數為4、C 參數為 0.1 的多項式核心模型。

繼續閱讀