01
SVM的概念
上一篇我们学习了KNN,我们知道了KNN是通过周边的水果判断新水果的类别的。今天我们来学习SVM是如何来判断苹果还是梨的?
想要判断手中拿的是苹果还是梨?除了用KNN画个圈还有什么好办法?画条线好像也可以。通过在两者所在的空间做出区分,如果新样本落在苹果区域的位置,我们则认为它是苹果,反之就是梨。这条线就是传说中的SVM,英文全称为Support Vector Machines,也叫支持向量机。
听上去很简单,但是这条线是横着画还是竖着画还是斜着画呢?怎么画才是正确的呢?
除了界限(margin),样本和线的距离都有意义。它代表着样本分类的可信度。
以苹果一侧为例,与线的距离最远的苹果,是苹果的可能性越高,距离越近,可能性越低。
我们的目标就是在两种样本间找到能让所有样本分类可信度最高的那条线。
寻找的过程中,不用计算所有的距离。只要找到线附近的样本,让它们与线的距离越远越好。这个距离称为分类间隔,决定了线的样本被称为支持向量。这也是支持向量机名字的由来。
02
SVM的其他处理
如果样本的分布有交叉,怎么办?那我们就关注这些无法被线正确分类的样本与线之间的距离,找到能最小化的这跟线。
如果样本的分布并不理想,无法用直线区分,怎么办?那就通过变化,将它映射到一个能用直线区分的空间,在寻找分类线。
03
SVM的优缺点
在深度学习出现之前,随机森林和SVM是最好分类方法。其优点如下:
第一,SVM是强分类器,能保证最大化区分两个类别,模型性能优异;
第二,可以解决高维数据分类问题;
第三,能够处理非线性特征的相互作用;
第四,不需要依赖整个数据,只考虑决策面附近的支持向量;
第五,引入松弛因子,可以提高泛化能力;
其缺点也显著,如下:
第一,线性分类器,不能处理不同类别相互交融的情况、当样本数量很多时,效率不高;
第二,对低维线性不可分问题,没有通用解决方案,需要找到一个合适的核函数;