SVM — 机器学习面试

LR和SVM有什么区别,libsvm和liblinear有什么区别。

LR与SVM的区别:

相同点:

  1. LR和SVM都是分类算法
  2. 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
  3. LR和SVM都是监督学习算法。
  4. LR和SVM都是判别模型。

不同点:

  1. 本质上是其loss function不同。
  2. 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
  3. LR可以给出每个点属于每一类的概率,而SVM是非概率的,然后一个是基于统计的方法,一个是完全基于几何的方法,模型的建立上有本质的差异;
  4. 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
  5. 如果一个问题的异常点较多无法剔除,首先LR中因为每个样本都对最终Loss有贡献,最大似然后会自动压制异常的贡献;回想SVM + 软间隔却对异常比较敏感,因为其训练只需要支持向量,有效样本本来就不高,一旦被干扰,预测结果难以预料

KKT条件用哪些,完整描述

对KKT很好的解释https://www.cnblogs.com/xinchen1111/p/8804858.html

  题目描述 :                                             min\ \ f\left ( x \right )

                                            s.t. \ \ h_{j}\left ( x \right )=0\ \ j=1,2,3,\cdots ,p \\ \ \ \ \ \ g_{k}\left ( x \right )\leqslant 0\ \ k=1,2,3,\cdots ,q

拉格朗日函数

                                      L\left ( x,\lambda ,\mu \right )=f\left ( x \right )+\sum_{j=1}^{p}\lambda _{j}h_{j}\left ( x \right )+\sum_{i=1}^{q}\mu _{i}g_{i}\left ( x \right )

KKT条件:

                                       \bigtriangledown f\left ( x \right ) +\sum_{j=1}^{p}\lambda _{j}\bigtriangledown h_{j}\left ( x \right )+\sum_{i=1}^{q}\mu _{i}\bigtriangledown g_{i}\left ( x \right )=0

                                                                     \mu _{k}\geq 0

                                                                 \mu _{i}g_{i}\left ( x \right )=0

                                                                   h_{j}\left ( x \right )=0

                                                                    g_{i}\left ( x \right )\leq 0

LR和SVM有什么区别

相同点:

  1. LR和SVM都是分类算法
  2. 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
  3. LR和SVM都是监督学习算法。
  4. LR和SVM都是判别模型。

不同点:

  1. 本质上是其loss function不同。
  2. 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。
  3. LR可以给出每个点属于每一类的概率,而SVM是非概率的,然后一个是基于统计的方法,一个是完全基于几何的方法,模型的建立上有本质的差异;
  4. 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
  5. 如果一个问题的异常点较多无法剔除,首先LR中因为每个样本都对最终Loss有贡献,最大似然后会自动压制异常的贡献;回想SVM + 软间隔却对异常比较敏感,因为其训练只需要支持向量,有效样本本来就不高,一旦被干扰,预测结果难以预料

SVM为什么要引入拉格朗日的优化方法

方便化为对偶问题,对于SVM而言,原问题不易求解,但由于原问题为二次规划问题,满足“strong duality”关系,故可解其对偶问题

SVM原问题和对偶问题关系? 

  • 目标函数对原始问题是极大化,对对偶问题则是极小化
  • 原始问题目标函数中的收益系数(优化函数中变量前面的系数)是对偶问题约束不等式中的右端常数,而原始问题约束不等式中的右端常数则是对偶问题中目标函数的收益系数
  • 原始问题和对偶问题的约束不等式的符号方向相反
  • 原始问题约束不等式系数矩阵转置后即为对偶问题的约束不等式的系数矩阵
  • 原始问题的约束方程数对应于对偶问题的变量数,而原始问题的变量数对应于对偶问题的约束方程数
  • 对偶问题的对偶问题是原始问题

SVM从原始问题变为对偶问题来求解的原因


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

 SVM在哪个地方引入的核函数, 如果用高斯核可以升到多少维

线性不可分时可以引入核函数。“如果映射后空间是k维的话,那内积矩阵的秩最大是k。而任给n个互不重合的样本,
Gaussian kernel的内积矩阵都是满秩的。所以你无论假设k是多少,都能找到n>k,矛
盾,所以必须是无限维的。 

SVM怎么防止过拟合

解决过拟合的办法是为SVM引入了松弛变量ξ(slack variable)。

即:y_{i}\left ( \textbf{w} \right ^{T}\textbf{x})\geq 1-\xi

SVM常用的核函数

(1) 线性核函数
(2) 多项式核
(3) 径向基核(RBF)Gauss径向基函数则是局部性强的核函数,其外推能力随着参数的增大而减弱。多项式形式的核函数具有良好的全局性质。局部性较差。
(4) 傅里叶核
(5) 样条核
(6) Sigmoid核函数
核函数的选取标准:
• 如果如果特征数远远大于样本数的情况下,使用线性核就可以了.
• 如果特征数和样本数都很大,例如文档分类,一般使用线性核, LIBLINEAR比LIBSVM速度要快很多.
• 如果特征数远小于样本数,这种情况一般使用RBF.但是如果一定要用线性核,则选择LIBLINEAR较好,而且使用-s 2选项。

SVM推导过程

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值