zoukankan      html  css  js  c++  java
  • 机器学习之支持向量机

    简述:

    支持向量机(Support Vector Machine,SVM),用中文翻译过来是这样,似乎也没有其他更好的翻译,从名字就可以看得出SVM的关键词即支持向量,支持向量决定了之后的分类面,说到这里,还没有讲,SVM是一种分类器,被普遍认为是表现很优秀的分类器。本文后面介绍都以两类分类为例。

    分类间隔

    在介绍SVM时,首先要提到的就是两个类别的分类间隔,先看分类间隔这个名词,似乎画个图更容易讲,如下图所示,分隔两个类别,可以有多个分类面可以选择,那么我们选择哪个呢?在SVM中要求分类间隔最大,这里考虑到经验风险和结构风险最小的问题,具体我也不展开了。

    那么如何求得这个最大分隔的面呢?首先需要计算分隔距离,假设两个类别:+1和-1类,另外假设已知最佳分类面方程为,那么点到分类面的距离r可以用表示,那么几何距离,那么我们就可以根据最大化分隔面的距离列出如下方程:

    那么接下来,我们就可以用拉格朗日乘子法进行求解了,如下转为:

    定义拉格朗日函数如下:

    根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题

    那么我们先对上面拉格朗日函数对w和b求偏导,如下:

    另上面两个式子为0,那么可以求得w的表达式,代入拉格朗日方程,整理结果如下:

    公式推导到这里,核函数的形式就出现了。

    根据KKT条件上式是可以求解,存在,使得w和b可以求解。

    KKT条件:

    =0

    =0

    那么可以得到

    从w*和b*的表达式中得到,alpha=0的项都为0,w只依赖于alpha>0的样本点,所以对应于alpha>0的样本点称为支持向量。并且支持向量一定在间隔边界上,这个可以从KKT条件中得到。

    那么现在需要做的就是要求解,这个可以由凸二次规划问题解决,但是当样本量很大的时候,这些算法会变得很低效,在1988年Platt提出一种序列最小最优化算法(sequential minimal optimization, SMO)算法。

     

  • 相关阅读:
    在TNSNAMES.ORA文件中配置本机装的oracle
    Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总
    ExtJs GridPanel 给表格行或者单元格自定义样式
    Ext.core.DomQuery Dom选择器
    JavaScript 常用方法
    ExtJs Ext.data.Model 学习笔记
    JavaScript 深入理解作用域链
    Spring 网路搜集的情报
    SpringMVC 之类型转换Converter详解转载
    SpringMVC @RequestMapping 用法详解之地址映射
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4461564.html
Copyright © 2011-2022 走看看