1、决策树
适用条件:数据不同类边界是非线性的,并且通过不断将特征空间切分为矩阵来模拟。特征之间有一定的相关性。特征取值的数目应该差不多,因为信息增益偏向于更多数值的特征。
优点:
• 直观的决策规则;
• 可以处理非线性特征;
• 考虑了变量之间的相互作用。
缺点:
• 容易过拟合(随机森林、剪枝);
• 处理缺失数据时的困难;
• 数据集中属性间的相关性。
2、SVM
适用条件:特征空间大,可以处理非线性的特征。
优点:
• 可以处理小样本情况下的机器学习问题;
• 可以处理高维特征;
• 使用核函数应对非线性特征空间,解决非线性问题;
• 分类面不依赖所有数据,只与几个支持向量有关
缺点:
• 对于大量的预测样本,效率会很低;
• 需要找合适的核函数。
• 对缺失数据敏感
3、LR
适用条件:数据线性分布;
优点:
• 模型简单,训练速度快;
• 逻辑回归广泛应用与工业问题上。
缺点:
• 形式简单,但准确率不是很高;
• 依赖所有数据,很难处理数据不平衡问题;
• 处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题;
• 逻辑回归本身无法筛选特征。有时候,我们会用gbdt来筛选特征,然后再上逻辑回归。
4、三者对比:
模型复杂度:SVM支持核函数,可处理线性非线性问题;LR模型简单,训练速度快,适合处理线性问题;决策树容易过拟合,需要进行剪枝
损失函数:SVM hinge loss; LR L2正则化; DT adaboost 指数损失
数据敏感度:SVM添加容忍度对outlier不敏感,只关心支持向量,且需要先做归一化; LR对远点敏感
数据量:数据量大就用LR,数据量小且特征少就用SVM非线性核
5、神经网络
适用条件:数据量庞大,参数之间存在内在联系。
优点:
• 并行分布处理能力强;
• 提取数据特征;
• 逼近复杂的非线性关系。
缺点:
• 需要大量参数;
• 学习时间过长;
• 不能观察之间的学习过程,输出结果难以解释。
6、随机森林
优点:
• 训练可以高度并行化,对于大数据时代的大样本训练速度有优势;
• 能够处理很高维度(feature很多)的数据,并且不用做特征选择;
• 可以用于特征选择,给出各个特征的重要性,缩减特征空间维度;
• 由于采用了随机采样,训练出的模型的方差小,泛化能力强;
• 实现简单,对部分缺失数据不敏感(由于是随机选择样本、随机选择特征)
缺点:
• 在某些噪音比较大的样本集上,RF模型容易陷入过拟合;
• 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
7、Adaboost
优点:
• Adaboost作为分类器时,分类精度很高。;
• 在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,不用对特征进行筛选,非常灵活。
• 不容易发生过拟合。
缺点:
• 对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。
• 由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。
8、GBDT
优点:
• 可以灵活处理各种类型的数据,包括连续值和离散值,处理分类和回归问题;
• 在相对少的调参时间情况下,预测的准备率也可以比较高。这个是相对SVM来说的;
• 可以用于筛选特征。
• 使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
缺点:
• 由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。
参考文献:
https://blog.csdn.net/cppjava_/article/details/68922113
https://www.jianshu.com/p/169dc01f0589
本文转自:博客园 - 深度机器学习 ,转载此文目的在于传递更多信息,版权归原作者所有。