我在学习机器学习课程的作业时,遇到关于朴素贝叶斯的问题理解困难。我的问题是以下页面上第二个问题的变体:
https://www.cs.utexas.edu/~mooney/cs343/hw3-old/hw3.html
我的数据与上面略有不同,所以我会用上面的例子来替换我的作业中的数字。我目前正在尝试计算第一篇文本是物理学的概率。为此,我有类似这样的东西:
P(physics|c) = P(physics) * P(carbon|physics) * p(atom|physics) * p(life|physics) * p(earth|physics) / [SOMETHING]
P(physics|c) = .35 * .005 * .1 * .001 * .005 / [SOMETHING]
我这是基于我在笔记中看到的一个例子,但似乎无法弄清楚应该除以什么。我也会提供笔记中的例子。
也许我的方法是错误的,但我不知道我们除以的P(X)项是从哪里来的。这与文本是物理学的概率有什么关系?我觉得解决这个问题会使作业的其余部分变得简单。
回答:
分母 P(X)
只是所有可能类别的 P(X|Y)*P(Y)
的总和。
现在,需要注意的是,在朴素贝叶斯中,你不需要计算这个 P(X)
。你只需要计算每个类别的 P(X|Y)*P(Y)
,然后选择产生最高概率的类别。
在你的例子中,我假设你有几个类别。你提到了 physics
,但肯定还有其他类别,比如 chemistry
或 math
。
所以你可以计算:
P(physics|X) = P(X|physics) * P(physics) / P(X)P(chemistry|X) = P(X|chemistry) * P(chemistry) / P(X)P(math|X) = P(X|math) * P(math) / P(X)
P(X)
是所有类别的 P(X|Y)*P(Y)
的总和:
P(X) = P(X|physics)*P(physics) + P(X|chemistry)*P(chemistry) + P(X|math)*P(math)
(顺便说一下,上述陈述与你提供的图像中的例子完全类似。那里的方程有点复杂,但如果你重新排列它们,你会发现那个例子中的 P(X) = P(X|positive)*P(positive) + P(X|negative)*P(negative)
)。
为了得出答案(即在 physics
、chemistry
或 math
中确定 Y
),你将选择 P(physics|X)
、P(chemistry|X)
和 P(math|X)
中的最大值。
正如我提到的,你不需要计算 P(X)
,因为这个项存在于 P(physics|X)
、P(chemistry|X)
和 P(math|X)
的分母中。因此,你只需要在 P(X|physics)*P(physics)
、P(X|chemistry)*P(chemistry)
和 P(X|math)*P(math)
中确定最大值即可。