关于对SVM(支持向量机)的课堂笔记

一直对SVM里的数学推论望而却步,涉及到拉格郎日乘子,对偶问题,KKT, SMO, 核函数之类的,看着就觉得很难,虽然在平时有应用过,但对其中的原理还是一知半解。在这里根据网络上的视频课程做一个大概的总结。
推荐SVM原理及使用教程:https://www.bilibili.com/video/av22820580/?p=9

一直不明白为什么两边的支持向量点所在的线为什么是WX + b = 1以及WX + b = -1,看了很多网络的课程,也讲解得不清楚。下面的图示很清楚地表现了这一个过程。

这里写图片描述
这里写图片描述
这里写图片描述

要使得分类平面的泛化效果最好,就应该让支持向量点到分类平面的距离越远越好,那么就可以有:
这里写图片描述
这里写图片描述

那什么又是软间隔SVM呢?
意思就是给分类平面增加适当的‘容错性’,部分点可以存在于分界线内。
这里写图片描述
这里写图片描述

软间隔的代价函数如下:
可以调节C的大小来控制容错性的大小。C越大,代表正则的强度越小,即容错性越小,也就是说越接近于硬间隔,也就是说分界区域越小。
这里写图片描述
这里写图片描述

在具体使用SVM时,首先需要标准化数据:
这里写图片描述

如果各维度间大小相差太大,会出现如下问题:
这里写图片描述

通过一系列的数学处理,我们最终得到的目标函数是这样的:
这里写图片描述

在很多情况下,其实分类样本是线性不可分的,我们需要先将样本点映射到高维空间,再做分类。可是,这样一来,我们的每次要对点做映射,计算量会变大。根据最终的代价方程,我们可以观察到里面有一项是两个样本点的点乘,那我们可以直接找到一个函数代表两个点的点乘(我们称这样的函数为核函数),这样会不会计算更方便些呢?
这里写图片描述
这里写图片描述

首先来看看多项式的核函数,是不是核函数比映射函数简单多啦。
这里写图片描述
这里写图片描述

常用的还有高斯核函数:
在高斯核函数中我们可以改变参数gamma的大小来改变拟合的程度。
这里写图片描述
这里写图片描述

在这里简要地说明一个与高斯核相关的映射函数。m代表样本个数,n代表特征维度,经过映射之后,特征的维度也会变为与样本个数一样的数目,如果样本个数很多的话,这也就是上面所说的映射到无穷空间。
这里写图片描述

另外,SVM还可以解决回归问题,但是其中的思路与分类问题刚好相反。也就是说,在回归问题中,我们希望分界范围内的点越多越好。
这里写图片描述

下面的一张图展示了在不同的参数下SVM不同的分类效果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42936560/article/details/81740043