支援向量機超引數的視覺化解釋

2021-10-24 17:21:36 字數 3076 閱讀 9247

作者|soner yıldırım 編譯|vk **|towards datas science

支援向量機(svm)是一種應用廣泛的有監督機器學習演算法。它主要用於分類任務,但也適用於回歸任務。

在這篇文章中,我們將深入**支援向量機的兩個重要超引數c和gamma,並通過視覺化解釋它們的影響。所以我假設你對演算法有乙個基本的理解,並把重點放在這些超引數上。

支援向量機用乙個決策邊界來分離屬於不同類別的資料點。在確定決策邊界時,軟間隔支援向量機(soft margin是指允許某些資料點被錯誤分類)試**決乙個優化問題,目標如下:

顯然,這兩個目標之間有乙個折衷,它是由c控制的,它為每乙個錯誤分類的資料點增加乙個懲罰。

如果c很小,對誤分類點的懲罰很低,因此選擇乙個具有較大間隔的決策邊界是以犧牲更多的錯誤分類為代價的。

當c值較大時,支援向量機會儘量減少誤分類樣本的數量,因為懲罰會導致決策邊界具有較小的間隔。對於所有錯誤分類的例子,懲罰是不一樣的。它與到決策邊界的距離成正比。

在這些例子之後會更加清楚。讓我們首先導入庫並建立乙個合成資料集。

我們先訓練乙個只需調整c的線性支援向量機,然後實現乙個rbf核的支援向量機,同時調整gamma引數。

為了繪製決策邊界,我們將使用jake vanderplas編寫的python資料科學手冊中svm一章中的函式:

我們現在可以建立兩個不同c值的線性svm分類器。

只需將c值更改為100即可生成以下繪圖。

當我們增加c值時,間隔會變小。因此,低c值的模型更具普遍性。隨著資料集的增大,這種差異變得更加明顯。

線性核的超引數只達到一定程度上的影響。在非線性核心中,超引數的影響更加明顯。

gamma是用於非線性支援向量機的超引數。最常用的非線性核函式之一是徑向基函式(rbf)。rbf的gamma引數控制單個訓練點的影響距離。

gamma值較低表示相似半徑較大,這會導致將更多的點組合在一起。對於gamma值較高的情況,點之間必須非常接近,才能將其視為同一組(或類)。因此,具有非常大gamma值的模型往往過擬合。

讓我們繪製三個不同gamma值的支援向量機的**圖。

只需更改gamma值即可生成以下繪圖。

隨著gamma值的增加,模型變得過擬合。資料點需要非常接近才能組合在一起,因為相似半徑隨著gamma值的增加而減小。

在gamma值為0.01、1和5時,rbf核函式的精度分別為0.89、0.92和0.93。這些值表明隨著gamma值的增加,模型對訓練集的擬合度逐漸增加。

gamma與c引數

對於線性核,我們只需要優化c引數。然而,如果要使用rbf核函式,則c引數和gamma引數都需要同時優化。如果gamma很大,c的影響可以忽略不計。如果gamma很小,c對模型的影響就像它對線性模型的影響一樣。c和gamma的典型值如下。但是,根據具體應用,可能存在特定的最佳值:

0.0001 < gamma < 10

0.1 < c < 100

參考引用

sklearn機器學習中文官方文件:

支援向量機超引數的視覺化解釋

作者 soner y ld r m 編譯 vk 支援向量機 svm 是一種應用廣泛的有監督機器學習演算法。它主要用於分類任務,但也適用於回歸任務。在這篇文章中,我們將深入 支援向量機的兩個重要超引數c和gamma,並通過視覺化解釋它們的影響。所以我假設你對演算法有乙個基本的理解,並把重點放在這些超引...

支援向量機的超引數

import numpy import sklearn.svm as ss import matplotlib.pyplot as plt x numpy.array 1,2 2,4 3,1 4,5 7,10 15,11 6,8 7,12 y numpy.array 1 1 1 1 0 0 0 0 ...

基於MATLAB的視覺化支援向量機

其實,散點圖很容易畫,大家都各有各的畫法.主要問題是分界線的繪製,因為得到分類器之後,我不會得到它的分介面.通過觀察,例子中與畫分界線的 有關的部分如下 h 0.02 mesh grid step size x1,x2 meshgrid min x 1 h max x 1 min x 2 h max...