gpt4 book ai didi

machine-learning - 朴素贝叶斯是否应该对词汇表中的所有单词进行乘法运算

转载 作者:行者123 更新时间:2023-11-30 08:36:33 24 4
gpt4 key购买 nike

我在文本分类中使用朴素贝叶斯。

假设我的词汇是[“apple”,“boy”,“cup”],类标签是“spam”或“ham”。每个文档将被覆盖到一个 3 维 0-1 向量。例如,“apple boy apple apple”将转换为 [1,1,0]

现在我已经根据训练示例计算了条件概率 p("apple"|"spam")、p("apple"|"ham")、p("boy"|"spam")...等。

测试文档是否为垃圾邮件或非垃圾邮件,例如“apple boy”-> [1,1,0],我们需要计算 p(features | classLabel)

使用条件独立性,测试向量[1,1,0]

我知道这两个公式

(1) p(特征|"火腿") = p("苹果"|"火腿")p("男孩"|"火腿")

(2) p(特征|"火腿") = p("苹果"|"火腿")p("男孩"|"火腿")(1-p("杯子"|"火腿"))

哪个公式是正确的?

我相信 (2) 是正确的,因为我们有 3 个特征(实际上词汇中有 3 个单词)。但我看到其他人使用(1)编写的代码。虽然 1-p("cup"|"ham") 项接近 1,因此不会产生太大差异,但我想要确切的答案。

最佳答案

你的直觉是对的,你写的代码也可能是对的。但是,您的问题出在符号上。 (我需要承认,一开始很难理解它。)您缺少的最重要的概念是随机变量(RV)

我使用 HAMCUPBOYHAM 作为随机变量。每个 RV 可能发生两种可能的事件:contains(c) 或 not contains (nc)。文本包含 boy 的概率可以写为 P(BOY=contains) 并且不包含该单词的概率为 P(BOY=not contains)= 1-P(BOY =包含)

正确的公式是:

P(FEATURES| HAM) =  P(CUP,BOY,APPLE|HAM) = P(CUP|HAM)P(BOY|HAM)P(APPLE|HAM)

最后一步是由于朴素贝斯假设。要计算您要求的概率,您需要计算

 P(BOY=c,APPLE=c,CUP=nc|HAM) = P(BOY=c|HAM)P(APPLE=c|HAM)P(CUP=nc|HAM) 
= P(BOY=c|HAM)P(APPLE=c|HAM)(1-P(CUP=c|HAM))

实际上,这仍然是两个概率(总和不等于一),因为 HAM 可以取两个值。

关于machine-learning - 朴素贝叶斯是否应该对词汇表中的所有单词进行乘法运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33720659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com