一、LR与SVM的相同点:

  1. 都是有监督的分类算法;
  2. 如果不考虑核函数,LR 和 SVM 都是线性分类算法。它们的分类决策面都是线性的。
  3. LR和SVM都是判别式模型。
    LR、SVM、决策树等判别式模型直接生成一个表示 P(Y|X) 或者 Y=f(X) 的判别函数。而生成式模型,例如朴素贝叶斯(NB),隐马尔可夫链(HMM),都是先计算联合概率分布 P(Y,X),然后通过贝叶斯公式转化为 P(Y|X)。

贝叶斯公式


二、LR与SVM的不同点:

一、本质上是loss函数不同,或者说分类的原理不同。

  1. LR的目标是最小化模型分布和经验分布之间的交叉熵:

    LR基于概率理论中的极大似然估计。首先假设样本为 0 或者 1 的概率可以用sigmoid 函数来表示,然后通过极大似然估计的方法估计出参数的值,即让模型产生的分布 P(Y|X) 尽可能接近训练数据的分布。

  2. SVM的目标是最大化分类间隔(硬SVM),或者最大化
    [ 分 类 间 隔 — a l f a ∗ 分 错 的 样 本 数 量 ] ( 软 S V M ) [分类间隔—alfa*分错的样本数量](软SVM) [alfa]SVM

    SVM基于几何间隔最大化原理,认为几何间隔最大的分类面为最优分类面 。

二、SVM是结构风险最小化,LR则是经验风险最小化。

结构风险最小化就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,减小泛化误差。为了达到结构风险最小化的目的,最常用的方法就是添加正则项。
SVM的loss函数的第一项可看作L2正则项;LR需要加入正则化项。

三、SVM只考虑分界面附近的少数点,而LR则考虑所有点。

影响SVM决策面的样本点只有少数的支持向量。在支持向量外添加或减少任何样本点,对分类决策面没有任何影响。在LR中,每个样本点都会影响决策面。决策面会倾向于远离样本数量较多的类别。如果不同类别之间的数量严重不平衡,一般需要先对数据做balancing。

四、SVM不能产生概率,LR可以产生概率。

五、在解决非线性问题时,SVM可采用核函数的机制,而LR通常不采用核函数的方法。

SVM只有少数几个样本需要参与核计算(即kernal machine解的系数是稀疏的)。
LR里每个样本点都要参与核计算,计算复杂度太高,故LR通常不用核函数。

6、SVM计算复杂,但效果比LR好,适合小数据集;LR计算简单,适合大数据集,可以在线训练。

三、SVM核函数使用

  1. 其中有两个重要的参数,即 C(惩罚系数) 和 gamma, gamma 越大,支持向量越少,gamma 越小,支持向量越多。 而支持向量的个数影响训练和预测的速度。 C 越高,容易过拟合。C 越小,容易欠拟合。

  2. 惩罚因子C决定了你有多重视离群点带来的损失,显然当所有离群点的松弛变量的和一定时,你定的C越大,对目标函数的损失也越大,此时就暗示着你非常不愿意放弃这些离群点,强行拟合这些离群点的时候,那就是过拟合了。

  3. 当C趋于无穷大时,这个问题也就是不允许出现分类误差的样本存在,那这就是一个hard-margin SVM问题(过拟合)
    当C趋于0时,我们不再关注分类是否正确,只要求间隔越大越好,那么我们将无法得到有意义的解且算法不会收敛。(欠拟合)

  4. 对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到一个高纬的特征空间内使得数据在特征空间内是可分的。
    1)如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
    2)如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数(RBF);
    3)如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况
    样本数量相对于特征数偏少时,容易线性可分;比如说2*2,那么两个维度,两个样本,线性可分就非常简单;如果另外一个极端,即线性可分的概率就会很低;一种方法采用高斯核,另外一种方法增加特征;说白了本质上就是增加维度;缩小特征数与样本数之间的差距,来达到线性可分 ;