假如现在是做一个分类问题。但是在空间里面就只给你一堆标记好的样本,没有像书上那样给你正确的分好并且找到最好的那个超平面,那你这个时候该怎么正确分类呢?现在呢我们就在二维空间里我们是通过假定约束的条件将样本分成不同的类别(正类负类),然后再确定样本的支持向量然后找到超平面,再找到这些支持向量当中离超平面最远的间隔的那个。 但是一大堆数据里面你怎么知道哪些向量是支持向量?哪个又是超平面呢?这个超平面又是怎么样的呢?
这个时候就需要用到数学方程推导(具体的实现步骤):
一开始呢我们先假定有这么一个超平面方程wx+b=0,这个时候数学家们发现通过原方程太难算出w,b两个未知数,这条路不好走,这个时候又是数学家们在想能不能转换成别的方式来求解。于是他们想啊想的...某天一哥们在想是不是可以换成对偶问题来求解呢?便引入拉格朗日乘子法、最优化、KKT条件等思想来进行转换。
最终将求w,b两个向量问题最终转变成只求α这个乘子的标量问题(大家会不会觉得很神奇,像是一个魔术一样怎么就突然变成只求标量问题了我反正是很不可思议的)
这下我们就能知道,哦!原来我们只要算出了 α>0,对应的这个样本就是支持向量。α=0,对应的这个样本就不是支持向量。(α具体怎么算的参考SMO)
OK...
这下我们知道怎么来求出那些是支持向量了...解决了上边找支持向量的问题。现在有了支持向量那该如何来确定超平面呢?
毕竟支持向量之间可以有无数个超平面来进行划分。说到这里我们回想一下刚刚算出来的w,b这两个向量都跟α这个乘子相关。
再将w,b两个未知数带入原方程。可以得到一个超平面的函数表达式,也能知道这个超平面到底是啥样。可能你们再问了这还是没有决定哪个是超平面啊
现在我们能知道要找到一个支持向量到超平面的间隔要最大。至于为啥要最大呢?说到底还是为了让这个模型具有更强的健壮性,别只适合这个一个数据的分类,换一个新的数据集直接趴菜,这样的分类效果很差。
好,现在言归正传。我们知道正负样本都有自己支持向量且都到超平面的间隔要最大。(也就是说需要雨露均沾,不能偏向于任何一边)
顺理成章,这个超平面落在两类支持向量的中间,这个时候是具有最大分隔间隔的。
到此,支持向量机的整体思想就是上面。