svm学习(1)
支持向量机(Support Vector Machine),简称svm,属于监督学习模型,可以分析数据,识别模式,用于分类和回归分析。
线性可分:
支持向量机用于最大间隔的分割数据,这体现了对于分类的新方法,相对于knn更有效,更准确的将一个未知的点分到正确的地方。但是也面临着一些问题,首先svm处理的数据是线性可分的,就是可以通过一条线来划分界限,而svm就是来求这条分界线,举个例子:
图一
图二
比较图一和图二可知,图一不可以通过一条线来讲整个图分为两部分,属于线性不可分;而图二已经明显的给出了区分,属于线性可分。
分割超平面,间隔:
所谓分割超平面就是分割线,将这两类点分成两部分。
了解了svm的应用范围就对于接下来的学习更方便了,看到图二有没有想过这个问题,分割两点的线有很多,可以想图三,或者是图四,
图三
图四
但是对于正常人来说图三才是最好的选择。此时就涉及到一个知识点就是间隔,图三图四中超平面和点的间隔几乎为零,所有看着不是很标准,而图二就好多了,间隔比较大,所有图二是最好的选择。
支持向量:
图五
图五中的A,B两个点就是支持向量,离分割平面最近的点。
算法:
现在的问题是怎么求这条线了,通常用来表示超平面,
显然,如果 f(x)=0,那么 x 是位于超平面上的点。我们不妨要求对于所有满足f(x)<0 的点,其对应的 y =-1 ,而f(x)<0 则对应y=1的数据点。
一般的求法还是通过A,B两点的中点来确定超平面,涉及到太多数学方面的知识。
机器学习普通的展示代码:
用于打印图形的代码: