Классическое машинное обучение

Naive Bayes

Наивный байесовский классификатор

классикаБыстрый бейзлайн для текста; в продовых задачах вытеснен линейными моделями и трансформерами.

Направления: Машинное обучение · Классический ML, Продвинутый ML · Вероятностный ML

Применяет теорему Байеса при «наивном» предположении о независимости — и работает лучше, чем должно.

Ключевые тезисы

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

Какую задачу решает

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

Предположение почти всегда ложно: слова в тексте зависят друг от друга. Но для классификации важен не точный уровень вероятности, а то, какой класс победит, — и порядок классов оказывается устойчивым к нарушению независимости. Отсюда парадокс метода: заведомо неверная модель даёт неожиданно приличное качество почти бесплатно.

Почему нужно сглаживание

Обучили спам-фильтр. Приходит письмо со словом «блокчейн», которого в спам-выборке не было ни разу: , и всё произведение обнуляется — письмо не может быть спамом, что бы ни было в остальном тексте. Сглаживание Лапласа прибавляет единицу ко всем счётчикам, так что незнакомое слово получает малую, но ненулевую вероятность и лишь слегка сдвигает ответ. Это не косметика: без сглаживания мультиномиальный на реальных текстах просто не работает.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков
  • произведение по всем элементам
Совместное разваливается в произведение — это и есть «наивность»

Предположение почти всегда ложно (слова в тексте зависимы), но для ранжирования классов этого часто достаточно: даже смещённые вероятности сохраняют правильный порядок.

Спам-фильтр

Слово «выигрыш» встречается в 8% спама и в 0.1% нормальных писем. Каждое такое слово умножает шансы в пользу спама. Именно так работали первые байесовские фильтры — и работали хорошо.

ВариантДанныеМодель
Multinomialсчётчики словчастоты
Bernoulliбинарные наличие / отсутствие
Gaussianвещественные внутри класса
Обозначения
  • коэффициент, задающий вес слагаемого или скорость обновления
  • истинное значение целевой переменной
  • объект: вектор признаков
  • число объектов в выборке
Сглаживание Лапласа: без одно незнакомое слово обнулило бы всё произведение
На практике

Вероятности Naive Bayes систематически переуверены (близки к 0 или 1) из-за перемножения зависимых множителей. Если нужны вероятности, а не метки, — калибруйте.

Где применяется

  • Фильтрация спамаИсторическое и до сих пор рабочее применение: быстро, дёшево, легко дообучается на потоке.
  • Классификация текстаКрепкая на мешке слов, которую стоит побить прежде, чем строить что-то сложное.
  • Задачи реального времениОбучение и предсказание — это подсчёт частот: работает там, где на модель есть миллисекунды.
  • Очень малые выборкиОценивается мало параметров, поэтому метод не разваливается на десятках примеров.

Плюсы, минусы и альтернативы

Плюсы

  • Обучение за один проход по данным — быстрее не бывает.
  • Работает на крошечных выборках, где сложные модели переобучаются.
  • Естественно поддерживает онлайн-дообучение обновлением счётчиков.
  • Отлично переносит очень высокую размерность (десятки тысяч слов).
  • Прозрачен: вклад каждого виден как множитель.

Минусы

  • Предположение независимости нарушается почти всегда.
  • Вероятности плохо : обычно вырождаются к 0 или 1.
  • Не улавливает взаимодействия в принципе.
  • Скоррелированные учитываются многократно и перекашивают ответ.
  • На больших данных систематически уступает бустингу и линейным моделям с .

Брать, если

  • Нужна мгновенная на тексте.
  • Данных очень мало, а много.
  • Модель должна дообучаться на потоке без с нуля.

Не брать, если

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

Чем заменяют

Связанные темы

Байесовский подход · Вероятность и информация

Bayes Theorem93%

Теорема Байеса · Математический справочник

Правило пересчёта вероятности гипотезы после получения новых данных.

Probability93%

Теория вероятностей · Основы

Язык неопределённости: распределения, условные вероятности и теорема Байеса описывают, как данные порождаются и как обновлять убеждения.

Bayesian Inference75%

Байесовский вывод · Теория вероятностей и распределения

Параметры модели рассматриваются как случайные величины; данные обновляют априорное распределение в апостериорное.

Markov Chains75%

Марковские цепи · Теория вероятностей и распределения

Процесс, в котором будущее зависит только от текущего состояния. База для MDP, MCMC и моделей поведения пользователя.

Beta Distribution75%

Бета-распределение · Теория вероятностей и распределения

Распределение вероятности на отрезке [0,1] — естественный априор для конверсии и для многоруких бандитов.

Conditional Independence75%

Условная независимость · Теория вероятностей и распределения

Две величины независимы при известной третьей. Понятие, на котором стоят байесовские сети и наивный классификатор.

Probability Axioms75%

Аксиомы вероятности · Теория вероятностей и распределения

Три аксиомы Колмогорова, из которых выводится вся теория: неотрицательность, нормировка и аддитивность.

Random Variables75%

Случайные величины · Теория вероятностей и распределения

Отображение исходов в числа. Дискретные описываются функцией вероятности, непрерывные — плотностью.

Bayesian Optimization75%

Байесовская оптимизация · Практика ML

Строит модель зависимости метрики от гиперпараметров и выбирает следующую точку осознанно.

Statistics70%

Статистика · Основы

Как от выборки перейти к выводам о генеральной совокупности: оценки, доверительные интервалы и проверка гипотез.

Information Theory70%

Теория информации · Основы

Измеряет количество информации и различие между распределениями. Отсюда родом энтропия, кросс-энтропия и KL-дивергенция.

Probability Distribution70%

Распределение вероятностей · Математический справочник

Закон, задающий вероятности значений случайной величины.

Expectation70%

Математическое ожидание · Математический справочник

Среднее значение случайной величины по её распределению.

Variance70%

Дисперсия · Математический справочник

Мера разброса значений вокруг среднего.

Covariance70%

Ковариация · Математический справочник

Мера совместной изменчивости двух величин; корреляция — её нормированная версия.

Entropy70%

Энтропия · Математический справочник

Мера неопределённости распределения: максимальна при равномерном, нулевая при детерминированном.

KL Divergence70%

KL-дивергенция · Математический справочник

Насколько распределение q плохо описывает распределение p; несимметрична и не является метрикой.

Cross-Entropy70%

Кросс-энтропия · Математический справочник

Ожидаемая длина кода при использовании q для данных из p: энтропия p плюс KL(p‖q).

Log Loss70%

Логарифмические потери · Метрики

Оценивает качество самих вероятностей, а не только меток: уверенная ошибка штрафуется очень сильно.

Следующий шагДальше по связи: Bayes TheoremПравило пересчёта вероятности гипотезы после получения новых данных.Перейти →

Глава «Классическое машинное обучение» последний раз правилась . Нашли ошибку — напишите.