机器学习训练营——机器学习爱好者的自由交流空间(qq 群号:696721295)
回归
支持向量分类的方法能被推广到解决回归问题,称为支持向量回归。由支持向量分类产生的模型仅依赖训练数据的子集,因为创建模型的代价函数并不考虑超过边界的训练点。类似地,由支持向量回归产生的模型仅依赖训练数据的子集,因为创建模型的代价函数忽略任何接近模型预测的训练数据。支持向量回归有三个不同的执行版本:SVR
, NuSVR
, LinearSVR
. LinearSVR执行速度比SVR要快,但只提供线性核。fit方法取X, y作为输入参数,这里,y取浮点值而不是分类的整数值。
from sklearn import svm
X = [[0, 0], [2, 2]]
y = [0.5, 2.5]
clf = svm.SVR()
clf.fit(X, y)
clf.predict([[1, 1]])
异常检测
One-class SVM可以被用于异常检测(novelty detection), 即,给定一个样本集,检测该集的灵活边界,以便将新的数据点归类是否属于这个集合。类OneClassSVM
执行之。这是一个典型的无监督学习,所以fit方法只有一个数组X作为输入,并没有类标签。
核函数
可以使用以下的核函数:
linear:
polynomial: , 由参数degree, 由coef0指定
rbf: , 由参数gamma指定,且必须是正的
sigmoid: , 由参数coef0指定
数学原理
数学上,一个支持向量机在一个高维或有限维空间构造了一个或一组超平面,这些超平面被用作分类、回归或其它任务。本质上,由超平面实现的最优分割,即是这个超平面到任何类的最近的训练数据点的距离是最大的。通常来说,边界越大,分类器的泛化误差(generalization error)就越低。
SVC
给定训练向量 . 对于两类,设向量 . SVC解决了以下的优化问题:
其对偶形式为
这里,
是分量全为1的向量,
是上界,
是
阶正的半正定矩阵。
,
是核。 函数
的作用是将输入向量映射到高维空间。
决策函数是:
注意:虽然大多数估计量使用 作为正则参数,而来自libsvm, liblinear的SVM使用C. 两个模型的正则量的精确等价性依赖优化模型的目标函数形式。例如,当使用的估计量是sklearn.linear_model.Ridge回归时, .
可以通过保存
的成员函数 dual_coef_
, 保存支持向量的成员函数support_vectors_
, 保存独立项
的intercept_
访问参数。
NuSVC
我们介绍一个新参数 , 它控制支持向量的数量和训练误差。参数 , 是训练误差比例的上界,同时也是支持向量比例的下界。
SVR
给定训练向量 . -SVR解决下面的优化问题:
对偶形式
这里,
是全为1的向量,
是上界,
是
阶正的半正定矩阵。
是核。训练数据由
映射到高维空间。
决策函数是:
这些参数由保存
的成员函数dual_coef_
, 保存支持向量的support_vectors_
, 保存
的intercept_
访问。
阅读更多精彩内容,请关注微信公众号:统计学习与大数据