朴素贝叶斯对训练观察的数量敏感吗?

Is Naive Bayes sensitive to the number of training observations?

我正在使用 Swift(即使我的问题与语言无关)和 Python 来测试我的 ML 逻辑。我有训练数据:

("add a new balloon", "add-balloon")
("add a balloon", "add-balloon")
("get last balloon", "get-balloon")
("update balloon color to red", "update-balloon")

当我尝试使用朴素贝叶斯对像

这样的新句子进行分类时
classify("could you add a new balloon") 
// Return add-balloon
classify("could you update the balloon color") 
// Return add-balloon
classify("update the balloon color") 
// Return add-balloon

我的数据集有很多关于添加气球的观察结果(大约 50 个),但没有太多要更新或获取的(大约 5-6 个)。朴素贝叶斯对训练观察的数量敏感吗?我不明白为什么即使给出它在训练期间看到的句子,分类也表现不佳。

最初,朴素贝叶斯取决于数据的大小,但如果我们继续添加更多数据,在达到一定水平后,性能就会趋于稳定,进一步增加训练数据不会提高朴素贝叶斯分类器的性能。

但是对于您的情况,数据太小,模型无法准确了解 "update-balloon" 并且正在预测 "add-balloon"。尝试为 类 添加更多数据较少的示例,看看准确性是否有所提高。

如果您的数据有偏差并且您无能为力,您可以尝试其他分类器或尝试一些提到的技巧 here and here

朴素贝叶斯对 class 先验敏感(示例在 class 中的分布)。因此,如果您的 add-balloon 比其他类别多得多,它就会偏向这个 class。这通常是有帮助的,因为假设你什么都不知道(没有后验信息),你最好的选择是尝试最有可能的 class 。

如果您的分布严重偏斜,您的数据集不大,您的文档很短或缺少非常有用的词(或包含许多模棱两可的词),但这可能会导致不良结果,例如您正在报告的内容。