这篇主要讲SVM理论。
SVM即为Support Vector Machine,支持向量机,是一种很有意思的算法,它的目的是在数据中获得一个超平面,将数据分开。
如下图中所示,下边是一堆蓝色的点,上边是一堆红色的点,中间一条直线把它们分开了,这条直线就是“超平面”。由此可以推广到更高维度,那时的“超平面”自然也不是一条直线了。
怎么找到这个超平面呢?
如下图所示,要能把这些点(向量)分开,就必须找到最大的间隔处,在那2个蓝点和那个红点处即能找到最大间隔,因此那2个蓝点和红点,被称为支持向量。
要想一篇博客讲完SVM是很难的,要能理解SVM也是需要花很多时间,当初我也是看了很久才明白SVM的数学原理大致是什么样的。
如果想了解SVM的数学原理,推一推公式,建议看这篇博客:支持向量机通俗导论(理解SVM的三层境界)https://blog.csdn.net/macyang/article/details/38782399/
既然人家珠玉在前,我也不重写一遍了。这篇博客写的较为透彻、详细,我也是细细看了这篇博客才理解了SVM的数学原理,当然现在又忘了一部分了……
我这还有这篇博客的PDF版本https://pan.baidu.com/s/1EreeUhUZapdPjxJGcpcjig。 如果哪天CSDN倒闭了,还可以到这来下载,当然说不定百度先倒闭呢?反正这2个广告怪都不是什么好东西。
还可以看知乎上的人关于SVM的讨论:https://www.zhihu.com/question/21094489
这是我以前做的一部分笔记:
字丑误怪……
SVM中还有“核函数”的概念,核函数能把向量从低维空间映射到高维空间,说通俗点就是通过某种计算,使向量增加了一个维度或者多个维度。
如图所示,左边二维平面中红点与蓝点杂混在一起,线性不可分,也就是无法通过一条直线将其分开。而通过核函数映射到三维空间后,红点与蓝点分开了,变得线性可分了,也就是能用一个平面把红点与蓝点分开。