使用支援向量機

支援向量機是試圖在兩個標記的點集之間傳遞(可能是高維的)超平面的演算法族,使得點與平面的距離在某種意義上是最佳的。SVM 可用於分類或迴歸(分別對應於 sklearn.svm.SVCsklearn.svm.SVR )。

例:

假設我們在 2D 空間中工作。首先,我們建立一些資料:

import numpy as np

現在我們建立 xy

x0, x1 = np.random.randn(10, 2), np.random.randn(10, 2) + (1, 1)
x = np.vstack((x0, x1))

y = [0] * 10 + [1] * 10

注意, x 由兩個高斯組成:一個以 (0,0) 為中心,一個以 (1,1) 為中心。

要構建分類器,我們可以使用:

from sklearn import svm

svm.SVC(kernel='linear').fit(x, y)

讓我們檢查 (0,0) 的預測 :

>>> svm.SVC(kernel='linear').fit(x, y).predict([[0, 0]])
array([0])

預測是該類為 0。

對於迴歸,我們可以類似地做:

svm.SVR(kernel='linear').fit(x, y)