[机器学习] - 支持向量机

欢迎转载,转载请注明出处:https://blog.csdn.net/qq_41709378/article/details/106241378
————————————————————————————————————————————————————

支持向量机(support vector machines, SVM) 是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadraticprogramming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

方法 适用问题 模型特点 模型类型 学习策略 学习的损失函数 学习算法
支持向量机 二类分类 分离超平面,核技巧 判别模型 极小化正则化合页损失,软间隔最大化 合页损失 序列最小最优化算法(SMO)

1 What’s the SVM?
首先,支持向量机不是一种机器,而是一种机器学习算法。
  1、Support Vector Machine ,俗称支持向量机,是一种 supervised learning (监督学习)算法,属于 classification (分类)的范畴。
  2、在数据挖掘的应用中,与 unsupervised learning (无监督学习)的 Clustering(聚类)相对应和区别。
  3、广泛应用于 Machine Learning (机器学习),Computer Vision (计算机视觉,就叫 cv)和 Data Mining (数据挖掘)当中。

2 “ Machine (机)” 是什么?
Classification Machine,是分类器,这个没什么好说的。也可以理解为算法,机器学习领域里面常常用 “机” 也就是 machine 这个字表示算法。

3 “支持向量” 又是什么?
通俗理解: support vector (支持向量)的意思就是数据集中的某些点,位置比较特殊。比如 x+y-2=0 这条直线,直线上面区域 x+y-2>0 的全是 A 类,下 面的 x+y-2<0 的全是 B 类,我们找这条直线的时候,一般就看聚集在一起的两类数据,他们各自的 最边缘 位置的点,也就是最靠近划分直线的那几个点, 而其他点对这条直线的最终位置的确定起不了作用,所以我姑且叫这些点叫 “支持点”(意思就是有用的点),但是在数学上,没这种说法,数学里的点,又可以叫向量,比如二维点 (x,y) 就是二维向量,三维度的就是三维向量 (x,y,z)。所以 “支持点” 改叫 “支持向量” ,听起来比较专业。
不通俗的理解: 在 maximum margin(最大间隔)上的这些点就叫 “支持向量”,我想补充的是为啥这些点就叫 “支持向量” ,因为最后的 classification machine (分类器)的表达式里只含用这些 “支持向量” 的信息,而与其他数据点无关:
在这里插入图片描述
在这个表达式中,只有支持向量的系数 α i {\alpha _i} αi不等于 0,所以在最后求分离超平面时十分重要 。
如果还是不怎么理解,不要紧,看下图,“支持向量” 就是图中用红色框框圈出来的点。
在这里插入图片描述

4 支持向量机能解决什么问题?
  最基本的应用是数据分类,特别是对于非线性不可分数据集。支持向量机不仅能对非线性可分数据集进行分类,对于非线性不可分数据集的也可以分类(因为现实场景中,样本数据往往是线性不可分的)。

现实场景一: 样本数据大部分是线性可分的,不存在噪声点,可用硬间隔支持向量机进行分类;但是只是在样本中含有少量噪声或特异点,去掉这些噪声或特异点后线性可分 => 用支持向量机的软间隔方法进行分类;
现实场景二: 样本数据完全线性不可分 => 引入核函数,将低维不可分的非线性数据集转化为高维可分的数据集,可以引用非线性支持向量机进行分类;

5 接下来,从4个方面分析支持向量机。
[机器学习] - 拉格朗日乘子法与KKT条件.
[机器学习] - 支持向量机(一): 硬间隔支持向量机.
[机器学习] - 支持向量机(二): 软间隔支持向量机.
[机器学习] - 支持向量机(三): 序列最小优化算法(SMO算法).
[机器学习] - 支持向量机(四): 核函数.
[机器学习] - 支持向量机(五): SVM程序 - Python.

猜你喜欢

转载自blog.csdn.net/qq_41709378/article/details/106241378
今日推荐