使用支援向量機
支援向量機是試圖在兩個標記的點集之間傳遞(可能是高維的)超平面的演算法族,使得點與平面的距離在某種意義上是最佳的。SVM 可用於分類或迴歸(分別對應於 sklearn.svm.SVC
和 sklearn.svm.SVR
)。
例:
假設我們在 2D 空間中工作。首先,我們建立一些資料:
import numpy as np
現在我們建立 x 和 y :
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)