Merge pull request #335 from CoderOverflow/patch-5

2.18.11 逻辑回归与SVM的异同 内容修订
This commit is contained in:
scutan90 2019-04-11 19:59:57 +08:00 committed by GitHub
commit 0e48fdea5b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 15 deletions

View File

@ -1646,46 +1646,46 @@ $$
支持向量机性能的优劣主要取决于核函数的选取所以对于一个实际问题而言如何根据实际的数据模型选择合适的核函数从而构造SVM算法。目前比较成熟的核函数及其参数的选择都是人为的根据经验来选取的带有一定的随意性。在不同的问题领域核函数应当具有不同的形式和参数所以在选取时候应该将领域知识引入进来但是目前还没有好的方法来解决核函数的选取问题。
### 2.18.10 逻辑回归与SVM的异同
### 2.18.11 逻辑回归与SVM的异同
相同点:
- LR和SVM都是**分类**算法
- LR和SVM都是**分类**算法
- LR和SVM都是**监督学习**算法。
- LR和SVM都是**判别模型**。
- 如果不考虑核函数LR和SVM都是**线性分类**算法,也就是说他们的分类决策面都是线性的。
说明:LR也是可以用核函数的.但LR通常不采用核函数的方法.(**计算量太大**)
说明LR也是可以用核函数的.但LR通常不采用核函数的方法。**计算量太大**
不同点:
**1、LR采用log损失SVM采用合页(hinge)损失。**
逻辑回归的损失函数:
$$
J(\theta)=-\frac{1}{m}\left[\sum^m_{i=1}y^{(i)}logh_{\theta}(x^{(i)})+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\right]
J(\theta)=-\frac{1}{m}\sum^m_{i=1}\left[y^{i}logh_{\theta}(x^{i})+ (1-y^{i})log(1-h_{\theta}(x^{i}))\right]
$$
支持向量机的目标函数:
$$
L(w,n,a)=\frac{1}{2}||w||^2-\sum^n_{i=1}\alpha_i \left( y_i(w^Tx_i+b)-1\right)
$$
逻辑回归方法基于概率理论假设样本为1的概率可以用sigmoid函数来表示然后通过**极大似然估计**的方法估计出参数的值。
支持向量机基于几何**间隔最大化**原理,认为存在最大几何间隔的分类面为最优分类面。
支持向量机基于几何**边界最大化**原理,认为存在最大几何边界的分类面为最优分类面。
2、**LR对异常值敏感SVM对异常值不敏感**。
支持向量机只考虑局部的边界线附近的点而逻辑回归考虑全局。LR模型找到的那个超平面是尽量让所有点都远离他而SVM寻找的那个超平面是只让最靠近中间分割线的那些点尽量远离即只用到那些支持向量的样本。
支持向量机改变非支持向量样本并不会引起决策面的变化。
逻辑回归中改变任何样本都会引起决策面的变化。
支持向量机改变非支持向量样本并不会引起决策面的变化。
3、**计算复杂度不同。对于海量数据SVM的效率较低LR效率比较高**
逻辑回归中改变任何样本都会引起决策面的变化。
当样本较少特征维数较低时SVM和LR的运行时间均比较短SVM较短一些。准确率的话LR明显比SVM要高。当样本稍微增加些时SVM运行时间开始增长但是准确率赶超了LR。SVM时间虽长但在可接受范围内。当数据量增长到20000时特征维数增长到200时SVM的运行时间剧烈增加远远超过了LR的运行时间。但是准确率却和LR相差无几。(这其中主要原因是大量非支持向量参与计算造成SVM的二次规划问题)
**3、计算复杂度不同。对于海量数据SVM的效率较低LR效率比较高**
4、**对非线性问题的处理方式不同**
当样本较少特征维数较低时SVM和LR的运行时间均比较短SVM较短一些。准确率的话LR明显比SVM要高。当样本稍微增加些时SVM运行时间开始增长但是准确率赶超了LR。SVM时间虽长但在接收范围内。当数据量增长到20000时特征维数增长到200时SVM的运行时间剧烈增加远远超过了LR的运行时间。但是准确率却和LR相差无几。(这其中主要原因是大量非支持向量参与计算,造成SVM的二次规划问题)
LR主要靠特征构造必须组合交叉特征特征离散化。SVM也可以这样还可以通过核函数kernel因为只有支持向量参与核计算计算复杂度不高。由于可以利用核函数SVM则可以通过对偶求解高效处理。LR则在特征空间维度很高时表现较差。
**4、对非线性问题的处理方式不同**。LR主要靠特征构造必须组合交叉特征特征离散化。SVM也可以这样还可以通过kernel(因为只有支持向量参与核计算,计算复杂度不高)。(由于可以利用核函数,。SVM则可以通过对偶求解高效处理。LR则在特征空间维度很高时表现较差。)
**5、SVM的损失函数就自带正则**。损失函数中的1/2||w||^2项这就是为什么SVM是结构风险最小化算法的原因而LR必须另外在损失函数上添加正则项**
5、**SVM的损失函数就自带正则**。
损失函数中的1/2||w||^2项这就是为什么SVM是结构风险最小化算法的原因而LR必须另外在损失函数上添加正则项**
6、SVM自带**结构风险最小化**LR则是**经验风险最小化**。