SVM的常见面试点总结

  • SVM的原理是什么?
    SVM是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器(间隔最大使它有别于感知机)。
    • 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
    • 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
    • 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

注:以上各SVM的数学推导应该熟悉:硬间隔最大化(几何间隔)—学习的对偶问题—软间隔最大化(引入松弛变量)—非线性支持向量机(核技巧)。

  • SVM为什么采用间隔最大化?
    • 当训练数据线性可分时,存在无穷个分离超平面可以将两类数据正确分开。感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的
    • 另一方面,此时的分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强

注:可以借此机会阐述一下函数间隔、几何间隔以及它们之间的关系。

  • SVM为什么要从原始问题变为对偶问题来求解?
    • 对偶问题往往更易求解,因为对偶问题将原始问题中的不等式约束转为了对偶问题中的等式约束。
    • 方便核函数的引入
    • 改变了问题的复杂度,由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。
  • SVM为什么要引入核函数?
    • 数据变成了高维空间中线性可分的数据,当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
    • 大大降低求解难度,引入这样的映射后,所要求解的对偶问题的求解中,无需求解真正的映射函数,而只需要知道其核函数。因为特征空间维数可能很高,甚至可能是无穷维,因此直接计算 ϕ ( x ) ⋅ ϕ ( y ) ϕ(x)·ϕ(y) ϕ(x)ϕ(y)是比较困难的。相反,直接计算 K ( x , y ) K(x,y) K(x,y)比较容易(即直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果)。

进一步的解释:引入核函数后,学习是隐式地在特征空间进行的,不需要显示地定义特征空间和映射函数。对 隐式 的理解:我们注意到在支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及输入实例和实例之间的内积,即 x i ⋅ x j x_i \cdot x_j xixj ϕ ( x ) ⋅ ϕ ( y ) ϕ(x)·ϕ(y) ϕ(x)ϕ(y),而核函数的定义为 K ( x , y ) = ϕ ( x ) ⋅ ϕ ( y ) K(x,y)=ϕ(x)·ϕ(y) K(x,y)=ϕ(x)ϕ(y),其中 ϕ ( x ) ϕ(x) ϕ(x)为映射函数,所以在SVM的对偶问题的目标函数中的内积可以用核函数来代替。

  • 常用的核函数有哪些?

    • 线性核函数
      线性核,主要用于线性可分的情况,我们可以看到特征空间到输入空间的维度是一样的,其参数少速度快,对于线性可分数据,其分类效果很理想,因此我们通常首先尝试用线性核函数来做分类,看看效果如何,如果不行再换别的。
      K ( x , z ) = x ⋅ z K(x,z) = x \cdot z K(x,z)=xz

      • 优点:
        • 参数少,速度快,对于线性可分数据,其分类效果很理想
        • 可解释性强 :根据权重向量每个维度的值的大小就能轻易知道哪些特征是重要的
      • 缺点:
        • 不能解决非线性问题
    • 多项式核函数
      多项式核函数可以实现将低维的输入空间映射到高维的特征空间,但是多项式核函数的参数多,当多项式的阶数比较高的时候,核矩阵的元素值将趋于无穷大或者无穷小,计算复杂度会大到无法计算。
      K ( x , z ) = ( γ &lt; x , z &gt; + c ) n K(x,z)=(\gamma&lt;x,z&gt;+c)^n K(x,z)=(γ<x,z>+c)n
      γ = 1 , c = 1 , n = 2 \gamma=1,c=1,n=2 γ=1,c=1,n=2时,多项式核函数变为:
      K ( x , z ) = ( &lt; x , z &gt; + 1 ) 2 K(x,z)=(&lt;x,z&gt;+1)^2 K(x,z)=(<x,z>+1)2

      • 优点:
        • 可解决非线性问题
        • 可通过主观设置幂数来实现总结的预判(什么是总结的预判??)
      • 缺点:
        • 参数多
        • 对于大数量级的幂数,不太适用
    • 高斯(RBF)核函数
      高斯径向基函数是一种局部性强的核函数,其可以将一个样本映射到一个更高维的空间内,该核函数是应用最广的一个,无论大样本还是小样本都有比较好的性能,而且其相对于多项式核函数参数要少,因此大多数情况下在不知道用什么核函数的时候,优先使用高斯核函数。
      K ( x , z ) = e x p ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) K(x,z)=exp\left(-\frac{||x-z||^2}{2\sigma^2}\right) K(x,z)=exp(2σ2xz2)

      • 优点:
        • 可以将样本映射到更高维(无限维)
        • 参数少,相比多项式核容易选择
        • 决策边界更为多样(待解释)
      • 缺点:
        • 可解释性差(无限多维的转换,无法计算输入空间的 w w w)
        • 计算速度比较慢
        • 容易过拟合(参数选不好时容易过拟合)
    • sigmoid核函数
      采用Sigmoid函数作为核函数时,支持向量机实现的就是一种多层感知器神经网络,应用SVM方法,隐含层节点数目(它确定神经网络的结构)、隐含层节点对输入节点的权值都是在设计(训练)的过程中自动确定的。而且支持向量机的理论基础决定了它最终求得的是全局最优值而不是局部最小值,也保证了它对于未知样本的良好泛化能力而不会出现过拟合现象。
      K ( x , z ) = tanh ⁡ ( γ &lt; x , z &gt; + c ) K(x,z)=\tanh(\gamma&lt;x,z&gt;+c) K(x,z)=tanh(γ<x,z>+c)

      • 优点:
        • 可实现多层神经网络的效果
        • 最终求得的是全局最优值而不是局部最小值
        • 良好的泛化能力
      • 缺点:
        • 无法获取隐藏层的特征以及权重值(自己的理解,正确性待考证
  • SVM的核函数如何选取?
    在选用核函数的时候,如果我们对我们的数据有一定的先验知识,就利用先验来选择符合数据分布的核函数;如果不知道的话,通常使用交叉验证的方法,来试用不同的核函数,误差最小的即为效果最好的核函数,或者也可以将多个核函数结合起来,形成混合核函数。在吴恩达的课上,也曾经给出过一系列的选择核函数的方法:

    • 如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
    • 如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
    • 如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况(选用LR或者线性核的SVM是为了避免造成庞大的计算量)。
  • SVM为什么对缺失数据敏感?
    这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM没有处理缺失值的策略(决策树有)。而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。由于样本缺失某些特征数据会导致SVM无法很好的将输入空间映射成特征空间,所以缺失特征数据将影响训练结果的好坏。

  • SVM如何处理多分类问题?

    • 一种是直接法,直接在目标函数上修改,将多个分类面的参数求解合并到一个最优化问题里面。看似简单但是计算量却非常的大。
    • 另外一种做法是间接法:对训练器进行组合。其中比较典型的有一对一,和一对多
      • 一对一:针对任意两个类训练出一个分类器,如果有k类,一共训练出 C k 2 C_k^2 Ck2个分类器,这样当有一个新的样本要来的时候,用这 C k 2 C_k^2 Ck2个分类器来测试,每当被判定属于某一类的时候,该类就加一,最后票数最多的类别被认定为该样本的类。
  • SVM有哪些优缺点?

    • 优点
      • 利用内积核函数代替向高维空间的非线性映射,非线性映射是SVM方法的理论基础;
      • 能够求解最优超平面,最大间隔法的思想是SVM方法的核心;
      • 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量;
      • SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了维数灾难
      • 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒性”。鲁棒性的体现如下:
        • 增、删非支持向量样本对模型没有影响;
        • 支持向量样本集具有一定的鲁棒性;
        • 有些成功的应用中,SVM 方法对核的选取不敏感。
      • SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。(对该优点的解释不太明白)
    • 缺点
      • SVM算法对大规模训练样本难以实施
        SVM的空间消耗主要是存储训练样本和核矩阵,由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian等的SOR算法。如果数据量很大,SVM的训练时间就会比较长,如垃圾邮件的分类检测,没有使用SVM分类器,而是使用了简单的naive bayes分类器,或者是使用逻辑回归模型分类。
      • 用SVM解决多分类问题存在困难
        经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。
      • 对缺失数据敏感
        SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。由于样本缺失某些特征数据会导致SVM无法很好的将输入空间映射成特征空间,所以缺失特征数据将影响训练结果的好坏。
      • 对参数和核函数的选择敏感
        支持向量机性能的优劣主要取决于核函数的选取,所以对于一个实际问题而言,如何根据实际的数据模型选择合适的核函数从而构造SVM算法。目前比较成熟的核函数及其参数的选择都是人为的,根据经验来选取的,带有一定的随意性.在不同的问题领域,核函数应当具有不同的形式和参数,所以在选取时候应该将领域知识引入进来,但是目前还没有好的方法来解决核函数的选取问题。
  • SVM和LR的联系和区别?
    详见 https://blog.csdn.net/manduner/article/details/92838452

  • SVM和神经网络的区别?
    在处理非线性问题上,神经网络是多层(通常是三层)的非线性模型,而SVM通过核技巧把非线性问题转换成线性问题。

注:本文的面试点总结主要参考了以下几篇博文

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[2\]:绝大部分论文还是在欺负SVM和KNN之类的传统方法,20篇以上都是这样。引用\[3\]:ML往往是针对某一特殊情景具体制定的,而DL中的模型和技术通常具有通用性。根据这些引用内容,可以得出SVM在故障诊断领域的创新相对较少。SVM是一种传统的机器学习方法,相对于深度学习模型,它在处理复杂的故障诊断问题上可能存在一些局限性。深度学习模型如卷积神经网络、循环神经网络和长短期记忆等具有更强的通用性和适应性,可以更好地处理不同领域的故障诊断问题。因此,SVM在故障诊断领域的创新相对较少。 #### 引用[.reference_title] - *1* *3* [一篇关于轴承故障诊断的综述](https://blog.csdn.net/weixin_42036144/article/details/109861840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [轴承故障诊断领域的论文到底有多水](https://blog.csdn.net/weixin_50642818/article/details/127601489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值