您的位置:首页 > 其它

机器学习之——算法比较与选择

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: