我的朴素贝叶斯训练数据是否需要成比例?

Does my Naive Bayes training data need to be proportional?

我将以垃圾邮件分类为例。规范的方法是对随机抽样的电子邮件进行手动分类,并使用它们来训练 NB 分类器。

太好了,现在假设我添加了一堆我知道不是垃圾邮件的存档电子邮件。这是否会扭曲我的分类器结果,因为现在 spam:not 垃圾邮件的比例不再具有代表性?我能想到的两种方式:

总的来说,训练数据多总比少好,所以如果不破坏算法我想加上。

可以 对所有数据进行训练,而不必担心相称性。也就是说,正如您观察到的那样,扭曲比例会扭曲概率并导致不良结果。如果您有 20% 的垃圾邮件流量,并针对 99% 的垃圾邮件和 1% 的好邮件(非垃圾邮件)训练垃圾邮件过滤器,您最终会得到一个超级激进的过滤器。

通常的做法是两步:

  1. 通过 运行 具有代表性的数据样本为过滤器设定种子(例如,垃圾邮件过滤器场景中的 1,000 封电子邮件)。
  2. 由于过滤器遇到额外的数据,只有在过滤器出错时才更新权重。这叫做"train-on-error."

如果您采用这种方法,您的过滤器将不会被突然爆发的垃圾邮件弄糊涂,这些垃圾邮件恰好包括单词 "trumpet" 以及真正的垃圾邮件。它只会在必要时进行调整,但会在出错时尽快赶上。这是防止大多数垃圾邮件发送者现在采用的 "Bayesian poisoning" 方法的一种方法。他们可以用大量垃圾来扰乱他们的消息,但他们只有这么多方式来描述他们的产品或服务,而这些词将永远是垃圾词。