我写了一个基于Naive Bayes algorithm的分类程序这对于将一份文档仅归为一类非常有效。但是,我的上下文发生了变化,我现在需要将文档分为 N 个类别。
基本上我需要从“垃圾邮件”/“非垃圾邮件”分类切换到“垃圾邮件和扑克牌”、“垃圾邮件和其他东西”、“非垃圾邮件”。
我考虑了 2 个选项:
调整算法并根据概率对可能的类别进行排序。这可能有效,但对我来说似乎不正确。你怎么看?
使用完全不同的算法,在这种情况下,您会推荐哪一个?
提前感谢您的反馈:)
最佳答案
没有理由不将朴素贝叶斯扩展到多个类别——事实上,它是一个自然扩展到多类别情况的简单分类器。如果您的类别“垃圾邮件和扑克”、“垃圾邮件和其他东西”、“不是垃圾邮件”完全不相交,您可以将其视为一个单一的三向分类任务:如果您的类别 c_1、c_2 和 c_3 具有先验概率 p_1、p_2和 p_3,以及可能性(给定类的实例的概率)l_1、l_2 和 l_3,则该类的后验概率与其先验概率成正比(归一化器只是总和 p_1*l_1 + p_2*l_2 + p_3* l_3).对于任何数量的类,这同样适用。
但是,我怀疑您可能会在实践中找到更好的性能,方法是首先确定它是否是垃圾邮件,然后确定垃圾邮件的类型(两阶段分类过程)。
汤姆·米切尔 (Tom Mitchell) 的书“机器学习”(Machine Learning) 是对这方面内容的非常简单的介绍,如果您碰巧有机会阅读的话。
关于python - 将文档分类为多个类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12854304/