机器学习之支持向量机(手推公式版)

Posted 夏小悠

tags:

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

文章目录

前言

  支持向量机 ( S u p p o r t (Support (Support V e c t o r Vector Vector M a c h i n e , S V M ) Machine,SVM) Machine,SVM)源于统计学习理论,是一种二分类模型,是机器学习中获得关注最多的算法,没错,是“最”,没有之一。

1. 间隔与支持向量

  支持向量机分类方法的核心思想就是在特征空间中找出一个超平面作为决策边界,来将样本划分为正类和负类,并使模型在未知数据集上的泛化误差尽可能的小。

  超平面:在几何中,超平面是一个空间的子空间,它是维度比所在空间小一维的空间。 如果数据空间本身是三维的,则其超平面是二维平面,而如果数据空间本身是二维的,则其超平面是一维的直线。

  比如上面这组数据,我们很容易就可以画出一条线将上面的数据划分为两个类别,而且其误差为零。对于一个数据集来说,这样误差为0的超平面可能有很多个,比如下面这样:


  但这样的模型不能保证泛化性能很好,即无法保证这个超平面在未知数据集上也表现很优秀。因此我们引入了一个名词------间隔 ( m a r g i n ) (margin) (margin),就是将我们找到的超平面向两边进行平移,直到碰到离这个超平面最近的样本点后停下,形成两个新的超平面,这两个超平面的距离就叫“间隔”,超平面处于这个“间隔”的中间位置,即我们选择的超平面到平移后的两个新的超平面之间的距离相等。而距离超平面最近的几个样本点称为支持向量 ( s u p p o r t (support (support v e c t o r ) vector) vector)



  比较一下上面两个图,直观上来看,都能够将样本换分为了两类,但如果再往里面加入一些噪声呢,很明显,蓝色的那个超平面对局部扰动的容忍性最好,因为它“够宽”,如果想象不出来,看下面这个例子:

  很明显,引入了一些新的数据样本后, B 1 B_1 B1这个超平面误差依旧为0,分类结果是最鲁棒的, B 2 B_2 B2这个超平面因为间隔较小,所以出现了分类误差。因此我们在寻找超平面时,希望间隔越大越好。
  以上就是支持向量机,即通过找出间隔最大的超平面,来对数据进行分类的分类器。
  支持向量机的模型由简至繁可以分为下面三种:
   ∙ \\bullet 线性可分支持向量机
   ∙ \\bullet 线性支持向量机
   ∙ \\bullet 非线性支持向量机
  当训练数据线性可分时,通过硬间隔最大化 ( h a r d (hard (hard m a r g i n margin margin m a x i m i z a t i o n ) maximization) maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据集近似线性可分时,通过软间隔最大化 ( s o f t (soft (soft m a r g i n margin margin m a x i m i z a t i o n ) maximization) maximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据集线性不可分时,通过使用核技巧 ( k e r n e l (kernel (kernel t r i c k ) trick) trick)及软间隔最大化,学习非线性支持向量机。

  简单是复杂的基础,也是复杂的特殊情况嘛

2. 函数方程描述

  假设给定数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) , y i ∈ − 1 , + 1 D=\\(x_1,y_1),(x_2,y_2),\\dots,(x_n,y_n)\\,y_i \\in \\-1,+1\\ D=(x1,y1),(x2,y2),,(xn,yn),yi1,+1,在上述在样本空间中,任意一条线都可以表示为: w T x + b = 0 \\bm w^T\\bm x+b=0 wTx+b=0  其中 w = ( w 1 , w 2 , … , w d ) T \\bm w=(w_1, w_2,\\dots,w_d)^T w=(w1,w2,,wd)T为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点之间的距离。很显然,超平面也可以被法向量 w \\bm w w和位移 b b b确定。
  为了推导和计算简便,我们做出以下规定:
  在超平面以上的点都标记为正,超平面以下的点都标记为负,即对于 ( x i , y i ) ∈ D (x_i,y_i)\\in D (xi,yi)D,若 y i = + 1 y_i=+1 yi=+1,则有 w T x i + b > 0 \\bm w^T\\bm x_i+b>0 wTxi+b>0;若 y i = − 1 y_i=-1 yi=1,则有 w T x i + b < 0 \\bm w^T\\bm x_i+b<0 wTxi+b<0,表达式如下: w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 \\begincases \\bm w^T\\bm x_i+b\\geq+1, & y_i=+1\\\\ \\\\ \\bm w^T\\bm x_i+b\\leq-1, & y_i=-1 \\endcases wTxi+b+1,wTxi+b1,yi=+1yi=1  其中,+1和-1表示两条平行于超平面的虚线到超平面的相对距离
  那么,样本空间中任意点 x \\bm x x到超平面的距离可以写为: r = ∣ w T + b ∣ ∣ ∣ w ∣ ∣ r=\\frac |\\bm w^T+b| ||\\bm w|| r=∣∣w∣∣wT+b  由此也可以求得两个不同标签的支持向量到超平面的距离之和,也就是间隔,可以表示为: γ = 2 ∣ ∣ w ∣ ∣ \\gamma=\\frac 2 ||\\bm w|| γ=∣∣w∣∣2  我们的目标就是找到最大间隔的超平面,也就是要满足如下约束的参数 w \\bm w w b b b,使得 γ \\gamma γ最大,即 m a x w , b 2 ∣ ∣ w ∣ ∣ s u b j e c t   t o   y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , … , n \\underset \\bm w,b max \\frac 2 ||\\bm w|| \\\\[3pt] subject\\ to \\ y_i(\\bm w^T\\bm x_i+b)\\geq1,i=1,2,\\dots,n w,bmax∣∣w∣∣2subject to y机器学习之主成分分析(手推公式版)

机器学习之支持向量机:支持向量机的公式推导

机器学习之支持向量机:支持向量机的Python语言实现

机器学习之SVM支持向量机

机器学习之支持向量机:SMO算法

机器学习之支持向量机:核函数和KKT条件的理解