支持向量机SVM简介
1. 定义及原理
SVM是一种二分类模型,是定义在特征空间上的间隔最大化(分离超平面)的线性分类器,(间隔最大使它有别于感知机)。
1.1 SVM适合处理什么样的数据?
适合小样本(非线性、高维模式)学习。高维稀疏、样本少(参数只与sv有关,数量少,所以需要的样本少,由于参数跟维度没有关系,所以可以处理高维问题)。
1.2 原理
模型 -----> 分离超平面;
策略 -----> 间隔最大化;(分类决策函数:
)
学习算法 -----> 凸二次规划;
(1)当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器(线性可分SVM)。
(2)当训练样本近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器(线性SVM)。
(3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性SVM。
1.3 函数间隔
因为一个点距离分离超平面的远近可以表示分类预测的确信程度,而
的符号与类标记y的符号是否一致能够表示分类是否正确,所以可用
来表示分类的正确性及确信度,即函数间隔
。
1.4 几何间隔
又因为成比例地改变w和b,函数间隔也将以相应比例变化,这时对w规范化,使,使得间隔是确定的,此时即几何间隔:
2. 间隔最大化
2.1 SVM的基本思想
学习策略:间隔最大化,即求解能够正确划分训练数据集且几何间隔最大的分离超平面。
几何间隔--->函数间隔
因为函数间隔的取值并不影响最优化问题的解,令
,并将
原始问题(最优化)
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量,满足
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。SV的个数一般很少,所以SVM由很少的“重要的”训练样本确定。
线性不可分意味着某些样本点outliers(),不能满足函数间隔>=1的约束条件,为此可对每个样本点引进一个松弛变量
,使函数间隔加上
。即
s.t.
其中C(>0)为惩罚参数,C值大时对误差分数的惩罚增大。
最小目标函数即(1),使间隔尽量大(2),使误分类点个数尽量小。
2.1 SVM为什么采样间隔最大化?
当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。
线性可分SVM利用间隔最大化求得最优分离超平面,这时解是唯一的;
另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。
并说明几何间隔、函数间隔及从函数间隔到求解
时的w,b(即最大间隔的由来)。
3. 线性可分SVM的对偶算法
3.1 为什么将原始问题转换为对偶问题?
1. 对偶问题往往更容易求解;(结合拉格朗日和KKT条件)
2. 自然引入核函数,进而推广到非线性分类问题。(拉格朗日表达式中有内积,而核函数也是通过内积进行映射的。)
3.2 对偶问题
针对原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。
优点:
1. 对偶问题往往更容易求解;
2. 自然引入核函数,进而推广到非线性分类问题。
为每一个不等式约束(2),引进拉格朗日乘子
定义拉格朗日函数:------(3)
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题。
求
KKT条件
------------ (1)
------------ (2)
------------ (3)
------------ (4)
------------ (5)
由(3)得:
其中
由以上得:
将以上带入(3)得:
再求即是对偶问题:
s.t.
由上得svm的对偶形式为:
SMO(启发式算法):
如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充要条件。
SMO算法包括两个部分:
(1)求解两个变量二次规划的解析方法;
(2)选择变量的启发式方法。
SMO算法是支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止。这样通过启发式的方法得到原二次规划问题的最优解。因为子问题有解析解,所以每次计算子问题都很快,虽然计算子问题次数很多,但在总体上还是高效的。
4. 有哪些核函数
4.1 为什么要引入核函数?
当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
在特征空间的内积=它们在原始样本空间中通过K计算的结果。
特征空间维数可能很高,甚至可能是无穷维,因此直接计算是比较困难的。
在学习预测中,只定义核函数K(x,y),而不显示定义。
4.2 有哪些核函数?
1. 多项式核函数
2. 高斯核函数
又叫径向基核函数(RBF核)
Gauss径向基函数是局部性强的核函数,其外推为随着增大而减弱,这个核会将原始空间映射为无穷维。若
很大,高次特征上的权重实际上衰减的非常快,相当于一个低维的子空间;若
很小,此时泰勒展开式中有效的项将变得非常多,那么就相当于映射到了一个无穷维的空间,任意数据都将变得线性可分,但可能会带来严重的过拟合。
3. 字符串核函数
字符串核是定义在字符串集合上的核函数(核函数不仅可以定义在欧氏空间上,还可以定义在离散数据的集合上),一般应用在文本分类、信息检索、生物信息学等方面。
4. 线性核函数
5. 拉普拉斯核函数
6. sigmoid核函数
4.3 核函数的选择
线性核的训练速度快,一般情况下效果还不错,在高维情况下,其他核需要调参(CV),速度慢。
高斯核必然映射到无穷维,因为核函数的泰勒展开有无穷多项。
径向基RBF核需要计算e的幂,比较耗时。
多项式核参数众多,难调,但其结果更加直观,可解释性强,所以如果对数据有一定的了解,可以考虑使用多项式核。
5. LR与SVM的选择
(1)特征数量很大,与样本数量差不多时(此时特征够用了,很大可能是线性问题,没必要映射到高维空间),选用LR或Linear核的SVM。
(2)特征数量比较小,样本数量一般(不算大也不算小),选用SVM+高斯核。
(3)特征数量比较小,而样本数量很多,需要手工添加一些特征,变为第一种情况。
6. 一些问题
6.1 为什么SVM对缺失数据敏感?
此处的缺失数据指缺失某些特征的数据,即向量数据不完整。SVM没有处理缺失值的策略(决策树有),而SVM希望样本在特征空间中线性可分,所以缺失数据将影响训练结果的好坏。
解决方法:
1. 对多数类和少数类采用不同的惩罚因子;
2. 采用既能代表多数类样本分布的特征,又能对分类界面有一定影响的样本特征欠抽样方法。
6.2 SVM如何处理多分类问题?
对训练器进行组合,一对一,一对多,...
1. 一对多(one-vs-all)
针对每个类都训练出一个分类器(该类为正类,其余类为负类),这样针对k个类可以训练出K个分类器,当有一个新样本时,用着k个分类器来预测,哪个分类器的概率高,样本就属于哪一类。缺点是偏差高。
2. 一对一(one-vs-one)
针对任意两个类训练出一个分类器,若有k类,需训练出
(k(k-1)/2)个分类器,当有一个新样本时,用这
个分类器来预测,每当被判定为某一类时,该类就加一,最后票数最多的类别被认定为该样本的类。libsvm是这么做的,虽然分类器多,但训练速度要比一对多快,因为训练复杂度与样本数量有关。
6.3 libsvm都使用哪些参数,如何调参?
使用RBF核,调整C和Y(使用交互验证),RBF参数少(样本数量>>特征数量),模型简单。
6.4 数据不规范化对svm的影响?
大值特征会掩盖小值特征(内积计算),对偶问题的优化目标函数中有向量的内积计算,RBF中也有向量的距离计算,小值特征会被忽略,影响算法的精度。
6.5 为什么要选择最大间隔分类?
几何间隔与样本的误分类次数间存在关系:
误分类次数<=,其中
为样本分类间隔距离;R为所有样本中的最长向量值。
7. 优缺点
7.1 优点
1. 可用于线性分类、非线性分类以及回归问题;
2. 低泛化误差;
3. 容易解释(思想简单,将样本与决策面的间隔最大化),分类效果好;
4. 计算复杂度较低。
7.2 缺点
1. 对参数和核函数比较敏感;
2. 原始的SVM只比较擅长处理二分类问题;
3. 对大规模数据训练比较困难。
支持向量机SVM简介相关推荐
- OpenCV支持向量机SVM简介
OpenCV支持向量机SVM简介 支持向量机SVM简介 目标 什么是SVM? 最佳超平面如何计算? 源代码 解释 设置训练数据 设置SVM的参数 由SVM分类的区域 支持向量 结果 支持向量机SVM简 ...
- 支持向量机(SVM)简介
支持向量机(support vector machine, SVM):是监督学习中最有影响力的方法之一.类似于逻辑回归,这个模型也是基于线性函数wTx+b的.不同于逻辑回归的是,支持向量机不输出概率, ...
- 支持向量机(SVM)学习小记
支持向量机(SVM) 简介 是一种二分类模型,基本模型的定义是在特征空间上的间隔最大的线性分类器 间隔最大有利于感知 学习策略: 间隔最大化,可以形式化为一个求解凸二次规划问题,也等价于正则化的合页损 ...
- [机器学习算法]支持向量机SVM原理简介
一.问题和超平面描述 给定训练集 分类学习最基本的想法就是基于训练集在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,如下图所示: 直观来看,应该去找位于 ...
- MATLAB实现支持向量机SVM分类简介
1. 支持向量机SVM 支持向量机(SVM, support vector machine)是名噪一时的机器学习方法,自20世纪末以来在模式识别领域风生水起,至今仍然活跃在各大论文期刊中.无论是和其他 ...
- 【直观详解】支持向量机SVM
[阅读时间] 13min - 19min [内容简介] 详解解读什么是支持向量机,如何解支持向量以及涉及的拉普拉斯乘子法,还有核方法的解读. 1 什么是支持向量机-SVM 支持向量机-SVM(Supp ...
- 机器学习-支持向量机SVM算法
文章目录 简介 原理 硬间隔 支持向量 对偶问题 软间隔 核函数 SMO算法 小结 多分类问题 回归问题 应用示例 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点 ...
- 【SVM预测】基于人工蜂群算法优化支持向量机SVM实现数据预测附Matlab代码
1 简介 为确定合理的底板防水煤岩柱尺寸,减少底板突水安全事故的发生,利用支持向量机(SVM)与人工蜂群算法(ABCA)综合研究底板破坏深度问题.由于SVM训练参数惩罚因子C和核函数宽度g的选择对预测 ...
- 【SVM分类】基于人工蜂群算法优化支持向量机SVM实现数据分类附Matlab代码
1 简介 为确定合理的底板防水煤岩柱尺寸,减少底板突水安全事故的发生,利用支持向量机(SVM)与人工蜂群算法(ABCA)综合研究底板破坏深度问题.由于SVM训练参数惩罚因子C和核函数宽度g的选择对预测 ...
最新文章
- OPNsense 18.7.X汉化包发布!
- 博主的办公室和他的工作台
- “” '' ``区别 初学者自用
- python基础之面向对象编程
- ecshop 后台添加评论_技术小白如何添加服务号模板消息?服务号的模板消息功能到底该怎么使用?...
- python3入门代码-Python3 入门教程 简单但比较不错
- vue学习笔记-14-过滤器
- oppo手机快速截屏的方法
- 欧莱雅迎来入华25周年;万代南梦宫集团将启用新logo | 美通企业日报
- toDesk 远程连接软件 连接远程电脑后黑屏
- python计算单词长度_python – 返回字符串中的单词长度
- 2020年Web前端学习网站导航
- 实现微博自动化脚本-方案对比分析
- 硅谷华人AI精英大批回国成趋势,BAT在美设「挖人」据点,猎头暗中潜伏
- 全息投影的三种热门展示方式
- 戴尔服务器720dx格式化硬盘,《图解戴尔iDRAC服务器远程控制设置》.docx
- LeetCode:911. 在线选举————中等
- 顶风作案:谈一谈债务危机
- 十三:python知识总结(更新中)
- SAP物料货架寿命管理
热门文章
- 根据淘宝商品ID免费获取商品详细信息(实时价格、尺码、库存等) 超详细
- javascript 清除 服务端 php cookie,Javascript清除cookie的方法
- html 传参阻止冒泡,angular阻止冒泡事件
- GPLT 特立独行的幸福
- 洛谷 P1650 赛马
- 公务员服务器期未能考文职么,考上文职后,能否边干边考公务员?
- Linux ubuntu Alsamixer 前置音响/耳机 没有声音
- 什么样的量化交易策略才是最有用的?
- Codeforces Round #742 (Div. 2) B、C 题解
- 美丽的窗花java分形_中班美丽的窗花教案