SVM
基础定义
分类器 监督算法
代价函数
基于逻辑回归的代价函数,我们逐步调节实现SVM的代价函数:
- 修正cost(i)

图中的紫色线为更正之后的cost.
- 消去常数1/m
- 权重常数位置改变
最终得到的代价函数数学形式为:
J(θ)=C∑i=1m[y(i)cost1(θTx(i))+(1−y(i))cost0(θTx(i)))]+λ/2∑j=1nθj2
目标
支持向量机努力用一个最大的边距来分离样本,因此SVM有时候也被称为大间距分类器。

这也与参数设置有关系,如果参数C设置的非常大的话,那么代价函数就可以简化为:

如果直观理解的话,参数C设置的非常大,也就是不允许训练集出现错误,很容易因为一个例子使得边界发生巨大的变化,而正则化的部分可以对其进行修正。
大间距分类背后的数学原理
接下来,我们从直观的角度分析为什么SVM会得到间隔最大的分类边界。
假设:
- C非常大
- θ0=0
为了方便分析,我们设p(i)为x(i)在θ方向上的映射,因此可以得到:
θTx(i)=p(i)∣∣θ∣∣
核函数
我们选取高斯核函数作为我们的相似度函数:
similarity(x,y)=e−2σ2∣∣x−y∣∣2
使用核函数重新构造变量项的原因
如果我们仍然使用多项式的方法,那么我们需要定义项:x1x2,x12,x22;很多时候特征值的数目会超过我们的想象,因此按照这种办法,所需要定义的项太多了,因此我们需要别的方法来定义特征变量。
如何使用核函数
我们通过标记点和新特征函数,来定义新的特征变量。
设标记的点为l,那么随意取x点,可以得到核函数的值为:
如果l≈x,那么核函数的值可以得到趋近于1;如果距离非常远,那么核函数的值趋近于0.
这就是核函数或者说是相似度函数所具有的物理意义。
如何确定标记点
- 直接使用样本点作为标记点。
使用核函数之后的代价函数
f(i)(x)=sim(x,x(i))
J(θ)=C∑i=1m[y(i)cost1(θTf(i))+(1−y(i))cost0(θTf(i)))]+λ/2∑j=1nθj2
关于参数的直观理解:
如果C比较大的话,那么直观理解就是容错性比较差,容易出现过拟合;也就是低偏差,高方差。
如果σ比较大的话,那么直观理解就是特征变量f(i)变化的较为平滑;就是高偏差,低方差。
实际应用
- 选择参数
(1) 选择C.
(2) 选择核函数。
一种选择是不用核函数,这时候也就可以理解为使用线性核函数。当n很大,m很小时,可以选择这种核函数。
第二种选择是使用高斯核函数。这时候需要选择参数σ