Предположение наивного байесовского классификатора состоит в том, что измерения данных независимы (наивная часть) и что модель является генеративной (байесовская часть).Другими словами, вы моделируете, как данные генерируются из состояний мира - P (data | world_state), где world_state может быть продолжением или категориальной переменной (с несколькими классами-категориями).Это работает в отличие от дискриминационных моделей, которые игнорируют генерацию данных и описывают апостериорную вероятность состояний мира посредством «прямого взлома» данных: P (world_state | data)
Вот шаги, которые вы должны выполнить для реализацииНаивный байесовский классификатор:
1. Моделируйте ваши данные с помощью генеративной модели, например, гауссовского распределения.У каждого класса будет свой гауссов.В наивной модели вы берете произведение гауссиан для каждого измерения данных.В более полной модели размерность гауссиана равна размерности данных.
2. Определите априор для каждого из ваших классов (например, категориальное распределение с одной вероятностью, назначенной каждому классу);
3. Изучите параметры, подгоняя гауссиан к вашим данным;
4. Оцените класс тестовых данных по формуле Байеса:
P(class|data) = P(data|class) * P(class)/P(data); [1]
P(data) = sum_over_classes[P(data|class) * P(class)]; [2]
Первый член в формуле 1 называется апостериорным, второйэто вероятность, и последний является приоритетом.Знаменатель, показанный в [2], часто игнорируется, когда вы вычисляете максимальный апостериор (MAP), который является наиболее вероятным классом, ответственным за генерацию данных.Однако знаменатель очень важен для понимания того, как модели классов работают вместе.
Например, вы можете создать очень сложную порождающую модель для каждого класса, но ваш апостериор будет выглядеть очень просто из-за того, что во время нормализации одна из вероятностей была уменьшена до 0. В этом случае лучшеотказаться от байесовского подхода и создать дискриминационную модель с меньшим количеством параметров, чем в генеративной.На диаграмме ниже вертикальные оси представляют собой вероятности мирового состояния (класса), а горизонтальные оси представляют данные.