zoukankan      html  css  js  c++  java
  • 统计学习方法六:支持向量机

    结合之前:http://www.cnblogs.com/naonaoling/p/4184380.html

    一、什么是支持向量机?

    支持向量机是一种二类分类模型。
    由于支持向量(与分离超平面距离最近的样本点)在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。
    
    特征:
    (1)二分类
    (2)线性、非线性分类器
    (3)判别模型
    (4)学习模型:
        线性可分支持向量机(硬间隔支持向量机):训练数据线性可分;硬间隔最大化;线性分类器
        线性支持向量机(软间隔支持向量机):训练数据近似线性可分;软间隔最大化;线性分类器
        非线性支持向量机:训练数据线性不可分;核技巧及软间隔最大化;非线性分类器。
    (4)学习策略:间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题
    (5)学习算法:求解凸二次规划的最优化问题
    
    补充:
    1、凸二次规划
        凸二次规划是指一类约束最优化问题,其中目标函数是二次函数,约束函数是仿射函数(可以理解为一阶多项式函数)
    2、合页损失函数
    3、核函数:当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。
    
    (1)什么是欧式空间和希尔伯特空间?
        其实我查了半天资料也没有特别搞懂希尔伯特空间..
        但我的理解是,欧式空间是有限维,而希尔伯特空间可以是任意维甚至是无限维...
    
    (2)什么是向量内积?
        两个向量a(x1,x2,...xn),b(y1,y2,...yn)
        内积:a·b=x1*y1+x2*y2+....xn*yn
    
    (3)还记得大明湖畔的输入空间和特征空间吗?
        输入空间:输入数据可能取值的集合称为输入空间,输入空间可以是有限元素的集合,也可以是整个欧式空间
        特征空间:所有特征向量存在的空间称为特征空间。模型实际上是定义在特征空间上的。
    
        个人理解:
        大多数时候,输入空间与特征空间可以看做是相同的空间,比如之前介绍的几种统计学习方法均是这种
        什么时候不同呢?就比如求解非线性问题的一个思想,非线性变换。
        在原空间(输入空间),数据线性不可分,将其变换到另一个空间(特征空间),在这个新的空间学习模型。原空间就是输入空间,变换后的就是特征空间,就如前面所述,模型定义的那个空间是特征空间。(反正我是懂了..不知道说没说明白..)
    

    二、线性可分支持向量机和硬间隔最大化

    1、基础:
    (1)训练数据集:线性可分
    (2)学习目标:找到一个分离超平面,能将特征空间划分为两部分,一部分是正类(法向量指向的一侧),另一部分是负类
    
    2、间隔与支持向量:
        参加博客 http://www.cnblogs.com/naonaoling/p/4184380.html
    (1)超平面关于样本点(xi,yi)的函数间隔为:ri = yi(w·xi+b)
    (2)超平面关于训练数据集的函数间隔为:minri —— 所有样本点的函数间隔最小值
    (3)超平面关于样本点(xi,yi)的几何间隔:ri/||w|| —— 函数间隔/L2范数
    (4)超平面关于训练数据集的几何间隔为:minri/||w|| 
    
    3、学习模型:
        决策函数:f(x) = sign(w·x+b) —— 这个函数就称为线性可分支持向量机
        (1)w·x+b=0 : 对应于特征空间中的一个超平面S
        (2)w:权值向量,感知机参数,超平面的法向量
        (3)b:偏置(bias),感知机参数,超平面的截距
        (4)sign:符号函数,x>=0为+1,x<0为-1
    
    4、学习策略:
        利用间隔最大化求最优分离超平面(感知机+约束条件——>线性可分支持向量机)
        转换为如下图所示的有约束条件最优化问题:
    

    5、学习算法
        求解上述有约束条件的最优化问题 —— 引入拉格朗日因子,转换为求拉格朗日极大极小问题。
        先对w,b求极小,再对a求极大,a求出来之后,用其表示w和b,即为最后结果。
    
        这个思想是什么呢?
        原始问题:最大值的最小值
        对偶问题:最小值的最大值
        在最优问题时,两者的值可证明相等,所以通过求对偶问题的解来代替求原始问题。
        为什么要这样呢?
        原始问题是一个向上开口的二次函数,求最大值就会涉及到边界问题,先求最大值很难,但是求最小值很简单,于是就用了这样一种变换手段。 
    

    三、线性支持向量机与软间隔最大化

    1、与线性可分支持向量机不同点?
    (1)训练数据集:线性不可分,也就是意味着存着某些样本点不能满足函数间隔大于等于1的约束条件。
    (2)支持向量:支持向量是在确定分离超平面的过程中起着决定性作用的那些点。
        对于线性可分支持向量机来说,是落在间隔边界的那些点。
        但是在线性不可分的情况下,支持向量可能有多种情况:
        1)落在间隔边界上
        2)落在间隔边界和分离超平面之间
        3)落在分离超平面上
        4)落在分离超平面误分一侧
    
    2、如何解决?
        引入一个松弛变量§i:
    


    C:惩罚因子,C值大时对误分类的惩罚大,C小时对误分类的惩罚小
    最小化目标函数:一是使得间隔尽量大,二是使误分类点的个数尽量小

    3、学习模型、学习策略、学习算法:思路同线性可分支持向量机
    
    4、合页损失函数:
        二次规划之外的另一种学习方法
    

  • 相关阅读:
    Pandas 学习记录(一)
    python 列表常用操作
    pandas 基本操作
    Numpy np.array 相关常用操作学习笔记
    JS控制背景音乐 没有界面
    Linux Awk使用案例总结
    Yii2 定时任务创建(Console 任务)
    YII2项目常用技能知识总结
    /etc/fstab readyonly 解决办法
    Redis 排行榜 自己简单练习
  • 原文地址:https://www.cnblogs.com/naonaoling/p/5697066.html
Copyright © 2011-2022 走看看