我正在使用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")
当我尝试使用Naive Bayes来分类像
这样的新句子时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个)。朴素贝叶斯对训练观察的数量敏感吗?我不明白为什么即使给出了在训练期间看到的句子,分类也表现不佳。
答案 0 :(得分:1)
最初,朴素贝叶斯取决于数据的大小,但如果我们继续增加更多,在一定程度之后,它的性能平稳和训练数据的进一步增加并不会提高朴素贝叶斯分类器的性能。
但是对于你的情况来说,数据太小,模型无法准确地了解“更新气球”并预测“添加气球”。尝试为数据较少的类添加更多示例,并查看准确性是否有所提高。
答案 1 :(得分:1)
朴素贝叶斯对班级先验敏感(班级中的例子分布)。因此,如果您比其他类别有更多add-balloon
,那么它将偏向此类。这通常是有帮助的,因为假设你不知道任何事情(没有后验信息),你最好的选择是尝试最有可能的课程。
如果您的发行版严重偏差,那么您的数据集不是很大,您的文档很短或者缺少信息量很大的单词(或包含许多含糊不清的单词),但这会导致不良后果,例如您所报告的内容。