2025年小赵讲堂系列3-SVM算法这点小事

小赵讲堂系列3-SVM算法这点小事万物皆可深度学习 但 SVM 是经典算法里面的一颗明珠 SVM 算法历来为考察数学证明的重点 一定要能手撕 当然实在不能手撕的 例如本菜鸡 一定要看懂其中的证明过程 明白每个参数是怎么回事 这一块的详细数学推导见统计学习方法 注意 例如什么是

大家好,我是讯享网,很高兴认识大家。

万物皆可深度学习,但SVM是经典算法里面的一颗明珠。

SVM算法历来为考察数学证明的重点,一定要能手撕,当然实在不能手撕的(例如本菜鸡),一定要看懂其中的证明过程,明白每个参数是怎么回事,这一块的详细数学推导见统计学习方法。
注意: 例如什么是,为什么用:KKT条件(有约束转换无约束),对偶问题,目标函数,拉格朗日,凸优化都是需要掌握的重点。

1. SVM的原理?(手撕自己看书)

SVM是一种二类分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机)
当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
当训练数据近似线性可分时,引入松弛变量和惩罚因子,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
注: 以上各SVM的数学推导应该熟悉:硬间隔最大化(几何间隔)—学习的对偶问题—软间隔最大化(引入松弛变量)—非线性支持向量机(核技巧)

2. 为什么SVM要引入核函数?最常见的核函数是什么?该核函数有哪些特点?说说还有别的核函数吗?

主要是原始空间会存在线性不可分的情况(如下图),使用核函数可以将其从原始空间映射到更高维的特征空间,使其线性可分。
在这里插入图片描述
讯享网
常用的核函数是径向基函数,这个函数长下面这样,这个核会将原始空间映射为无穷维空间。不过,如果 σ 选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果 σ 选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数σ ,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。但是注意,其对参数依赖严重,往往需要调参。
在这里插入图片描述
常用的核函数还有以下几个:
在这里插入图片描述
Linear核函数也较为常用,速度快,但效果不如上面的高斯核(RBF)。

3. 在空间中线性可分的两类点,分别向SVM分类的超平面上做投影,这些点的投影依旧线性可分吗?

不,事实上空间中任意线性可分的两类点,在SVM的超平面投影上都是线性不可分的,主要由于SVM的分类超平面仅由支持向量决定。
在这里插入图片描述简单的理解是反证法。假设存在一个SVM 分类超平面使所有支持向量在该超平面上的投影依然线性可分,如下图所示。根据简单的初等几何知识不难发现,图中AB两点连线的中垂线所组成的超平面(绿色虚线)是相较于绿色实线超平面更优的解,这与之前假设绿色实线超平面为最优的解相矛盾。考虑最优解对应的绿色虚线,两组点经过投影后,并不是线性可分的。
在这里插入图片描述
推荐阅读:严谨数学推导

4. 是否存在一组参数使得SVM训练误差为0?训练误差为0的SVM分类器一定存在吗?如果考虑松弛变量呢?

注意!!!这是三个问题,第一个问题的答案是“Yes”,第二个问题的答案是“Yes”(前两问都可以通过固定b简化目标函数来解决),最后一个问题答案是“NO”(因为现在目标函数存在两个优化目标,一个是训练误差最小,另一个是惩罚项*松弛变量最小)
推荐阅读:三个问题的数学推导

5. SVM对缺失数据敏感吗?为什么?有不敏感的算法吗?

敏感!(涉及到距离这个概念的算法一般都敏感,例如KNN)这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM 没有处理缺失值的策略。而 SVM 希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。而且SVM对参数和核函数也非常敏感!
逻辑回归和决策树对缺失数据并不敏感。

6. SVM算法对异常点敏感吗?SVM如何防止过拟合?

SVM对异常点不敏感,其通过在目标函数中引入松弛变量(允许分错的程度),求最小值,就达到了一个平衡。既希望松弛变量存在解决异常点问题,也不希望松弛变量过大导致分类效果过差。

7. 增大数据量一定可以提高SVM准确率吗?

SVM本质上是凸优化问题,如果增加的样本点只是无效约束,并不会影响其最后的结果。这也就是为什么SVM适合于小样本量数据集的原因。

8. SVM是否适合大规模数据?

可以,但是不推荐,目前基于SMO方法的SVM-Light和LibSVM目前仍被广泛使用,他们最坏情况下复杂度是O(m^2),并不适合在大规模数据集上做训练。
推荐阅读:某乎就是先进啊

9. SVM如何解决多分类问题?怎么做?

一对多法,构建k个SVM,每次将一个样本归为一类,其他剩余样本归为一类,分类时将未知样本分类为最大分类函数值的那一类。
一对一法,任意两类样本之间设置一个SVM,总共构建k(k-1)/2个SVM。
层级分类器,层次分类法首先将所有类别分成两个子类,再将子类进一步划分成两个次级子类,如此循环,直到得到一个单独的类别为止。

10. SVM的优缺点

优点:适合小样本学习(不涉及概率推理及大数定律);避免了维度灾难(仅由少量支持向量决定);增删非支持向量对模型没有影响,具有一定的鲁棒性。
缺点:大规模训练数据难以进行(二次规划的复杂度);对缺失值较为敏感;参数选择和核函数的选择需要凭借经验;多分类问题需要后期构造;

11. SVM与LR的区别(最常见的,后期会专门整理一个对比表)

首先明确这两个东西都是线性分类器。SVM采用Hinge损失,LR采用Log损失;SVM对异常值不敏感,LR对异常值敏感;SVM计算复杂度较高,LR计算复杂度较低;SVM对于非线性问题处理主要通过Kernel,LR主要靠特征构造(组合交叉特征);SVM无需正则化,LR必须要加上正则化;SVM是非参数模型,LR是参数模型;
推荐阅读:参数模型VS非参数模型

12. SVM在sklearn中如何调参?当模型效果不好的时候可以使用哪些办法?(这里列出了最重要的一些)

Kernel:选择需要的核函数
C:即惩罚系数,即对误差的宽容程度,C越高越容易出现过拟合现象。
gamma:即选择RBF为Kernel后,隐含的决定了数据映射到新的特征空间后的分布,gamma越大支持向量越少,模型训练速度变慢。
办法:使用GridSearch;数据归一化;使用Cross Validation;使用RBF核
推荐阅读:SVM调参实战;SVM简单实现;SVM官方文档

小讯
上一篇 2025-03-30 14:28
下一篇 2025-03-30 11:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48602.html