SVM、LR、决策树的对比

1、LR

LR,DT,SVM都有自身的特性,首先来看一下LR,工业界最受青睐的机器学习算法,训练、预测的高效性能以及算法容易实现使其能轻松适应工业界的需求。LR还有个很是方便实用的额外功能就是它并不会给出离散的分类结果,而是给出该样本属于各个类别的几率(多分类的LR就是softmax),能够尝试不一样的截断方式来在评测指标上进行同一模型的性能评估,从而获得最好的截断分数。LR不论是实现仍是训练或者预测都很是高效,很轻松的handle大规模数据的问题(同时LR也很适合online learning)。此外,LR对于样本噪声是robust的,对于“mild”的多重共线性问题也不会受到太大影响,在特征的多重共线性很强的状况下,LR也能够经过L2正则化来应对该问题,虽然在有些状况下(想要稀疏特征)L2正则化并不太适用。算法

可是,当咱们有大量的特征以及部分丢失数据时,LR就开始费劲了。太多的分类变量(变量值是定性的,表现为互不相容的类别或属性,例如性别,年龄段(1,2,3,4,5)等)也会致使LR的性能较差(这个时候能够考虑作离散化,其实确定是要作离散化的)。还有一种论调是LR使用全部的样本数据用于训练,这引起了一个争论:明显是正例或者负例的样本(这种样本离分类边界较远,不大会影响分类的curve)不太应该被考虑太多,模型理想状况是由分类边界的样本决定的(相似SVM的思想),以下图。还有一个状况就是当特征是非线性时,须要作特征变换,这可能会致使特征维度急剧上升。下面是我认为的LR的一些利弊:机器学习

LR的优点:函数

对观测样本的几率值输出 
实现简单高效 
多重共线性的问题能够经过L2正则化来应对 
大量的工业界解决方案 
支持online learning(我的补充) 性能


LR的劣势:学习

特征空间太大时表现不太好 
对于大量的分类变量无能为力 
对于非线性特征须要作特征变换 
依赖全部的样本数据
测试

 

2、决策树

  决策树对于单调的特征变换是”indifferent”的,也就是说特征的单调变换对于决策树来讲不会产生任何影响,由于决策树是经过简单的使用矩形切分特征空间的,单调的特征变换只是作了特征空间的缩放而已。因为决策树是的分支生成是使用离散的区间或类别值的,因此对于无论多少分类变量都可以轻松适应,并且经过决策树生成出来的模型很直观并且容易解释(随着决策树的分支解释便可),并且决策树也能够经过计算落到该叶子类目的标签平均值得到最终类别的几率输出。可是这就引起了决策树的最大问题:很是容易过拟合,咱们很容易就会生成一个完美拟合训练集的模型,可是该模型在测试集合上的表现却很poor,因此这个时候就须要剪枝以及交叉验证来保证模型不要过拟合了。spa

  过拟合的问题还能够经过使用随机森林的方式来解决,随机森林是对决策树的一个很smart的扩展,即便用不一样的特征集合和样本集合生成多棵决策树,让它们来vote预测样本的标签值。可是随机森林并无像单纯决策树同样的解释能力。 io

DT的优点:class

直观的决策过程 
可以处理非线性特征 效率

DT的劣势:

极易过拟合(使用RF能够必定程度防止过拟合,可是只要是模型就会过拟合!) 
没法输出score,只能给出直接的分类结果

 

3、SVM

  SVM最大的好处就是它只依赖于处于分类边界的样原本构建分类面,能够处理非线性的特征,同时,只依赖于决策边界的样本还可让他们可以应对”obvious”样本缺失的问题。因为SVM可以轻松搞定大规模的特征空间因此在文本分析等特征维度较高的领域是比较好的选择。SVM的可解释性并不像决策树同样直观,若是使用非线性核函数,SVM的计算代价会高不少。

SVM的优点:

能够处理高维特征 
使用核函数轻松应对非线性特征空间 
分类面不依赖于全部数据 

SVM的劣势:

对于大量的观测样本,效率会很低 

找到一个“合适”的核函数仍是很tricky的

 

为何将原问题转为对偶问题?

  • 对偶问题将原始问题中的约束转为了对偶问题中的等式约束(KKT)
  • 方便核函数的引入
  • 改变了问题的复杂度。由求特征向量w转化为求比例系数a,在原始问题下,求解的复杂度与样本的维度有关,即w的维度。在对偶问题下,只与样本数量有关。
相关文章
相关标签/搜索