实现文本分类的最佳方法(2类)

时间:2013-12-24 20:34:58

标签: neural-network svm bayesian random-forest knn

我必须为文本语料库编写分类器,这应该将我的所有文本分成2个类。 语料库非常大(接近4百万用于测试,50000用于研究)。 但是,我应该选择什么算法?

  • 朴素贝叶斯
  • 神经网络
  • SVM
  • 随机森林
  • kNN(为什么不呢?)

我听说随机森林和SVM是最先进的方法,但也许有人 与上面列出的算法有一个协议,知道哪个是最快的,哪个更准确?

1 个答案:

答案 0 :(得分:1)

作为一个2级文本分类器,我认为你不需要:

(1)KNN:它是一种聚类方法而不是分类,而且很慢;

(2)随机森林:决策树在高稀疏维度中可能不是一个好的选择;

您可以尝试:

(1)天真的贝叶斯:最简单,最容易编码。事实证明在文本分类问题上运作良好;

(2)逻辑回归:如果您的训练样本数远大于特征数,则效果很好;

(3)SVM:再次,对于训练样本而不是特征,具有线性内核的SVM以及逻辑回归。它也是文本分类中的顶级算法之一;

(4)神经网络:似乎是机器学习的灵丹妙药。从理论上讲,它可以学习SVM /逻辑回归所能得到的任何模型。问题是NN上的包不像SVM中那么多。结果,神经网络的优化过程是耗时的。

然而,很难说哪种算法最适合您的情况。如果您使用的是python,scikit-learn几乎包含了所有这些算法供您测试。此外,weka在用户友好的图形界面中集成了许多机器学习算法,也是您更好地了解每种算法性能的理想选择。