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