SVM --- 支持向量机

一、SVM概述

在机器学习领域中,SVM(支持向量机)是一种可用于分类和回归任务监督学习算法,在实践中,它的主要应用场景是分类。为了解释这个算法,首先我们可以想象一大堆数据,其中每个数据是高维空间中的一个点,数据的特征有多少,空间的维数就有多少。相应的,数据的位置就是其对应各特征的坐标值。为了用一个超平面尽可能完美地分类这些数据点,我们就要用SVM算法来找到这个超平面。

在这个算法中,所谓“支持向量”指的是那些在间隔区边缘的训练样本点,而“机”则是用于分类的那个最佳决策边界(线/面/超平面)。SVM寻找区分两类的超平面,使边际最大。

                 

那么如何找到边际最大的超平面?首先要知道点到超平面的距离

 

二、点到超平面的距离公式

 既然这样的直线是存在的,那么我们怎样寻找出这样的直线呢?与二维空间类似,超平面的方程也可以写成一下形式:

                                                              W\cdot X + b = 0

有了超平面的表达式之后,我们就可以计算 样本点到平面的距离了,计算公式如下:

                                               d = \frac{\left | Ax_{0} + By_{0} + Cz_{0} + D \right |}{\sqrt{A^{2} + B^{2} + C^{2}}}

 

假设有一个样本的中的样本点

                                               P(x_{1},x_{2},x_{3}...x_{n})

其中表示x_{i}为特征变量。那么该点到超平面的距离就可以用如下公式进行计算:

d_{P} = \frac{\left |w_{1}*x_{1} + w_{2}*x_{2} + w_{3}*x_{3} + .... + w_{n}*x_{n} + b \right |}{\sqrt{w_{1}*w_{1} + w_{2}*w_{2} + w_{3}*w_{3} + ... + w_{n}*w_{n}}}

因为

W\cdot W = w_{1}*w_{1} + w_{2}*w_{2} + w_{3}*w_{3} + ... + w_{n}*w_{n}

所以以上式子可以简化成:

d_{P} = \frac{\left |W\cdot X + b \right |}{\left \| W \right \|}

其中||W||为超平面的范数,常数b类似于直线方程中的截距。

 

三、线性可分

3.1、公式推导

所有的数据点分布在超平面的左右两侧:

所有超平面右侧的点满足:W\cdot X + b = y > 0

所有超平面左侧的点满足: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值