數據分析05-SVM

標籤(空格分隔): 數據分析


SVM 是有監督的學習模型,我們需要事先對數據打上分類標籤,通過求解最大分類間隔來求解二分類問題。如果要求解多分類問題,可以將多個二分類器組合起來形成一個多分類器。

如何創建一個 SVM 分類器呢?我們首先使用 SVC 的構造函數:model = svm.SVC(kernel=‘rbf’, C=1.0, gamma=‘auto’),這裏有三個重要的參數 kernel、C 和 gamma。kernel 代表核函數的選擇,它有四種選擇,只不過默認是 rbf,即高斯核函數。

  1. linear:線性核函數
  2. poly:多項式核函數
  3. rbf:高斯核函數(默認)
  4. sigmoid:sigmoid 核函數

線性核函數,是在數據線性可分的情況下使用的,運算速度快,效果好。不足在於它不能處理線性不可分的數據。
多項式核函數可以將數據從低維空間映射到高維空間,但參數比較多,計算量大。
高斯核函數同樣可以將樣本映射到高維空間,但相比於多項式核函數來說所需的參數比較少,通常性能不錯,所以是默認使用的核函數。
瞭解深度學習的同學應該知道 sigmoid 經常用在神經網絡的映射中。因此當選用 sigmoid 核函數時,SVM 實現的是多層神經網絡。

參數 C 代表目標函數的懲罰係數,懲罰係數指的是分錯樣本時的懲罰程度,默認情況下爲 1.0。當 C 越大的時候,分類器的準確性越高,但同樣容錯率會越低,泛化能力會變差。相反,C 越小,泛化能力越強,但是準確性會降低。
參數 gamma 代表核函數的係數,默認爲樣本特徵數的倒數,即 gamma = 1 / n_features。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章