一、SVM概述
在机器学习领域中,SVM(支持向量机)是一种可用于分类和回归任务监督学习算法,在实践中,它的主要应用场景是分类。为了解释这个算法,首先我们可以想象一大堆数据,其中每个数据是高维空间中的一个点,数据的特征有多少,空间的维数就有多少。相应的,数据的位置就是其对应各特征的坐标值。为了用一个超平面尽可能完美地分类这些数据点,我们就要用SVM算法来找到这个超平面。
在这个算法中,所谓“支持向量”指的是那些在间隔区边缘的训练样本点,而“机”则是用于分类的那个最佳决策边界(线/面/超平面)。SVM寻找区分两类的超平面,使边际最大。
那么如何找到边际最大的超平面?首先要知道点到超平面的距离
二、点到超平面的距离公式
既然这样的直线是存在的,那么我们怎样寻找出这样的直线呢?与二维空间类似,超平面的方程也可以写成一下形式:
有了超平面的表达式之后,我们就可以计算 样本点到平面的距离了,计算公式如下:
假设有一个样本的中的样本点
其中表示为特征变量。那么该点到超平面的距离就可以用如下公式进行计算:
因为
所以以上式子可以简化成:
其中||W||为超平面的范数,常数b类似于直线方程中的截距。
三、线性可分
3.1、公式推导
所有的数据点分布在超平面的左右两侧:
所有超平面右侧的点满足:
所有超平面左侧的点满足: