首先考虑你的训练集有多大? 如果训练集较小,则高偏差/低方差分类器(例如,朴素贝叶斯)比低偏差/高方差分类器(例如,kNN或逻辑回归)具有优势,因为后者会出现过拟合。但是,随着训练集的增长,低偏差/高方差分类器开始胜出(它们的渐近误差较小),因为高偏差分类器的功能不足以提供准确的模型。 你也可以将其视为生成模型与判别模型的区别。 一些特定算法的优点: 朴素贝叶斯的优点:超级简单,只需要进行大量计数即可。如果NB条件独立性假设成立,则朴素贝叶斯分类器的收敛速度将高于判别模型(例如逻辑回归),因此需要的训练数据更少。即使NB假设不成立,NB分类器在实践中仍然常常表现得很出色。如果你想进行某种半监督式学习,或者想要执行一些非常好用的简单操作,那么它是一个不错的选择。 逻辑回归的优点:有很多方法可以规范化模型,而不必像朴素贝叶斯一样担心特征是相关的。与决策树或SVM不同,它还具有很好的概率解释,并且可以轻松地更新模型(使用在线梯度下降方法)来获取新数据。如果你需要一个概率框架(例如,方便地调整分类阈值,不确定情况或需要获取置信区间时),或者希望将来接收到更多训练数据,请使用它。 决策树的优点:易于解释。非参数化,因此不必担心异常值或数据是否可线性分离(例如,决策树很容易处理这样的情况:类A位于某个特征x的低端,类B位于特征x的中间范围,类A位于高端)。它的主要缺点是很容易过度拟合。随机森林通常适用于是许多分类问题(我认为通常比SVM更好),它的速度很快又可扩展,并且不必像调整SVM一样需要调整一堆参数,这个优点使它很受欢迎。 SVM的优点:高精度,有较好的内核,即使你的数据在基本特征空间中不是线性可分离的,它也可以正常工作。在以高维空间为标准的文本分类问题中尤其流行。但是内存密集,运行和调优有点烦人,因此我认为随机森林会比较好一些。 说了这么多,我认为更好的数据通常胜过更好的算法,并且设计好的功能还有很长的路要走。而且,如果你有一个庞大的数据集,那么分类算法的选择可能对分类性能的影响并不大(因此请根据速度或易用性来选择算法)。而且,如果你真的在乎准确性,则应该尝试一堆不同的分类器,然后通过交叉验证选择最佳的分类器。