1、什么是硬间隔和软间隔?

当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机

当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机

(体外话:当训练数据线性不可分时,通过使用核技巧以及软间隔最大化,学习非线性支持向量机

2、软间隔加入的松弛变量是如何求解出来的?

线性不可分意味着不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每个样本点引入一个松弛变量(>=0①),使得函数间隔加上松弛变量大于等于1.

                 ②

目标函数为:

                       ③

C>0是惩罚参数,C值的大小决定了误分类的惩罚强弱,C越大,惩罚越强。

其中,①②③是软间隔的目标函数及其约束条件,其余求解过程和硬间隔见下面)一致。

3、SVM为什么采用间隔最大化?

使它区别于感知机,SVM的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,对于线性可分的数据集而言,线性可分分离超平面有无穷多个,但是几何间隔最大的分离超平面是唯一的,意味着以充分大的确信度对数据进行分类,特别地离超平面较近的点。此时的分离超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。

4、为什么SVM要引入核函数?

当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。引入对偶问题以后,所求解的对偶问题中,无需求解真正的映射函数,而需知道其核函数。一方面数据变成了高维空间中线性可分的数据,另一方面不需要求解具体的映射函数,只需求解具体的核函数就行。

核函数(两个函数的内积)定义:是输入空间,H是特征空间,如果存在一个从输入空间到特征空间的映射,

使得对所有,函数K(x,z)满足条件

则K是核函数,是映射函数,是函数的内积。因此,可以直接通过计算K,而不计算映射函数。

5、SVM核函数之间的区别?

线性核:主要是用于线性可分场景,参数少,训练快

多项式核:可以实现将低维的输入空间映射到特征空间,但是参数多,并且当多项式的阶数较高时,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度较高。

高斯核(RBF):局部性强的核函数,参数比多项式核要少,训练场景非常依赖于参数(交叉验证来寻找合适的参数)。

核函数的选择技巧:

  • 利用专家的先验知识预先选定核函数;
  • 采用Cross-Validation方法,即在进行核函数选取时,分别试用不同的核函数,归纳误差最小的核函数就是最好的核函数.如针对傅立叶核、RBF核,结合信号处理问题中的函数回归问题,通过仿真实验,对比分析了在相同数据条件下,采用傅立叶核的SVM要比采用RBF核的SVM误差小很多.
  • 采用由Smits等人提出的混合核函数方法,该方法较之前两者是目前选取核函数的主流方法,也是关于如何构造核函数的又一开创性的工作.将不同的核函数结合起来后会有更好的特性,这是混合核函数方法的基本思想.
  • 参考七月在线的答案

6、为什么SVM对缺失数据敏感?

因为SVM没有处理缺失值的策略,而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要,缺失特征数据将影响训练结果的好坏。

7、为什么目标函数要转化为对偶问题求解?

  • 对偶问题将原始问题中的约束转为了对偶问题中的等式约束
  • 方便核函数的引入
  • 改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。

8、SVM如何解决样本倾斜?

给样本较少的类别较大的惩罚因子,提高这部分样本的重视程度。

9、SVM的损失函数

是合页损失函数(hinge loss),是(wx+b),y是类别值

原理推导:

一、硬间隔支持向量机

支持向量机的学习策略是间隔最大化,可形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数的最小化问题。

学习的目标是在特征空间找到一个分离超平面,能将实例分到不同的类,分离超平面的对应方程是

,因为分离超平面有无穷多个,需要几何间隔最大化来确定唯一解。由于SVM是二分类,因此,y=-1代表是负例,y=1代表是正例。

支持向量(如图H1和H2线上的点):样本中距离超平面最近的点称为支持向量。使得约束条件成立。

间隔:H1和H2之间被称为间隔

函数间隔:可以代表分类预测的正确性及确信度

一个点距离分离超平面的远近可以表示分类预测的确信程度。能够表示点x距离超平面的远近,与y的符号是否一致能够表示分类是否正确,可以表示分类的正确性和确信程度(也是函数间隔)。

几何间隔:

如果成比例改变w,b的值,超平面没有改变,函数间隔却变为原来的2倍,因此,我们需要对w加些约束,如规范化,,此时函数间隔成为几何间隔。即

假设y=-1,点A与超平面的距离是,则

假设y=+1,点A与超平面的距离是,则

则几何间隔为

对于训练数据集来说,分离超平面(w,b)是所有样本点的几何间隔之最小值,即

如果超平面参数w,b改变,函数间隔也成比例改变,但是几何间隔不变。

目标函数为几何间隔最大化,则

由下述函数间隔和几何间隔的关系,可将目标函数进行变化:

目标函数变为

由于函数间隔变化并不影响最优问题求解,因此,将函数变为,并将目标问题转成对偶问题,(将问题简单化,从求解w权重值,到求解a值)。

应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解。优点是对偶问题往往更容易求解且能自然引入核函数,进而推广到非线性分类问题(详解看问题7)。

是拉格朗日乘子,求解方程组(条件极值的解法),令L对w,b的偏导为0:

将结果带回L,就可以得到

的极大,

KKT条件:

二、软间隔支持向量机
在现实任务中,样本的不确定性不能正好将样本线性可分,为了提升模型的泛化能力,引入软间隔来允许支持向量机在一些样本上出错。

线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件,可以为每个样本点引入一个松弛变量(大于0),使得函数间隔加上松弛变量大于等于1,则目标函数变为:

因为松弛变量是非负的,要求间隔可以小于1,当样本点的间隔小于1时,我们放弃了对这些点的精确分类,使得模型有一定的容错能力。

  • 离群的样本点是有值的松弛变量(松弛变量越大,离群点越远),没离群的点的松弛变量等于0。
  • 惩罚因子C决定了对离群点带来损失的重视程度,C越大,惩罚越大,对离群点的要求越严。

计算步骤和硬间隔一样:

KKT条件:

三、非线性SVM

当线性不可分时,将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。常见核函数有:

所求解的对偶问题中,无需求解真正的映射函数,而需知道其核函数。目标函数化简为:

四、序列最小最优算法(SMO)

SMO是一种启发式算法,用来求解二次规划问题。基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么最优化问题的解就得到了。算法包含两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

  • 选取一对需更新的变量
  • 固定 以外的参数,求解式获得更新后的 

机器学习面试——分类算法SVM相关推荐

  1. 机器学习:分类算法SVM(支持向量机)

    支持向量机(Support Vector Machine ,SVM)的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力.对于 ...

  2. [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. 经典分类算法——SVM算法

    文章目录 经典分类算法--SVM算法 1 SVM算法:背景 2 SVM算法思想 3. Hard-SVM算法 4. Soft-Margin SVM算法 5. Kernel SVM算法 6. SVM小结 ...

  4. 机器学习分类算法_达观数据:5分钟带你理解机器学习及分类算法

    1.本文介绍内容:什么是机器学习,机器学习有哪些分类算法,分类算法之k-近邻,决策树,随机森林2.本文适合人群:本文通过通俗易懂的语言和例子介绍核心思想,不拽高大上的名词,适合于不懂机器学习的小白3. ...

  5. 15 分钟带你入门 sklearn 与机器学习(分类算法篇)

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

  6. Sklearn 损失函数如何应用到_15 分钟带你入门 sklearn 与机器学习(分类算法篇)...

    众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机器学习库.它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度增强,k-me ...

  7. 分类算法SVM(支持向量机)

    支持向量机(Support Vector Machine ,SVM)的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力.对于 ...

  8. 【机器学习】总结了九种机器学习集成分类算法(原理+代码)

    大家好,我是云朵君! 导读: 本文是分类分析(基于Python实现五大常用分类算法(原理+代码))第二部分,继续沿用第一部分的数据.会总结性介绍集成分类算法原理及应用,模型调参数将不在本次讨论范围内. ...

  9. 总结了九种机器学习集成分类算法(原理+代码)

    公众号后台回复"图书",了解更多号主新书内容作者:云朵君来源: 数据STUDIO 导读: 本文是分类分析(基于Python实现五大常用分类算法(原理+代码))第二部分,继续沿用第一 ...

最新文章

  1. 三角量测(Triangulation)之再学习
  2. 配置nfs服务器出现的问题
  3. 解决无线网卡 RTL8723BE ubuntu环境下不稳定情况
  4. 解决数据库里表字段带下划线,实体类转小驼峰,Mapper的映射问题
  5. thin还是thick?虚拟磁盘格式的选择题
  6. 如何解决没有文件扩展“.js”的脚本引擎
  7. 【机器学习】数据挖掘实战:金融贷款分类模型和时间序列分析
  8. windows共享内存
  9. [react] react是哪个公司开发的?
  10. 自定义的html radio button的样式
  11. POJ 1451 T9 (字典树好题)
  12. TCP/IP 协议 —— ARP
  13. 凸优化第四章凸优化问题 4.2 凸优化
  14. paip.程序调试的几种方式大总结
  15. 第一次使用CoolEdit Pro将歌曲音频做成伴奏
  16. Android~adb卸载系统预装应用(亲测有效,android开发框架介绍
  17. 华为手机自带浏览器的显示问题
  18. 计算机无法添加打印机,电脑无法添加网络打印机,怎么办?
  19. 黄山市职称计算机报名,黄山职业学校2021中专
  20. 1467 A. Wizard of Orz

热门文章

  1. TSQL中实现ORACLE的多列IN 多列匹配。
  2. 数据结构与算法--9.常见时间复杂度及其之间的关系
  3. java栈顶元素_栈在Java类库中的实现
  4. Liunx 系统调优
  5. python计算a的平方加b的平方_NumPy计算范数2的平方
  6. 第七季2:MP4v2库的移植与播放实战
  7. Linux进程全解4——fork创建子进程
  8. 【 iview 实践指南】之如何优雅地在Table中嵌套Input(代码篇)
  9. oracle 12.2.0.1 搭建 active dataguard
  10. Sql Server常用函数及技巧