使用支持向量机

支持向量机是试图在两个标记的点集之间传递(可能是高维的)超平面的算法族,使得点与平面的距离在某种意义上是最佳的。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)