朴素贝叶斯 (Naive Bayes)
朴素贝叶斯是一类基于贝叶斯定理的简单概率分类器。它的核心优势在于算法简单、易于实现,并且在很多情况下都能取得非常好的效果,尤其是在文本分类(如垃圾邮件过滤)等领域。
基础:贝叶斯定理
朴素贝叶斯分类器的数学基础是贝叶斯定理。这个定理告诉我们如何根据新的证据来更新我们对一个事件的信念(概率)。
P(A|B) = (P(B|A) * P(A)) / P(B)
- P(A|B) (后验概率): 在事件 B 发生后,事件 A 发生的概率。
- P(B|A) (似然度): 在事件 A 发生的情况下,事件 B 发生的概率。
- P(A) (先验概率): 在没有任何证据的情况下,事件 A 发生的概率。
- P(B) (证据): 事件 B 发生的概率。
核心:“朴素”的特征条件独立假设
朴素贝叶斯的“朴素”之处在于它做了一个非常强的假设:所有特征之间相互独立。这意味着模型认为一个特征的出现与其他特征的出现毫无关系。
例如,在判断一封邮件是否为垃圾邮件时:模型会“天真地”认为,邮件中出现“中奖”这个词的概率,与它是否出现“免费”这个词是完全无关的。虽然现实中这两个词经常一起出现,但这个“朴素”的假设极大地简化了计算,使得算法非常高效。
动手试试:模拟垃圾邮件分类器
假设我们已经统计好了每个词在“垃圾邮件”和“正常邮件”中出现的概率。勾选下面邮件中出现的词语,观察分类器如何一步步计算出最终的分类概率。
from sklearn.naive_bayes import MultinomialNB
# X: 文本特征 (如单词计数)
# y: 标签 (spam, not_spam)
X, y = ...
# 创建并训练朴素贝叶斯模型
model = MultinomialNB()
model.fit(X, y)
# 预测新邮件
new_email = ["恭喜您中奖..."]
prediction = model.predict(new_email)