gaussian - 难以理解的朴素贝叶斯 Predict() 方法
问题描述
以下方法是 EMail Spam Detection 项目中预测功能的实现。
预测给定行的类(邮件)
def predict(summaries, inputVector):
probabilities = calculateClassProbabilities(summaries, inputVector)
bestLabel, bestProb = None, -1
for classValue, probability in probabilities.items():
#print(classValue,'->',probability)
if bestLabel is None or probability > bestProb:
bestProb = probability
bestLabel = classValue
return bestLabel
我无法理解如何使用上述功能将特定数据项归类为垃圾邮件或火腿
解决方案
该calculateClassProbabilities
函数正在完成所有实际工作(可能对字典中的每个单词都有一个垃圾邮件或非垃圾邮件分数,并对电子邮件词汇表的分数求和)。该函数返回可能的类别列表(“垃圾邮件”、“合法”、“您确实注册但 dpn 并不想阅读的群发电子邮件”)和相关的概率。这里的循环只是找到概率最高的类别并返回它。