机器学习之——算法比较与选择
2015-05-07 22:09
141 查看
对于一个分类问题该如何选择分类算法呢?当然,如果你真的关心准确性 (accuracy),最好尝试多个算法,每个算法进行参数调优后,进行交叉验证(cross-validation)。但是在解决分类问题时,还是可以参考一些一般性的分类原则的。
Naive Bayes
优点:简单,如果条件独立性假设成立,Naive Bayes 分类器会比判别模型(logistic regression)更快的建立,从而对训练集的规模需求较小。即使假设不成立,该方法也会有很好的结果。
缺点:在于你无法用它来研究各个feature之间的关系。
Logistic Regression
优点:因为有足够多正则化模型的方式,你不必担心各个feature之间的相关性(NB不行)。同时,有不错的概率解释(决策树和SVM不行),引入新数据后可以快速更新模型(使用在线梯度下降法)。
Decision Trees
优点:(1)因为是非参数化的方法,不必关注离群点和是否线性可分;(2)能够同时处理数据型和常规型属性;
缺点:(1)不支持在线学习,一旦引入新数据则需要重新建树;(2)另外容易overfitting,所以需要引入ensemble method(比如随机森林,随机森林快速而且可伸缩,而不必担心大量的参数调优)。
SVM
优点: (1)高准确性、坚实的理论基础可以避免过拟合;(2)如果再配上合适的核函数,即使数据在基特性空间线性不可分也可以有很好的分类效果;(3)非常善于解决高维数据的分类问题和小训练集下的学习问题、非线性分类问题。
缺点:计算耗费内存大,需要调参。
ANN
优点:(1)分类的准确度高;(2)并行分布处理能力强,分布存储及学习能力强,对噪声神经有较强的鲁棒性和容错能力,能充分逼近复杂的非线性关系,具备联想记忆的功能等。
缺点:(1)神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值;(2)不能观察之间的学习过程,输出结果难以解释,会影响到结果的可信度和可接受程度;(3)学习时间过长,甚至可能达不到学习的目的。
KNN(K-Nearest Neighbour)
优点:(1)简单、有效;(2)重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的);(3) 该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
缺点: 输出的可解释性不强,例如决策树的可解释性较强。
但是需要说明的是:Better data often beats better algorithms, and designing good features goes a long way.
参考:
Choosing a machine learning classifier
A Comparative Study of Classification Techniques in Data Mining Algorithms
各种分类算法比较
Comparison of Machine Learning Algorithms
相关文章推荐
- 机器学习自学之路-SVM 算法选择:三种算法优缺点比较(ID3、C4.5、CART)
- 机器学习(10.2)--手写数字识别的不同算法比较(2)--KNN算法
- c语言中冒泡排序、插入排序、选择排序算法比较
- 算法—比较两种排序算法:选择排序和插入排序(详细)
- 机器学习之特征选择---特征选择算法
- 一文告诉你机器学习中进行模型评价、模型选择和算法选择的终极方法(PART I)
- (转)机器学习工具WEKA使用总结,包括算法选择、参数优化、属性选择
- 机器学习(10.3)--手写数字识别的不同算法比较(3)--支持向量机(SVM)算法
- 如何选择机器学习的算法及适应解决的问题
- 机器学习(九) - - 模型评估和选择④比较检验
- 机器学习(10.4)--手写数字识别的不同算法比较(4)--神经网络
- 如何选择机器学习的算法及适应解决的问题
- 推荐|机器学习中的模型评价、模型选择和算法选择!
- 如何选择机器学习的算法及适应解决的问题
- c语言中冒泡排序、插入排序、选择排序算法比较
- 经验之谈:如何为你的机器学习问题选择合适的算法
- 机器学习中各种算法在人脸补全中的应用比较
- 机器学习的算法选择
- 如何选择机器学习的算法及适应解决的问题
- [置顶] 【算法 机器学习】MATLAB、R、python三种编程语言实现简单线性回归算法比较