大话系列 | SVM(中)—这才一节你就不行了?
全文共1398字,阅读全文需11分钟
写在前面的话
大家好,我是小一
上节介绍了支持向量机算法,算是一个稍稍有难度的算法,其实主要是涉及到超平面这种不太好想象。如果你理解了上节,那么这节的内容很快就能掌握。
还记得上节最后还留了一个问题:存在噪声点的数据分类,应该怎么处理?
具体可以回顾下上节:大话系列 | SVM(上)
ok,一起来看一下如何解决这个问题,
针对样本的SVM
硬间隔线性支持向量机
还记得上节举的例子吗?
例子中提到的样本点都是线性可分的,我们就可以通过分类将样本点完全分类准确,不存在分类错误的情况
,这种叫硬间隔,这类模型叫做硬间隔线性SVM
软间隔线性支持向量机
同样的,可以通过分类将样本点不完全分类准确,存在少部分分类错误的情况,这叫软间隔,这类模型叫做软间隔线性SVM
不一样的是,因为有分类错误的样本点,但我们仍需要将错误降至最低,所有需要添加一个惩罚项来进行浮动,所有此时求解的最大间隔就变成了这样:
非线性支持向量机
硬间隔和软间隔都是对线性可分的样本点进行分类,那如果样本点本身就不线性可分?
举个例子:下面这幅图
样本点并不是线性可分的,这种问题应该怎么处理呢?
解决这个问题之前,先看一下这个小短视频
视频中是将平面中的样本点映射到三维空间中,使用一个平面将样本线性可分
所以我们需要一种方法,可以将样本从原始空间映射到一个更高纬的空间中,使得样本在新的空间中线性可分。这,叫核函数
在非线性SVM中,核函数的选择关系到SVM的分类效果。
幸好的是,我们有多种核函数:线性核函数、多项式核函数、高斯核函数、sigmoid核函数等等,甚至你还可以将这些核函数进行组合,以达到最优线性可分的效果
核函数了解到应该就差不多了,具体的实现我们在下一节的实战再说
多分类支持向量机
还有最后一个问题:多分类
我们前面提到的所有例子最终都指向了二分类,现实中可不止有二分类,更多的是多分类问题
那么多分类应该怎么分呢?
有两种方法:一对多和一对一
一对多法
一对多法讲究的是将所有的分类分成两类:一类只包含一个分类,另一类包含剩下的所有分类
举个例子:现在有A、B、C、D四种分类,根据一对多法可以这样分:
①:样本A作为正集,B、C、D为负集 ②:样本B作为正集,A、C、D为负集 ③:样本C作为正集,A、B、D为负集 ④:样本D作为正集,A、B、C为负集
一对一法
一对一法讲究的是从所有分类中只取出两类,一个为正类一个为父类
再举个例子:现在有A、B、C三种分类,根据一对一法可以这样分:
①分类器:样本A、B ②分类器:样本A、C ③分类器:样本B、C
可以看到,两种方法各有优缺点,具体的都在思维导图里
写在后面的话
SVM讲完了。
截止到现在,分类算法我们都说过决策树、贝叶斯、k近邻和今天的支持向量机,分类算法也差不多就这些了,大家有空自己再复习复习。
后面还有两节集成分类算法,也都是在前面分类算法的基础上,分类效果也是要优于前面的基础分类算法,这个我们遇到了再说
还是那句话:学算法嘛,别给自己太大压力,理解差不多了就搞个项目练一练,这也是小一最初的想法,希望能对大家有点用处。
往期推荐
好巧啊,你也读到这了!
点个
在看
让小一看到你