首页 > 解决方案 > 难以理解的朴素贝叶斯 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

我无法理解如何使用上述功能将特定数据项归类为垃圾邮件或火腿

标签: gaussiannaivebayesemail-spam

解决方案


calculateClassProbabilities函数正在完成所有实际工作(可能对字典中的每个单词都有一个垃圾邮件或非垃圾邮件分数,并对电子邮件词汇表的分数求和)。该函数返回可能的类别列表(“垃圾邮件”、“合法”、“您确实注册但 dpn 并不想阅读的群发电子邮件”)和相关的概率。这里的循环只是找到概率最高的类别并返回它。


推荐阅读