1. 请说一下SVM的原理/简要介绍SVM
SVM 是一种二分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。
- 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
- 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
- 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
以上各种情况下的数学推导应当掌握,硬间隔最大化(几何间隔)、学习的对偶问题、软间隔最大化(引入松弛变量)、非线性支持向量机(核技巧)。
SVM
2. SVM 为什么采用间隔最大化
- 当训练数据线性可分时,就会存在无数个分离超平面可以将训练数据正确的分开。
- 线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。
-
另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强。
间隔最大化
可以借此机会阐述一下几何间隔以及函数间隔的关系。
3. 为什么要将求解 SVM 的原始问题转换为其对偶问题
- 一是对偶问题往往更易求解,当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。
- 二是可以自然引入核函数,进而推广到非线性分类问题。
4. 为什么 SVM 要引入核函数
- 当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在高维特征空间内线性可分。
- 而引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。
- 核函数的定义:K(x,y)=<ϕ(x),ϕ(y)>,即在特征空间的内积等于它们在原始样本空间中通过核函数 K 计算的结果。
- 一方面数据变成了高维空间中线性可分的数据,
-
另一方面不需要求解具体的映射函数,只需要给定具体的核函数即可,这样使得求解的难度大大降低。
为什么引入核函数
特征映射
5. SVM 不同核函数之间的区别
一般选择线性核和高斯核,也就是线性核与 RBF 核。
- 线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果已经很理想了。
- RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。
- 如果 Feature 的数量很大,跟样本数量差不多,这时候选用线性核的 SVM。
- 如果 Feature 的数量比较小,样本数量一般,不算大也不算小,选用高斯核的 SVM。
其他的还有
- Sigmoid 核 Sigmoid 核
- Cosin 核 Cosin 核
- Chi-squared 核 Chi-squared 核
6. 扩展SVM到支持多个类别
两种方法
-
OVR (one versus rest): 对于K个类别的情况, 训练个SVM, 第个SVM用于判读任意条数据是属于类别还是属于类别非. 预测的时候, 具有最大值的 表示给定的数据 x 属于类别.
-
OVO (one versus one), 对于个类别的情况, 训练个SVM, 每一个SVM只用于判读任意条数据是属于中的特定两个类别. 预测的时候, 使用个SVM做 次预测, 使用计票的方式决定数据被分类为哪个类别的次数最多, 就认为数据属于此类别.
7. 支持向量机的优势
- 泛化性能比较好, 不容易过拟合
- 可以在较少的数据下取得好的性能
- 存在全局最优解
- 存在高效实现的训练算法
- 可以使用kernel trick处理非线性的问题
8. 缺点
- 大规模训练样本(m阶矩阵计算) 速度慢
- 传统的SVM不适合多分类
- 对缺失数据、参数、核函数敏感
9. 为什么SVM对缺失数据敏感
- 这里说的缺失数据是指缺失某些特征数据,向量数据不完整。
- 因为SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏
10. SVM推导
函数间隔—>几何间隔—>几何间隔最大化—>函数间隔最大化—>令r^=1—> max 变 min—->拉格朗日函数—->求解对偶问题的3个步骤
(1)线性可分 (2)线性近似可分 (3)线性不可分
SVM和LR的不同
1、样本点对模型的作用不同。SVM中,只有关键的样本点(支持向量)对模型结果有影响,而LR中,每一个样本点都对模型有影响。
2、损失函数不同。SVM是hinge损失函数,LR是log损失函数
3、理论基础不同。SVM基于严格的数学推导,LR基于统计。
4、输出不同。LR可以对每个样本点给出类别判断的概率值,SVM无法做到。
5、可处理的特征空间维度不同。LR在特征空间维度很高时,表现较差。SVM则可以通过对偶求解高效应对这一挑战。
6、防止过拟合能力不同。SVM模型中内含了L2正则,可有效防止过拟合。LR要自己添加正则项。
7、处理非线性分类问题能力不同。SVM可通过核函数灵活地将非线性问题转化为线性分类问题。LR如果要做到这一点,需要自己手动地进行特征转换。
8、处理分类问题能力不同。SVM只能处理二类分类问题,如果要处理多类别分类,需要进行 one VS one 或one VS all建模。LR可以直接进行多类别分类。
9、计算复杂度不同。对于海量数据,SVM的效率较低,LR效率比较高。
10、对数据要求不同。SVM依赖于数据表达出的距离测度,所以需要对数据进行标准化处理,而LR不需要。
11、能力范围不同。 SVM拓展后,可解决回归问题,LR不能。
12、可解释性不同。LR基于统计,可解释性比SVM好。
13、抗噪声数据能力不同。SVM的损失函数基于距离测度,抗噪声能力要强于LR。
参考:
https://cloud.tencent.com/developer/user/1478933
BAT面试题1:请简要介绍下SVM
机器学习面试篇:蚂蚁金服电话面试二
数据挖掘面试题之SVM和LR的不同
SVM 高频面试题
这样一步一步推导支持向量机,谁还看不懂
机器学习岗位面试问题汇总 之 SVM
网友评论