这里我们将简要介绍下SVM是什么,然后将做一些SVM的经典例子,其中也会结合一些其他的算法来完成这些例子
我的配置:Python 3.7+, Pycharm
一 SVM介绍
1.1 SVM可以做什么
- 手写数字识别
目前最好的识别水平:- LeNet 4(错误率<0.7%)
- 多项式支持向量机(错误率<0.8%)
- 性别识别
通过SVM来判断是男还是女 - 行人检测
1.2 SVM的理论基础
1.2.1 超平面的描述
在数学中,超平面是n维欧氏空间中余维度等于1的子空间,即n维空间中的超平面使n-1维的子空间。这是平面中的只献,空间中的平面的推广
设 F F F为域(可以先将F视为实数集R),n维空间 F n F^{n} Fn中的超平面是由以下方程确定的:
a 1 x 1 + . . . . + a n x n = b a_{1}x_{1}+....+a_{n}x_{n} = b a1x1+....+anxn=b
这个看起来是一个由多变量组成的平面,接下来我们用数学概念来理解它
① 低维空间上对超平面的简单了解
理解:高中数学课本上的“点动成线,线动成面,面动成体”
我们先从低维空间出发,在低维空间中简单的来理解超平面:
- 一维空间中,只有一个维度,一维坐标系为: a 1 x 1 + b = 0 a_{1}x_{1}+b=0 a1x1+b=0在一维空间上确定了一个点,点则是一维空间上的超平面
- 二维空间上,由两个维度,为平面直角坐标系: a 1 x 1 + a 2 x 2 + b = 0 a_{1}x_{1}+a_{2}x_{2} + b = 0 a1x1+a2x2+b=0在二维空间上确定了一条直线,则直线是二维空间上的超平面
- 三维空间中,三个维度,三维坐标系: a 1 x 1 + a 2 x 2 + a 3 x 3 + b = 0 a_{1}x_{1}+a_{2}x_{2}+a_{3}x_{3}+b=0 a1x1+a2x2+a3x3+b=0在三维空间上确定了一个平面,则平面是三维空间上的超平面
- 以此类推到n维空间上,感觉有点像降维打击和层层升级的感觉hmmm
② 系统论证(可略)
n维空间中的超平面可以由以下方程给出:
a 1 x 1 + a 2 x 2 + . . . . + a n x n + b = 0 a_{1}x_{1} + a_{2}x_{2} + .... + a_{n}x_{n} + b= 0 a1x1+a2x2+....+anxn+b=0
令 w w w和 x x x都是n维列向量, x x x是 n n n维空间上的法向量, b b b是一个师叔,代表圆点到超平面的距离,则有:
x = ( x 1 , x 2 , . . . , x n ) T a = a 1 , a 2 , . . . , a n T 改 写 成 a T x + b = 0 x = (x_{1}, x_{2}, ..., x_{n})^{T} \\ a = {a_{1}, a_{2}, ..., a_{n}}^{T} \\ 改写成\\ a^{T}x+b=0 x=(x1,x2,...,xn)Ta=a1,a2,...,anT改写成aTx+b=0
在这里,我们从三维空间出发,在三维空间中,平面的定义为:
a 1 x 1 + a 2 x 2 + a 3 x 3 + b = 0 a_{1}x_{1} + a_{2}x_{2} +a_{3}x_{3} + b= 0 a1x1+a2x2+a3x3

本文介绍了支持向量机SVM的基础知识,包括超平面的数学描述、线性与非线性SVM及其特点。接着,通过Python展示了SVM在MNIST手写数字识别、ADULT性别判断和IRIS数据集分类的应用,强调了SVM的高效性和鲁棒性,同时也指出了SVM在大规模数据和多分类问题上的挑战。
最低0.47元/天 解锁文章
1277

被折叠的 条评论
为什么被折叠?



