Алгоритм основан на теореме Байеса — основе основ теории вероятностей. Так что для начала вспомним несколько базовых понятий:
● P (A) — полная или априорная вероятность события A,
● P (AB) — вероятность совместного наступления событий A и B,
● P (A | B ) — условная или апостериорная вероятность события A при наступлении события B.
Формула Байеса позволяет рассчитать условную вероятность события A, если взаимосвязанное с ним событие B уже наступило. Выглядит она так:
P (A | B ) = P (B | A) P (A) / P (B)
Вы легко можете вывести её самостоятельно из определения условной вероятности: P (A | В) = P (AB) / P (B) — достаточно сообразить, чему равно P (AB) для зависимых друг от друга событий.
Предположим, разобрались. Но какое отношение всё это имеет к ML?
Самое прямое! Для реализации байесовского классификатора за событие B принимают наличие у объекта определённого набора признаков, а за событие A — его принадлежность к тому или иному классу. У какого класса P (A | В) больше — тот и победил в классификации:)
В нашем случае P (A | B ) — это вероятность, что вам подойдёт предмет одежды A, если на улице погода B. Соответственно, P (B | A) — вероятность, что сегодня погода B, если вы выбрали аутфит A.
А теперь — самое интересное. Мы знаем, что погода характеризуется двумя признаками: температурой и вероятностью осадков. То есть, по сути, вместо одного события B мы имеем дело с B1 и B2. И как тогда считать P (B) и P (B | A)?
Здесь и включается «наивность» байесовского классификатора. Он изначально предполагает, что признаки объекта не зависят друг от друга, а значит: P (B) = P (B1) * P (B2) и P (B | A) = P (B1 | A) * P (B2 | A). Разумеется, для реальных данных это почти никогда не правда — но это работает!
Надо оговориться, что для корректного расчёта вероятностей того или иного значения признака следует использовать номинальные характеристики вместо числовых. Очевидно, что шанс на температуру, например, ровно 21.2°C ничтожно мал — куда разумнее искусственно ввести диапазон вида 20–22°C и рассчитывать вероятность попадания в него.
Друзья, на этой ноте мы завершаем серию разборов базовых алгоритмов ML — самое время вернуться к прошлым постам и ещё раз закрепить в памяти всё, с чем мы познакомились за последние пару месяцев. А мы скоро обязательно вернёмся с новой порцией полезной информации!
● P (A) — полная или априорная вероятность события A,
● P (AB) — вероятность совместного наступления событий A и B,
● P (A | B ) — условная или апостериорная вероятность события A при наступлении события B.
Формула Байеса позволяет рассчитать условную вероятность события A, если взаимосвязанное с ним событие B уже наступило. Выглядит она так:
P (A | B ) = P (B | A) P (A) / P (B)
Вы легко можете вывести её самостоятельно из определения условной вероятности: P (A | В) = P (AB) / P (B) — достаточно сообразить, чему равно P (AB) для зависимых друг от друга событий.
Предположим, разобрались. Но какое отношение всё это имеет к ML?
Самое прямое! Для реализации байесовского классификатора за событие B принимают наличие у объекта определённого набора признаков, а за событие A — его принадлежность к тому или иному классу. У какого класса P (A | В) больше — тот и победил в классификации:)
В нашем случае P (A | B ) — это вероятность, что вам подойдёт предмет одежды A, если на улице погода B. Соответственно, P (B | A) — вероятность, что сегодня погода B, если вы выбрали аутфит A.
А теперь — самое интересное. Мы знаем, что погода характеризуется двумя признаками: температурой и вероятностью осадков. То есть, по сути, вместо одного события B мы имеем дело с B1 и B2. И как тогда считать P (B) и P (B | A)?
Здесь и включается «наивность» байесовского классификатора. Он изначально предполагает, что признаки объекта не зависят друг от друга, а значит: P (B) = P (B1) * P (B2) и P (B | A) = P (B1 | A) * P (B2 | A). Разумеется, для реальных данных это почти никогда не правда — но это работает!
Надо оговориться, что для корректного расчёта вероятностей того или иного значения признака следует использовать номинальные характеристики вместо числовых. Очевидно, что шанс на температуру, например, ровно 21.2°C ничтожно мал — куда разумнее искусственно ввести диапазон вида 20–22°C и рассчитывать вероятность попадания в него.
Друзья, на этой ноте мы завершаем серию разборов базовых алгоритмов ML — самое время вернуться к прошлым постам и ещё раз закрепить в памяти всё, с чем мы познакомились за последние пару месяцев. А мы скоро обязательно вернёмся с новой порцией полезной информации!