机器学习算法(分类算法)—支持向量机(1)

来源:互联网 发布:网站备案域名怎么买 编辑:程序博客网 时间:2024/05/22 12:10

一、引言

    支持向量机(Support Vector Machines, SVM)被公认为比较优秀的分类模型,有很多人对SVM的基本原理做了阐述,我在学习的过程中也借鉴了他们的研究成果,在我的博客中只是想介绍基本的原理,用通俗易懂的方式把原理解释清楚,并期望通过MATLAB的代码实现这些基本的原理。由于SVM对数学理论的要求很高,并且SVM的形式也有多种,有不同的实现方式,在这个系列中我们重点关注以下几个方面:
  • 支持向量机的一些基本概念
  • 线性可分支持向量机的原理
  • 线性支持向量机的原理
  • 非线性支持向量机的原理
  • 支持向量机的实现方法——序列最小优化算法(SMO)

二、支持向量机的基本原理

    在前面的博文中介绍了Rosenblatt感知机的基本原理,Rosenblatt感知机是神经网络模型和支持向量机SVM的基础,但是Rosenblatt感知机只能处理线性可分的问题,神经网络和支持向量机的功能就更强大了,既能处理线性可分的问题,又能处理线性可分的问题。
    支持向量机SVM是定义在特征空间上的间隔最大的线性分类器,在Rosenblatt感知机中是通过计算分类误差求得分离超平面的,在SVM中则使用了间隔最大这样的特征。
    SVM可以这样定义:对于数据集(无论线性可分还是线性可分),通过间隔最大(处理线性可分与非线性可分略有不同)这样的优化问题求得分离超平面

这样就可以得到分类决策函数

其中,为符号函数

三、支持向量机的分类

    针对不同的问题有不同的支持向量机,主要会有这样几种支持向量机
  • 线性可分支持向量机:主要求解线性可分的问题
  • 线性支持向量机:主要处理近似线性可分问题
  • 非线性支持向量机:主要处理线性不可分的问题

四、支持向量机里的一些基本概念

    支持向量机有着强大的理论基础,在分析SVM算法的过程中需要使用到一些基本的概念,在这里罗列一下,主要有以下几个方面:

1、函数间隔和几何间隔

   对于一个线性可分问题,如下图所示:

(线性可分)选自:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495537.html
分隔超平面上方的为正类,下方的为负类。一个点距离分离超平面的远近可以表示为分类预测的确信程度,如上图中的A,B和C三个正类,由于A离分离超平面较远,若预测A为正类,则比较确信预测是正确的;C离超平面较近,若预测其为正类就不那么确信。
    对于数据集和分离超平面
  • 函数间隔:定义分离超平面关于样本点的函数间隔为
  • 几何间隔:定义分离超平面关于样本点的函数间隔为

2、拉格朗日对偶性

   拉格朗日函数主要是用来处理带约束的优化问题。
   假设是定义在上的连续可微函数,对于带约束的优化问题:


引进广义拉格朗日函数:

要求的最小值:,可以通过求解其对偶问题,即求解




1 0
原创粉丝点击