SVM支持向量机算法入门------实现二分类

支持向量机(Support Vector Machine,SVM)是一种监督学习算法,具体为啥叫这个名字,暂时不做解释,知道被它广泛应用于分类和回归分析即可。SVM特别适合于处理高维空间的数据和复杂的非线性分类问题。

1.线性可分的二分类问题   

b9b0def9f3f24d41aaca812578170a6e.png

这是一个典型的样本分类问题,黑色棋子和白色棋子如何分开,从图中看很好理解,使用一个平面分割开即可,然而如何将一个分类问题,建立成一个数学模型并且求出这个平面?

0d913ed4fb4b4109b4786b26165734e0.png

我们如果通过一个超平面将样本分割开,并且定义在上方的一类,在下方的为一类,那么有:

所有在超平面上方的样本都满足:

\mathbf{w} \cdot \mathbf{x} + b \geq 0

所有在超平面下方的样本都满足:

\mathbf{w} \cdot \mathbf{x} + b \leq 0

进一步 我们使用缩放法使得间隔变大  并且定义在超平面左边的为负样本,在超平面右边的为正样本,我们引入新的变量y取值1和-1来表示。

1cd4ee066dd54176a9ff32499515467d.png

此时两个类可以描述为:

\mathbf{w} \cdot \mathbf{x}_i + b \geq 1 \quad y_i = 1

\mathbf{w} \cdot \mathbf{x}_i + b \leq -1 \quad y_i = -1

然后我们将两个类用一个式子表达:

y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1,到此分类问题就成功的被建模为数学问题  

如何求解超平面?使得间隔最大

此时的间隔是\frac{2}{|\mathbf{w}|},详细过程不进行展示。也就说现在的问题转化为了:

\frac{2}{|\mathbf{w}|}在约束条件y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1下的最大值,由于\frac{2}{|\mathbf{w}|}不好求解,我们将问题转化  

在约束条件y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1下求\frac{1}{2} \|\mathbf{w}\|^2的最小值。这是高等数学里典型的多元微分条件极值问题。

我们构造拉格朗日函数:L = \frac{1}{2} \|\mathbf{w}\|^2 - \sum_{i=1}^{n} \alpha_i \left( y_i (\mathbf{w} \cdot \mathbf{x}_i + b) - 1 \right)

就可以求出超平面和间隔:

\mathbf{w} = \sum_{i=1}^{n} \alpha_i y_i \mathbf{x}_i

d = \sum_{i=1}^{n} \alpha_i y_i \mathbf{x}_i \cdot \mathbf{u}^* + b

至此   二分类问题就转化成条件极值并且可以求解。

当然,问题还没结束,当存在噪声样本时,训练集的样本集并不能被严格地线性可分,如下:

此时,引入松弛变量\quad \xi_i   ,如下所示。当\quad \xi_i 大于1时,等式会变号,也就是说结果会翻转,即对应图中本该错误分类的黑色棋子正确分类。此外 引入惩罚因子C,调节C的值,可以控制误分类的程度C越大时,被误分类的样本点的个数就越小。

y_i (\mathbf{w} \cdot \mathbf{x}_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0      

\min \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{n} \xi_i

2.线性不可分

样本在当前维度的空间对应的向量找不到一个超平面来区分开。处理方法是 对特征向量进行非线性映射,映射到一个更高维的空间,然后再在高维空间中寻找最优超平面,但计算内积时算法复杂度非常高;另一种处理方法为 核方法(kernel trick),用一个核函数来 取代 经映射之后的向量的内积,解决复杂度的问题。

常见的核函数有:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值