我正在研究一个涉及对大型文本数据库进行分类的问题。文本很短(每个3-8个单词),有10-12个类别,我希望对它们进行排序。对于这些功能,我只是使用每个单词的tf-idf频率。因此,特征的数量大致等于文本中整体出现的单词数量(我正在删除停用词和其他一些词。)
在尝试使用模型时,我有以下两个想法:
我已经建立了两个模型,目前正在比较结果。
每种型号的理论优缺点是什么?为什么其中一个可以更好地解决这类问题?我是机器学习的新手,所以我想了解的是为什么可能做得更好。
非常感谢!
答案 0 :(得分:20)
您使用"功能"建立的模型之间的最大区别观点是Naive Bayes将它们视为独立的,而SVM在一定程度上关注它们之间的相互作用,只要您使用非线性内核(Gaussian,rbf,poly等)。因此,如果您有交互,并且,鉴于您的问题,您很可能会这样做,SVM将更好地捕获这些,因此更好地完成您想要的分类任务。
ML研究人员和从业人员的共识是,几乎在所有情况下,SVM都优于朴素贝叶斯。
从理论的角度来看,比较两种方法有点困难。一个是概率性的,而第二个是几何的。然而,很容易想出一个函数,其中一个人在Naive Bayes没有捕获的变量之间存在依赖关系(y(a,b)= ab),所以我们知道它不是一个通用的逼近。具有适当选择内核的SVM(虽然是2/3层神经网络),但从这个角度来看,理论与实践相符。
但最终归结为你的问题的性能 - 你基本上想要选择最简单的方法,为你的问题提供足够好的结果和有一个足够好的表现。例如,只有Naive Bayes可以解决垃圾邮件检测问题。通过类似的方法在图像中进行人脸识别,增强等等。
答案 1 :(得分:3)
对于片段而言,MNB比较长的文档更强。虽然(吴和乔丹, 2002)表明NB优于SVM / logistic 回归(LR),只有很少的培训案例,MNB对短文件也更好。当SVM超过30-50个训练案例时,SVM通常比NB更好,我们表明即使训练集相对较大(9k例),MNB在片段方面仍然更好。
Inshort,NBSVM似乎是复杂分类文本数据的合适且非常强大的基线。
源代码:https://github.com/prakhar-agarwal/Naive-Bayes-SVM
参考:http://nlp.stanford.edu/pubs/sidaw12_simple_sentiment.pdf
引用:Wang,Sida和Christopher D. Manning。 “基线和双字母: 简单,良好的情感和主题分类。“诉讼程序 计算语言学协会第50届年会: 短文 - 第2卷。计算语言学协会, 2012。