machine-learning - 为什么标准化朴素贝叶斯后验概率
问题描述
我想了解为什么有必要对后验进行归一化。如果我对朴素贝叶斯定理的理解是错误的,请纠正我。
在公式
P(B|A) = P(A|B)*P(B) / P(A)
RHS 概率是根据训练数据 P(A|B) 计算的,其中 A 是输入特征,B 是目标类别 P(B) 是考虑中的目标类别的概率,P(A) 是输入特征的概率。
一旦你计算出这些先验概率,你就会得到测试数据,并根据测试数据的输入特征计算目标类概率,即 P(B|A)(我猜这称为后验概率)。
现在在一些视频中,他们教导说,在此之后,您必须对 P(B|A) 进行归一化以获得该目标类的概率。
为什么有必要。P(B|A) 本身不是目标类的概率吗?
解决方案
原因很简单:
在朴素贝叶斯你的目标是找到最大化后验概率的类,所以基本上,你想要Class_j
最大化这个公式:
因为我们做了独立的假设,我们可以这样翻译P(x|Class_j)
分子部分:
比公式中的分子可以变成这样:
因为每个类的分母 P(x) 都是相同的,所以在最大值计算中基本上可以省略这一项:
但是由于分子本身并不代表您的特定概率(省略 P(x)),因此您需要除以该数量。
一些使用的参考:
http://shatterline.com/blog/2013/09/12/not-so-naive-classification-with-the-naive-bayes-classifier/ https://www.globalsoftwaresupport.com/naive-bayes-classifier-解释步骤/
推荐阅读
- python - 以正确的顺序生成 WHL 文件列表以供离线安装
- javascript - 我的 DC Bot 发送消息两次或更多次
- c# - System.BadImageFormatException - 版本之间不匹配
- php - Laravel 7 Godaddy 托管中的 SMTP
- reactjs - React:列表中的兄弟姐妹必须具有唯一键。这些列表兄弟姐妹的孩子是否也需要它们?
- cordova - 为 Windows Ionic App 创建 exe 时,所有 Dll 均未签名
- java - 如何从 JEditorPane 保存数据?
- python - matplotlib imshow in loop exits with code -1073741819 (0xC0000005)
- .net-core - 修改启动设置后出错:无法应用启动配置文件“(默认)”
- windows - 仅替换字符串中管道字符的第一次出现