Сложно понять метод наивного байесовского прогноза () - PullRequest
0 голосов
/ 15 февраля 2020

Приведенный ниже метод является реализацией функции прогнозирования в проекте 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

Я не могу понять, как конкретный элемент данных классифицируется как спам или ветчина с использованием вышеуказанной функции

1 Ответ

0 голосов
/ 15 февраля 2020

Функция calculateClassProbabilities выполняет всю реальную работу (вероятно, имеет оценку «спам» или «нет» для каждого слова в словаре и суммирует оценки для словаря электронных писем). Эта функция возвращает список возможных категорий («спам», «le git», «массовое электронное письмо, на которое вы подписались, но на самом деле не хотите читать») и связанные вероятности. Здесь l oop просто находит категорию с наибольшей вероятностью и возвращает ее.

...