Как обработать нулевой фактор в расчете наивного байесовского классификатора?

14

Если у меня есть набор обучающих данных, и я обучаю его наивному байесовскому классификатору, и у меня есть значение атрибута, вероятность которого равна нулю. Как мне справиться с этим, если позже я хочу предсказать классификацию на новых данных? Проблема в том, что если в расчете есть ноль, то все произведение становится равным нулю, независимо от того, сколько других значений я получил, возможно, найдет другое решение.

Пример:

P(x|spam=yes)=P(TimeZone=US|sпaмзнак равноYеs)п(граммеоLосaTяоNзнак равноЕU|sпaмзнак равноYеs) ,,, знак равно0,004

п(Икс|sпaмзнак равноNо)знак равноп(TямеZоNезнак равноUS|sпaмзнак равноNо)п(граммеоLосaTяоNзнак равноЕU|sпaмзнак равноNо) ,,, знак равно0

Весь продукт становится равным потому что в данных обучения значение атрибута TimeZone US всегда равно Да в нашем небольшом наборе данных обучения. Как я могу справиться с этим? Должен ли я использовать больший набор обучающих данных или есть другая возможность преодолеть эту проблему?0

fragant
источник
Если вы получаете значение отдельного атрибута, его вероятность, по определению, не может быть равна нулю.
Пол
почему мы добавляем проблему с частотой 1 в 0, что за этим стоит логика, почему бы нам не добавить еще одно число?
Афтаб Хусайин

Ответы:

13

Подход к преодолению этой «проблемы нулевой частоты» в байесовском параметре состоит в добавлении единицы к счетчику для каждой комбинации значения атрибута-класса, когда значение атрибута не встречается с каждым значением класса. Так, например, скажем, ваши тренировочные данные выглядели так:

Спамзнак равноYеsСпамзнак равноNоЧасовой поясзнак равноUS105Часовой поясзнак равноЕU00

п(Часовой поясзнак равноUS|Спамзнак равноYеs)знак равно1010знак равно1

п(Часовой поясзнак равноЕU|Спамзнак равноYеs)знак равно010знак равно0

Затем вы должны добавить один к каждому значению в этой таблице, когда вы используете его для вычисления вероятностей:

Спамзнак равноYеsСпамзнак равноNоЧасовой поясзнак равноUS116Часовой поясзнак равноЕU11

п(Часовой поясзнак равноUS|Спамзнак равноYеs)знак равно1112

п(Часовой поясзнак равноЕU|Спамзнак равноYеs)знак равно112

timleathart
источник
4
В самом деле. Обратите внимание, что иногда вы можете добавлять значения, отличные от одного. Для получения дополнительной информации см en.wikipedia.org/wiki/Additive_smoothing
Dal