支持向量机 (SVM) 是一组用于分类、回归和异常值检测的监督学习方法。
支持向量机的优点是:
在高维空间中有效。
在维度数大于样本数的情况下仍然有效。
在决策函数中使用训练点的子集(称为支持向量),因此它也是内存效率。
多功能:可以为决策函数指定不同的内核函数。提供了通用内核,但也可以指定自定义内核。
支持向量机的缺点包括:
如果特征数远大于样本数,则在选择核函数时避免过度拟合,正则化项至关重要。
1.4.1. 分类
SVC,NuSVC和LinearSVC是能够对数据集执行二进制和多类分类的类。
SVC 和 NuSVC 是类似的方法,但接受的参数集略有不同,并且具有不同的数学公式(请参阅数学公式部分)。另一方面,LinearSVC 是支持向量分类的另一个(更快的)实现,适用于线性核的情况。注意,LinearSVC 不接受参数,因为这被认为是线性的。它还缺少SVC和NuSVC的一些属性,例如.kernel
support_
与其他分类器一样,SVC、NuSVC 和 LinearSVC 采用两个数组作为输入:一个保存训练样本的形状数组,以及一个形状的类标签数组(字符串或整数):X
(n_samples, n_features)
y
(n_samples)
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC()
clf.fit(X, y)
#拟合后,该模型可用于预测新值:
clf.predict([[2., 2.]])
SVM 决策函数(详见数学公式)依赖于训练数据的某个子集,称为支持向量。这些支持向量的一些属性可以在 属性 中找到
# get support vectors
clf.support_vectors_
# get indices of support vectors
clf.support_
# get number of support vectors for each class
clf.n_support_