• 机器学习之支持向量机


    简述:

    支持向量机(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)算法。

     

  • 相关阅读:
    ASP.NET MVC路由模块
    线程安全的单例模式
    MVC自带表单效验
    MSsql 中 in 语法排序的说明
    Web.Config配置错误页面处理
    WCF基本应用
    .NET微信自定义分享标题、缩略图、超链接及描述的设置方法
    .NET微信通过授权获取用户的基本信息
    C#中获取服务器IP,客户端IP以及网卡物理地址
    .NET获取客户端、服务器端的信息
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4461564.html
Copyright © 2020-2023  润新知