机器学习python 支持向量机Support vectors machine (SVM算法)(线性可区分类一)

1、背景
1.1最早有VNV和Alexey Ya C在1963年提出
1.2目前的版本是由Cor和VNV在1993年提出,并在1995年发表
1.3深度学习在2012年出现之前,SVM被认为机器学习近十几年来最成功,表现最好的算法

2、机器学习的一般框架:
训练集—>提取特征向量—>结合一定的算法(分类器:比如决策树和KNN)—>得到结果

3、SVM介绍
3.2SVM寻找区分两类的超平面(hyper plane),使边际(margin类似一种距离)最大
如何选取边际(margin)最大的超平面(max margin hyperplane)
超平面到一侧最近的距离的呢关于另一侧最近点的距离,两侧的超平面平行
3.3线性可区分(linear separable)和线性不可区分(linear inseparable)

4定义公式与建立
超平面定义为:W*x+b=0
W:wight vectot类似于权重的向量
W={w1,w2,w2…wn}
n是特征值的个数
X:训练实例
b:bias偏好偏向
4.1假设2维特征向量:X=(x1,x2)
把b想象为额外的wight
超平面方程变为:w0+w1x1+w2x2=0
所有超平面右上方的点满足:w0+w1x1+w2x2>0
所有超平面左下方的点满足:w0+w1x1+w2x2<0

调整wight,使超平面定义边际的两边:
H1:w0+w1x1+w2x2>=1 for yi=+1
H1:w0+w1x1+w2x2<=-1 for yi=-1
综合以上两式,得到:(1)yi(w0+w1x1+w2x2)>=1,(对所有的i)
所有坐落在边际的两边的超平面上的点被称作为“支持向量”(support vetors)
分界的超平面和h1或h2上任意一点的距离是:1/||w||
(qizhong ||w||是向量的范数(norm))
所以最大边际距离为:2/||w||

5、SVM如何找出最大边际的超平面呢(MMH)
利用一些数学推导,以上公式(1)可变为有限制的凸优问题(conex qurdratic optimization)
利用Karush-Kuhn-Tucker(KKT)条件和拉格朗日公式,可以退出MMH可以被表示为以下“决定边界(decision boundary)”
d(XT)=

5.2对于任何测试(要归类的)实例,带入以上公式,得出的符号是正还是负决定
5.3例子

发布了16 篇原创文章 · 获赞 3 · 访问量 6670

猜你喜欢

转载自blog.csdn.net/chilitian/article/details/84932477