当前位置:   article > 正文

机器学习面试笔记整理4-支持向量机_机器学习 支持向量机面经

机器学习 支持向量机面经

机器学习面试笔记整理4-支持向量机

算法思想

基于合页损失找到一条最佳分离边界,能把最难分的点(支持向量)分得间隔最大。

优缺点

优点:
1.泛化能力高
2.利用核技巧对非线性样本分类
3.SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,可解决高维问题,这在某种意义上避免了“维数灾难”。
4少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且使得该算法简单且具有较好的“鲁棒”性。
5.类别不平衡影响不大

缺点:
1.对非线性,很难找到合适核函数
2.解决多分类较麻烦
3.大规模样本难以训练,因为对偶计算中涉及矩阵运算,当样本很大时,存储和计算耗费计算机大量的内存和运行时间。
3.可解释性弱
4.对缺失特征数据敏感

面试问题收集

  1. 如何定义这条曲线最佳?
    Hinge(合页)损失最小

  2. 为什么需要间隔最大化?
    (1)SVM算法认为靠近决策边界的点与决策边界的距离最大时,是最好的分类选择
    (2) 因为“正中间”的划分超平面对训练样本局部扰动的“容忍性”好,分隔超平面所产生的分类结果是最鲁棒的,对预测样本泛化能力最强;
    (3)线性条件下,分类超平面的解唯一

  3. svm的对偶原理?
    把目标函数和约束全部融入一个新的函数,即拉格朗日函数,原始问题就变成了一个极大极小问题,min(w,b)->max(乘子a),再通过这个函数来寻找最优点。

  4. 为什么要使用对偶?
    (1) 数学层面上,求解更容易;
    (2)分类性能上,自然引入核函数,可推广到非线性问题上。

  5. 为什么引入核函数?
    线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得线性可分。

  6. SVM常见的核函数?
    线性、多项式、高斯(灵活,易过拟合,需要样本量大)、sigmod

  7. 什么SVM对缺失特征数据敏感?
    因为SVM涉及距离度量,缺失数据若处理不好可能会导致分类效果差。SVM没有处理缺失值的策略(而决策树,XGBOOST有)。

  8. SVM是用的是哪个库?
    sklearn实现的。采用sklearn.svm.SVC设置的参数, sklearn.svm.SVC(C=1.0, kernel=‘rbf’, degree=3, gamma=‘auto’, coef0=0.0, ……)

  9. SVM参数?
    最重要的参数有2个:惩罚系数 C C C g a m m a ( = 1 / σ 2 ) gamma(=1/σ2) gamma(=1/σ2) C C C类似于正则化中 1 / λ 1/λ 1/λ的作用。 C C C越大,说明越不能容忍出现误差,越容易过拟合。 σ σ σ越大,核函数越平滑,波动越小,对噪声越不敏感,易欠拟合; σ σ σ越小,高斯分布长得又高又瘦, 会造成只会作用于支持向量样本附近,对于未知样本分类效果很差。

  10. SVM如何实现多分类?
    (1) 训练k个分类器,训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,最后分类时,将未知样本分类为具有最大分类函数值的那类;
    (2) 训练c(2,k)个分类器取多数

  11. SVM降低模型复杂度(过拟合)的方法?
    给每个样本引入松弛变量

  12. SVM做回归SVR?
    一串连续数值向量 A = ( x 1 , x 2 , x 3 , … x i ) A=(x_1,x_2,x_3,…x_i) A=x1,x2,x3,xi对应其函数值 ( y 1 , y 2 , y 3 … y i ) (y_1,y_2,y_3…y_i) (y1,y2,y3yi),将其翻转后成为一列数据,类似SVM的不同样本,剩余步骤和SVM类似。只是SVR希望大部分点在间隔内,间隔外的点会带来损失,而SVM希望大部分点在间隔两边。

  13. 函数间隔和几何间隔区别?
    函数间隔主要表示是否分类正确,可正可负;几何间隔表示点到超平面的距离,只能为正。

  14. SVM与树模型间的区别?
    (1)SVM可解释性更弱;树模型可解释性好
    (2)SVM对缺失特征数据敏感;树模型对缺失特征数据不敏感
    (3)SVM处理多分类问题麻烦
    (4)SVM对异常值不敏感;树模型对异常值敏感
    (5)SVM泛化能力强;树模型依赖训练样本集,对没有出现的特征没有办法
    (6)SVM适用于处理小样本训练集;树模型可处理大样本训练数据集

  15. LR与SVM的区别:
    (1)异常值:LR的目标是使得所有的点分类正确。所以LR会受到数据集中所有点的影响,当数据不均衡时,LR的性能会受到影响;而SVM分类性能只会受到支持向量的影响,只要支持向量不变,类别不平衡影响不大;也就是,LR对异常值敏感。
    (2)起作用点的范围:LR模型尽量让所有点都远离超平面,而SVM让只考虑support vectors(最难划分/最靠近中间分割线的那些点),也就是和分类最相关的少数点,尽量远离超超平面,即只用到那些支持向量的样本。也就是SVM的约束来体现的
    (3)loss:目标函数不一样,LR对数似然损失函数,SVM凸优化问题。
    (4)非线性:处理非线性分类时,SVM采用核函数更好更快,LR很少使用核函数
    (5)Linear SVM依赖数据表达的距离测度,所以需要对数据先做normalization;LR不受其影响,但是如果要正则的话也要归一化
    (6)概率值:SVM不能给出概率结果,LR可以产生概率,因此可做ranking
    (7)SVM的目标函数就自带有约束正则(目标函数中的 1 / 2 ∣ ∣ w ∣ ∣ 2 1/2||w||^2 1/2w2项),这就是为什么SVM是泛化力更强的原因。而LR必须另外在损失函数上添加正则项。
    (8)LR可解释性更强

  16. SVM与感知机的区别
    (1)解:SVM基于间隔最大化,求得分类超平面,解是唯一,且分类结果最鲁棒,泛化能力强;感知机基于误分类最小策略,求得分离超平面,不唯一
    (2)学习策略:感知机使用梯度下降;SVM使用由约束条件构造拉格朗日函数,然后求偏导令其为0求得极值点。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号