如何解决class_prior 实际上是什么?
我正在阅读一本关于机器学习的书。在朴素贝叶斯一章中,遇到了一个问题:
# Create Bernoulli Naive Bayes object with prior probabilities of each class
classifer = BernoulliNB(class_prior=[0.25,0.5])
目标向量只有两个类(二元分类)。
为什么 class_prior
列表的值总和不为 1?两个可能的类别,两个先验概率。所以这似乎是一个矛盾。我忘记了统计中的某些内容吗?我是否以错误的方式理解了 class_prior
?
解决方法
这似乎是印刷错误。 GaussianNB
检查先验总和为 1 here,但基于 _BaseDiscreteNB
的模型没有。请参阅 _update_class_log_prior 和 fit。
看起来模型默默地接受了先验。来自 predict_proba
的最终输出似乎产生相同的输出,就好像您对先验进行缩放以获得单位总和一样;联合对数似然是一致的,我想数学计算出来(我没有检查过)所以实际预测是一样的。如果有兴趣,请查看 this notebook。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。