机器学习 笔记3:支持向量机

参考资料:周志华机器学习书籍 和 Datawhale开源资料 天池链接

  1. 间隔与支持向量
    在样本空间内,划分超平面,进行样本分类,可能得到多个超平面,寻找最优的超平面,最大限度的使分类模型更好地承受未知样本的扰动,即鲁棒性好。

    超平面的描述方程:
    机器学习 笔记3:支持向量机
    w是法向量,决定超平面方向,b为位移项,表示超平面和原点之间的距离。
    取分类正确的边界条件:
    机器学习 笔记3:支持向量机
    等号成立时的点(即距离超平面最近的点)称为 支持向量。两个不同类的支持向量到超平面的距离之和称为 间隔。
    机器学习 笔记3:支持向量机
    找到最大间隔,即找到了最优超平面。即SVM的基本型:
    机器学习 笔记3:支持向量机
    此式之前做了等价变换,但都比较基础。

  2. 对偶问题
    对偶问题是用来求解基本型的,对于基本型,使用拉格朗日乘子,得到拉格朗日函数,对w和b分别求偏导并使偏导为0,求解w和b,回代到函数中,得到对偶问题,求解对偶问题得到模型。

  3. 核函数
    实际问题可能不能只用一个超平面划分正确两类,如下图。
    机器学习 笔记3:支持向量机
    此时,可以将样本映射到一个更高维的特征空间,使其线性可分,这就是核函数的作用。如果原始空间是有限维的,则一定存在一个对应的高维空间。具体的推导过程可以看西瓜书的讲解。
    常用的核函数包括:线性核,多项式核,高斯核,拉普拉斯核,Sigmoid核。
    核函数的性质优秀,其线性组合、直积、同时左右乘一个任意函数后的结果都是核函数。

  4. 软间隔
    实际过程中,可能很难直接确定合适的核函数,或者确定了也很难断定其是否有效果(有效果可能是由于过拟合引起)。于是使用软间隔来缓解这个问题,允许某些样本不满足约束条件(即允许其可以划分不正确),当然这些样本数目尽可能要少。

在机器学习库 sklearn 中集成了SVM函数,可以直接使用,具体方法参考天池链接即可。