大数据,机器学习,人工智能机器学习和人工智能入门机器学习与数据挖掘

机器学习笔记02-支持向量机SVM(上)

2019-07-13  本文已影响0人  化简可得

目录

  1. 什么是SVM
  2. 线性分类器的含义
  3. 怎么找线性分类器

1.什么是SVM

SVM支持向量机,号称机器学习的拦路虎。江湖传言,遇到了他,机器学习就会从入门到放弃。另一方面也就是说,只要搞定了SVM,后面的算法模型学起来都是小意思。

那我们就先打虎,再盘后面的小猫咪。

由于SVM较复杂,我分两篇来进行阐述,本篇仅介绍SVM的基本概念。

先看下官方定义:

支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷,以期获得最好的泛化能力。

VC 维,结构风险,有限样本,模型复杂性,最佳折衷,泛化能力,这一切……真是让人摸不着头脑……

行了,文绉绉的理论从来看不懂,我们还是从算法看起吧。

SVM一般用于解决二分类问题(也可以解决多分类和回归问题,本文暂不涉及),数学化语言概述如下:

样本数据:n个样本,p个输入(x_{1},...,x_{p}) ,1个输出y

第i个样本的输入X_{i}=(x_{i1},x_{i2},...,x_{ip})^{T}, i=1,2,...n

输出y:一般用1和-1作为两类样本的标签

训练样本集D

1
训练目的:以训练样本为研究对象,在样本的特征空间中找到一个超平面 ,将两类样本(+1和-1)有效分开,其中

然而,这些个公式……更是看的云里雾里……

没关系,抽象的数学语言难以理解,我们就从直观的图形和例子开始,抽丝剥茧一点点学。

2.线性分类器的含义

上一篇学线性回归时,是从一元线性回归讲起。一元,即一个自变量,再加上一个因变量,这种数据形式在二维坐标轴中就可以表示成(x,y)。(x,y)的数据形式可以通过画点、画线在二维平面上进行展示,方便初学者理解。

学习算法时通过图的形式来入门,最合适不过。那么,我们讲SVM也从平面上的点和线讲起不就好了。

我们用图看看线性分类器要解决什么样的问题。


2

假设有两类要区分的样本点,一类用黄色圆点代表,另一类用红色方形代表,中间这条直线就是一条能将两类样本完全分开的分类函数。

用前面的数学化语言描述一下这个图,就是:

样本数据:11个样本,2个输入 (x_{1},x_{2}) ,一个输出y

第i个样本的输入X_{i}=(x_{i1},x_{i2})^{T}, i=1,2,...11

输出y:用1(红色方形)和-1(黄色圆点)作为标签

训练样本集D

D=\begin{pmatrix} x_{11}, & x_{12} , & y_{1} \\x_{21} ,& x_{22} , & y_{2} \\... \\x_{n1} ,& x_{n2}, & y_{n} \end{pmatrix},n=11

训练目的:以训练样本为研究对象,找到一条直线 w_{1}x_{1}+w_{2}x_{2}+b=0,将两类样本有效分开。

这里我们引出线性可分的定义:如果一个线性函数能够将样本分开就称这些样本是线性可分的。线性函数在一维空间里,就是一个小小的点;在二维可视化图像中,是一条直直的线;在三维空间中,是一个平平的面;在更高维的空间中,是无法直观用图形展示的超平面。

回想一下线性回归,在一元线性回归中我们要找拟合一条直线,使得样本点(x,y)都落在直线附近;在二元线性回归中,要拟合一个平面,使得样本点(x1,x2,y)都落在该平面附近;在更高维的情况下,就是拟合超平面。

那么,线性分类(此处仅指二分类)呢?当样本点为(x,y)时(注意,和回归不同,由于y是分类标签,y的数字表示是只有属性含义,是没有真正的数值意义的,因此当只有一个自变量时,不是二维问题而是一维问题),要找到一个点wx+b=0,即x=-b/w这个点,使得该点左边的是一类,右边的是另一类。

当样本点为(x1,x2, y)时,要找到一条直线 w_{1}x_{1}+w_{2}x_{2}+b=0 ,将平面划分成两块,使得 w_{1}x_{1}+w_{2}x_{2}+b>0 的区域是y=1类的点, w_{1}x_{1}+w_{2}x_{2}+b<0的区域是y=-1类别的点。

更高维度以此类推,由于更高维度的的超平面要写成 w_{1}x_{1}+w_{2}x_{2}+...+w_{p}x_{p}+b=0 ,会有点麻烦,一般会用矩阵表达式代替,即上面的 W^{T}X+b=0

3

W^{T}X+b=0 这个式子中,X不是二维坐标系中的横轴,而是样本的向量表示。例如上面举的二维平面中的例子,假设绿色框内是的坐标是(3,1),则 X^{T}=(3,1) 。一般说向量都默认是列向量,因此以行向量形式来表示时,就加上转置。因此, W^{T}X+b=0W^{T} 是一组列向量,是未知参数,X是一组行向量,是已知的样本数据,可以理解为 w_{i}x_{i} 的系数。为了打公式方便,下文中不区别列向量和它的转置, W^{T}X+b=0 简单地用wx+b=0表示。

3.怎么找线性分类器

我们还是先看只有两个自变量的情况下,怎么求解最佳的线性分割。


4

如图,理想状态下,平面中的两类点是完全线性可分的。这时问题来了,这样能把两类点分割的线有很多啊,哪条是最好的呢?

支持向量机中,对最好分类器的定义是:最大边界超平面即距两个类别的边界观测点最远的超平面。在二维情况下,就是找最宽的马路,在三维问题中,就是找最厚的木板。

5

显然,上图中左边的马路比右边的宽,马路的边界由1、2、3这三个点确定,而马路中间那条虚线,就是我们要的wx+b=0。

可以看到,我们找马路时,只会考虑+1类中,离-1类近的点,还有-1类中,离+1类距离近的点,即图中的1、2、3和a、b、c这些点。其他距离对方远的样本点,我们做支持向量机这个模型时,是不考虑的。

由于最大边界超平面仅取决于两类别的边界点这些点被称为支持向量因此这种算法被命名为支持向量机。这个定义就比较好理解了吧?

未完待续……


原文链接https://zhuanlan.zhihu.com/p/73477179

上一篇下一篇

猜你喜欢

热点阅读