Spark机器学习系列之13: 支持向量机SVM

Posted 千寻千梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark机器学习系列之13: 支持向量机SVM相关的知识,希望对你有一定的参考价值。

支持向量机系列学习笔记包括以下几篇:
Spark机器学习系列之13: 支持向量机SVM :http://blog.csdn.net/qq_34531825/article/details/52881804
支持向量机学习之2:核函数http://blog.csdn.net/qq_34531825/article/details/52895621
支持向量机学习之3:SVR(回归)http://blog.csdn.net/qq_34531825/article/details/52891780

CSVM 基本公式推导过程

理论部分:SVM涉及的理论知识非常繁杂了,大家直接看:
支持向量机通俗导论(理解SVM的三层境界) http://blog.csdn.net/v_july_v/article/details/7624837

下面摘抄一小部分内容(不考虑推导细节的话,基本上能理解C-SVM方法推导的整个流程).

对偶问题(包括KKT条件)在SVM起到很重要的作用,如果对此不很了解,则难以理解SVM推导过程。关于对偶分析,可以参考我的另一篇文章:http://blog.csdn.net/qq_34531825/article/details/52872819) 。

核函数部分可以参考http://blog.csdn.net/qq_34531825/article/details/52895621

这里写图片描述
我们用一个超平面划分图中对图中的两类数据进行分类,超平面写成 f(x)=wTx+b=0 ,在线性可分的情况下,我们能找到一些支持向量,满足 |wTx+b|=1

如何理解这一点呢?如果我们找到一个 wb 来表达超平面 f(x)=wTx+b=0 ,那么通过缩放,相当于找到了无数个 λwλb,λ0 ,都可以等价的来表达这个超平面,比如说 f(x)=3x1+4x22x3+6=0 f(x)=1.5x1+2x2x3+3=0 表示一模一样的超平面,也就是说我们通过缩放(w,b),总能使得里超平面两侧最近的距离相等的这些支持向量(support vectors)满足 |f(xi)|=|wTxi+b|=1 ,以达到简化问题的目的。

对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。这个间隔如下图中的 Gap2 所示。
这里写图片描述

从解析几何的角度可以证明 xi 点离超平面方程 wTx+b=0 的距离为: