支持向量机SVM-机器学习ML

来源:互联网 发布:雨人软件 编辑:程序博客网 时间:2024/05/16 10:47

参考:

1.《统计学习方法》李航

2. http://blog.csdn.net/macyang/article/details/38782399/

3. https://baike.baidu.com/item/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA/9683835?fr=aladdin

4. https://www.zhihu.com/question/21094489


############################################################

一、了解SVM

1.1什么是SVM(Support Vector Machines

   什么是SVM,要从分类说起。分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),该模型能把数据库中的数据项映射到给定类别中的某一个,从而可以用于预测未知类别。比如二分类(是或否,0或1)就是将原始数据映射成是否。

支持向量机算法便是一种分类方法。

   所谓支持向量机,顾名思义,分为两个部分了解:一,什么是支持向量(简单来说,就是支持或支撑平面上把两类类别划分开来的超平面的向量点,下文将具体解释);二,这里的“机(machine,机器)”便是一个算法。在机器学习领域,常把一些算法看做是一个机器,如分类机(当然,也叫做分类器),而支持向量机本身便是一种监督式学习的方法(至于具体什么是监督学习与非监督学习,请参见此系列Machine Learning & Data Mining 第一篇),它广泛的应用于统计分类以及回归分析中。

    而支持向量机是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。
    对于不想深究支持向量机原理的同学(比如就只想看看支持向量机是干嘛的),那么,了解到这里便足够了,不需上层。而对于那些喜欢深入研究一个东西的同学,甚至究其本质的,咱们则还有很长的一段路要走,万里长征,咱们开始迈第一步吧(相信你能走完)。


1.2 线性分类

    OK,在讲SVM之前,咱们必须先弄清楚一个概念:线性分类器(也可以叫做感知机,这里的机表示的还是一种算法,本文第部分“证明SVM”中会详细阐述) 

    线性分类可以自己去了解一下常用的Logistic(也称作Sigmoi函数)分类函数。


1.3 线性分类的例子

    下面举个简单的例子,一个二维平面(一个超平面,在二维空间中的例子就是一条直线),如下图所示,平面上有两种不同的点,分别用两种不同的颜色表示,一种为红颜色的点,另一种则为蓝颜色的点,红颜色的线表示一个可行的超平面。

    从图1.2中我们可以看出,这条红颜色的线把红颜色的点和蓝颜色的点分开来了。而这条红颜色的线就是我们上面所说的超平面,也就是说,这个所谓的超平面的的确确便把这两种不同颜色的数据点分隔开来,在超平面一边的数据点所对应的y全是–1,而在另一边全是1
    接着,我们令分类函数


显然,如果f(x) = 0,那么x是位于超平面上的点。我们不妨要求对于所有满足f(x)<0的点,其对应的y等于–1,而f(x)>0则对应y= 1的数据点。 

    有些时候,或者说大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在(不过关于如何处理这样的问题我们后面会讲),这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。
    更进一步,我们在进行分类的时候,将数据点 x代入f(x)中,如果得到的结果小于0,则赋予其类别–1,如果大于0则赋予类别1。如果f(x) = 0,则很难办了,分到哪一类都不是。


请读者注意,下面的篇幅将按下述 点走:


    总结成一句话即是:从最大间隔出发(目的本就是为了确定法向量w),转化为求对变量wb的凸二次规划问题。亦或如下所示。

1.4 函数间隔和几何间隔 Functional Margin & Geometric Margin

一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。

在超平面w·x+b确定的情况下,|w·x+b|能够相对的表示点x到距离超平面的远近,而w ·x+b的符号与类标记y的符号是否一致表示分类是否正确,所以,可以用量y·w·x+b的正负性来判定或表示分类的正确性和确信度。

于此,我们便引出了定义样本到分类间隔距离的函数间隔的概念。

函数间隔:


点到超平面的距离定义:几何间隔




1.5 最大间隔分类器

于此,我们已经很明显的看出,函数间隔和几何间隔相差一个w的缩放因子。按照我们前面的分析,对一个数据点进行分类,当它的间隔越大的时候,分类正确的把握越大。对于一个包含n个点的数据集,我们可以很自然地定义它的间隔为所有这n个点的间隔中最小的那个。于是,为了使得分类的把握尽量大,我们希望所选择的超平面能够最大化这个间隔值。
通过上节,我们已经知道

1. 函数间隔明显是不太适合用来最大化的一个量,因为在超平面固定以后,我们可以等比例地缩放w的长度和b的值,这样可以使得f(x) =wTx+b的值任意大,亦即函数间隔γ^可以在超平面保持不变的情况下被取得任意大。
2. 而几何间隔则没有这个问题,因为除上了这个分母,所以缩放wb的时候的值是不会改变的,它只随着超平面的变动而变动,因此,这是更加合适的一个间隔。

这样一来,我们的最大间隔分类器的目标可以定义为


通过最大化间隔,我们使得该分类器对数据进行分类时具有了最大的把握。但,这个最大分类间隔器到底是用来干嘛的呢?很简单,支持向量机通过使用最大分类间隔来设计决策最优分类超平面,而为何是最大间隔,却不是最小间隔呢?因为最大间隔能获得最大稳定性与区分的确信度,从而得到良好的推广能力(超平面之间的距离越大,分离器的推广能力越好,也就是预测精度越高,不过对于训练数据的误差不一定是最小的)。

1.6 到底什么是支持向量 SV Support Vector



############################################################

二、深入SVM

2.1 从线性可分到线性不可分

从原始问题到对偶问题










序列最小最优化算法SMO


线性不可分的情况



2.2 核函数


















2.3使用松弛变量处理离群点的方法






三、SVM证明

有兴趣的继续参考文件:支持向量机通俗导论 ——理解 SVM 的三层境界







原创粉丝点击