支持向量机(support vector machines)是一种二分类模型,属于监督学习算法。它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。
优化目标(Optimization Objective)
与逻辑回归和神经网络相比,支持向量机,或者简称SVM,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。
接下来将从逻辑回归开始展示如何一点一点修改来得到本质上的支持向量机。
直观上对大间隔的理解(Large Margin Intuition)
人们有时将支持向量机看作是大间距分类器。
当画出这两条额外的蓝线,我们看到黑色的决策界和训练样本之间有更大的最短距离。然而粉线和蓝线离训练样本就非常近,在分离样本的时候就会比黑线表现差。因此,这个距离叫做支持向量机的间距,而这是支持向量机具有鲁棒性的原因,因为它努力用一个最大间距来分离样本。因此支持向量机有时被称为大间距分类器。
我们将这个大间距分类器中的正则化因子常数C设置的非常大,我记得我将其设置为了100000,因此对这样的一个数据集,也许我们将选择这样的决策界,从而最大间距地分离开正样本和负样本。那么在让代价函数最小化的过程中,我们希望找出在y=1和y=0两种情况下都使得代价函数中左边一项尽量为零的参数。如果我们找到了这样的参数,则我们的最小化问题便转变成:
min
1
2
∑
j
=
1
n
θ
j
2
\min \frac{1}{2} \sum_{j=1}^{n} \theta_{j}^{2}
min21∑j=1nθj2 s.t
{
θ
T
x
(
i
)
≥
1
if
y
(
i
)
=
1
θ
T
x
(
i
)
≤
−
1
if
y
(
i
)
=
0
\left\{\begin{array}{c}\theta^{T} x^{(i)} \geq 1 \text { if } y^{(i)}=1 \\ \theta^{T} x^{(i)} \leq-1 \text { if } y^{(i)}=0\end{array}\right.
{θTx(i)≥1 if y(i)=1θTx(i)≤−1 if y(i)=0
事实上,支持向量机现在要比这个大间距分类器所体现得更成熟,尤其是当你使用大间距分类器的时候,你的学习算法会受异常点(outlier) 的影响。比如我们加入一个额外的正样本。
核函数1(Kernels I)
核函数2(Kernels II)
选择地标:
另外,支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel),当我们不采用非常复杂的函数,或者我们的训练集特征非常多而样本非常少的时候,可以采用这种不带核函数的支持向量机。
使用支持向量机(Using An SVM)
尽管不用写自己的SVM的优化软件,但也需要做几件事:
1、提出参数C的选择。误差/方差在这方面的性质。
2、选择内核参数或想要使用的相似函数,其中一个选择是:选择不需要任何内核参数,没有内核参数的理念,也叫线性核函数。线性核的SVM(支持向量机),即不带有核函数的SVM(支持向量机)。
逻辑回归模型 VS 支持向量机模型