zoukankan      html  css  js  c++  java
  • 算法理论——Linear SVM

     

    问题引入

    下面的三个超平面都起到分类的效果,哪个最好?

    答案显然是第三个。为什么?

    直觉上,如果现在我们有个测试点,非常靠近右下角的那个红叉叉,也就是说这个点的特征与那个红叉叉非常接近,这时候,我们希望我们的分类器能够将这个测试点划分为与红叉叉相同的类。

    也就是说,我们希望,找到的超平面能够远离所有的点,也就是要最小化超平面到离它最近的那个点的距离。

    于是,用公式表达就是:

    第一行是我们要求的东西,最大margin(margin的定义在第二个约束条件给出)的分割超平面。实质上我们要求的是使得margin最大的W。

    第二行约束了超平面要把所有样本正确分类

    第三行约束了margin的定义,就是离超平面最近的点的距离。

    注意:这里的W是包含了w0, 即:W=(w0, w1, w2, ... , wd)T。 同理Xn=(1, x1, x2, ... , xd)T

    如何求这个最大值?

    现在问题变成求:

    接下来,

    现在吧约束条件中的min想办法去掉:

    所以问题描述变成:

    认真观察会发现,我们的问题现在属于二次规划问题(quadratic programming)。

     

    二次规划标准形式:

    其中,Q为二次项系数对角矩阵,p为一次项系数向量,A为约束条件中M个一次向系数向量amT组成的矩阵,C为M个cm组成的向量。输入这4个参数,就可以通过QP的工具得到u的最佳解。

    把我们的问题写成二次规划的形式:

    我们的输入参数为:

    这样就能够求到(b,W)的最优解了。

    什么是hard-margin?

    就是能够完全分割数据集的胖胖的边界

    什么是support vector?

    就是控制超平面和margin的那几个最近的点,除了这些点,其他的点没有了,并不影响超平面和margin

     

  • 相关阅读:
    如何使页面中的INPUT按指定的顺序移动焦点{转}
    Eclipse把包引入到项目中的方法
    mssqlserver和sqlexpress的区别{转}
    WPF中动态加载XAML中的控件
    修改Eclipse的智能感知设置
    格式化包括字符串, 数字, 日期, 枚举等类型数据的格式化
    ASP.NET身份验证机制membership入门——配置篇(1){转}
    JAVA基础总结{转}
    asp.net mvc的生命周期{转}
    使用开源免费类库在.net中操作Excel{转}
  • 原文地址:https://www.cnblogs.com/DianeSoHungry/p/7106306.html
Copyright © 2011-2022 走看看