以下方法是电子邮件垃圾邮件检测项目中预测功能的实现。
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
函数正在完成所有实际工作(可能对字典中的每个单词都有垃圾邮件或不垃圾邮件分数,并对电子邮件词汇的分数求和)。该函数返回可能类别的列表(“垃圾邮件”,“合法”,“您曾经注册过但实际上并不希望阅读的大量电子邮件”)和相关概率。这里的循环仅查找概率最高的类别并返回。