小文 | 公众号 小文的数据之旅
百度百科:
(1)支持向量机(Support Vector Machine, SVM)是一种对数据进行二分类的广义线性分类器,其分类边界是对学习样本求解的最大间隔超平面。
(2)SVM使用铰链损失函数计算经验风险并在求解系统中加入了正则化项以优化结构风险,是一个具有稀疏性和稳健性的分类器 。
(3)SVM可以通过引入核函数进行非线性分类。
从百度百科关于SVM的阐述,我们发现SVM有三宝,分别是最大间隔、对偶问题以及核函数。
-----------------------------------------------------
1、最大间隔超平面
在说明最大间隔超平面问题之前,先说明一下什么是线性可分。
线性可分:假设有猪狗两类样本,若在特征空间中存在一个超平面将猪狗完全准确分开,那么就称这个猪狗样本集线性可分。在二维空间时,超平面就是一条直线。
对于一个线性可分样本集,可能存在多个超平面(line1,line2)都可以将其线性可分,那么怎么选择超平面呢?假设现在有一只冒充猪的小狗来搞破坏,是否存在一个超平面,无论来了多少只小狗或者小猪,依然可以将其阴谋识破?SVM解决的就是这个,找出一个最佳超平面正确划分样本。
那最佳超平面长什么样的呢?我们认为最佳超平面必须具有更好的泛化能力,对噪声更为不敏感,即更好的鲁棒性。从几何角度来说,两样本到超平面的间隔越大,抗干扰能力越强,所以最佳超平面就是以最大间隔把样本分开的超平面,也称之为最大间隔超平面。
间隔是两侧样本到超平面的距离之和,即margin = d1+d2,多个样本就有多个间隔值,那是不是每个间隔对超平面的贡献都一样的呢?答案是否定的,离超平面越近的样本越容易划分错误,因此离超平面越近的样本对超平面的影响越大,所以为了找到最大间隔超平面,首先要找到两侧离超平面最近的样本点,求出其到超平面的距离之和,即margin = min(d1+d2)。然后不同超平面,margin不同,为了找到最佳超平面,我们需要最大化margin,可以理解为泛化能力最大的那个超平面,即max margin。
转为数学表达,即max margin = max min(d1+d2)
点到直线的距离d:点W(Xw,Yw)到直线AX+BY+C=0的距离等于
现在假设在样本集中,存在一个超平面,使得样本集线性可分,那么样本到超平面的距离d为: