Давайте представим, что мы решили автоматизировать процесс выбора верхней одежды в межсезонье — научить голосового ассистента на основании прогноза погоды подсказывать нам, в чём сегодня лучше выйти

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Давайте представим, что мы решили автоматизировать процесс выбора верхней одежды в межсезонье — научить голосового ассистента на основании прогноза погоды подсказывать нам, в чём сегодня лучше выйти из дома.

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

Для обучения, как обычно, используем множество пар «набор признаков — правильный ответ». В нашем случае это будут заранее собранные данные «погода — комфортная одежда».

Как видите, получилась типичная задача группировки объектов по трём классам. Мы с вами уже знаем, как работать с такими проблемами с помощью интуитивных методов вроде kNN или решающих деревьев. Сегодня познакомимся с ещё одной, более «математической» моделью — наивным байесовским классификатором.

Алгоритм основан на теореме Байеса — основе основ теории вероятностей. Так что для начала вспомним несколько базовых понятий:

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 | B) = P (AB) / P (B) — достаточно сообразить, чему равно P (AB) для зависимых друг от друга событий.

Предположим, разобрались. Но какое отношение всё это имеет к ML?

Самое прямое! Для реализации байесовского классификатора за событие B принимают наличие у объекта определённого набора признаков, а за событие A — его принадлежность к тому или иному классу. У какого класса P (A | B) больше — тот и победил в классификации :)

В нашем случае 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 — самое время вернуться по хэштегу и ещё раз закрепить в памяти всё, с чем мы познакомились за последние пару месяцев. А мы скоро обязательно вернёмся с новой порцией полезной информации!

Комментарии: