我必须为文本语料库编写分类器,这应该将我的所有文本分成2个类。 语料库非常大(接近4百万用于测试,50000用于研究)。 但是,我应该选择什么算法?
我听说随机森林和SVM是最先进的方法,但也许有人 与上面列出的算法有一个协议,知道哪个是最快的,哪个更准确?
答案 0 :(得分:1)
作为一个2级文本分类器,我认为你不需要:
(1)KNN:它是一种聚类方法而不是分类,而且很慢;
(2)随机森林:决策树在高稀疏维度中可能不是一个好的选择;
您可以尝试:
(1)天真的贝叶斯:最简单,最容易编码。事实证明在文本分类问题上运作良好;
(2)逻辑回归:如果您的训练样本数远大于特征数,则效果很好;
(3)SVM:再次,对于训练样本而不是特征,具有线性内核的SVM以及逻辑回归。它也是文本分类中的顶级算法之一;
(4)神经网络:似乎是机器学习的灵丹妙药。从理论上讲,它可以学习SVM /逻辑回归所能得到的任何模型。问题是NN上的包不像SVM中那么多。结果,神经网络的优化过程是耗时的。
然而,很难说哪种算法最适合您的情况。如果您使用的是python,scikit-learn几乎包含了所有这些算法供您测试。此外,weka在用户友好的图形界面中集成了许多机器学习算法,也是您更好地了解每种算法性能的理想选择。