机器学习基础之(一)SVM支持向量机

1. Support Vector Machine

了解SVM,就要知道,但是SVM现在已经被神经网络的风头所盖过,但是SVM依然活跃于各大领域。

1.SVM分类器是如何工作?

2.SVM分类器与区分度较小的数据类型?

3.计算复杂度怎么样?

                                                          

1. SVM是如何工作的?

      SVM的分类方法,是在这组分布中找出一个超平面作为决策边界,使模型在数据上的分类误差尽可能接近于0,尤其在未知数据集上泛化误差尽可能的小。这里需要先引入一个概念“超平面”,超平面是一个空间的子空间。由于数据集在高维空间(三维)上看是一个空间可变数据集,那么超平面可以认为是二维的平面,若数据是二维的,超平面则是一条一维的直线。

                                                           

          对于二维空间分布,在二分类问题中,超平面可以认为是数据的“决策边界”,决策边界的一侧所有点分类为属于一个类,另一侧所有点分类属于另一个类。那么二分类问题即可以变成数据与决策边界的相对位置。我们要找的一个重点是在训练数据上表现优秀的决策边界,同时在测试数据上也表现优秀的决策边界,对于现有的数据集而言,我们有B1与B2两条可能的决策边界,将决策边界向两边平移,那么就可以得到4条线,每对b11与b12中间的距离,叫做B1(B2)这条决策边界的边际(margin),通常记为d。

                                                            

      接着引入和原本数据集相同分布的测试样本(红色所示),那么可以发现那条决策边界更好,对于这样的测试,往往来说是无意义的,浪费算力的,决策边际这一效应可以使用结构风险最小化定律来证明(SRM),边际较大,泛化能力越强。

                                                              

   SVM就是通过找出边际最大的决策边界,来对数据进行分类的过程。

2. 问题与定义

        SVM就是“找出边际最大的决策边界”,这是一个最优化的问题,最优化的问题往往和损失函数联系在一起。那么SVM的损失函数是什么呢?

        假设数据中总共有N个训练样本,每个训练样本i可以被表示为(xi,yi)(i=1,2,...,N),其中数据xi是(x1i,x2i,...,xni)这样的一个特征向量,

    

 

3. SVM推导过程

3.1 点到平面的距离

       在计算的过程,我们需要计算哪个点离我这个面是最近的,对于平面来说,是wx + b=0,当前x到平面的距离是dist(x,h),计算时,先取平面上的两个点x',x'',可以算出 :

(1)wx' = -b

(2)wx'' = -b

       联立方程(1)与(2)得到 w (x'' -  x')  = 0,那么由于我们所需要计算的点到直线的距离是(x - x')这个向量垂直方向上的投影,根据这个投影我可以算出这个投影与其垂直方向的单位向量即可,那么我们就可以找到点到直线的距离,得到下面的公式:

                                             

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值