Что такое Байесовская теорема и когда она применяется?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Байесовская теорема: основы
Байесовская теорема (Bayes' Theorem) — это математическая формула, которая описывает вероятность события на основе предварительного знания об условиях, которые могут быть связаны с этим событием.
Формула:
P(A|B) = P(B|A) * P(A) / P(B)
Где:
- P(A|B) — апостериорная вероятность (вероятность A при условии B)
- P(B|A) — вероятность B при условии A
- P(A) — априорная вероятность A
- P(B) — полная вероятность B
Смысл: Мы обновляем нашу веру (априорная вероятность) на основе новых данных (likelihood) и получаем более точную оценку (апостериорная вероятность).
Классический пример: медицинский тест
Сценарий:
- Заболеваемость редкой болезнью: 1% населения
- Тест точный на 99% (если болезнь есть, тест показывает положительно в 99%)
- Тест ошибается в 5% случаев, когда болезни нет (ложно-положительный результат)
Вопрос: Если тест положительный, какова реальная вероятность что у человека болезнь?
Интуиция: "99% точный тест, значит 99%?" — НЕПРАВИЛЬНО!
Расчет по Байесу:
- P(болезнь) = 0.01 (априор)
- P(тест+|болезнь) = 0.99 (чувствительность)
- P(тест+|нет болезни) = 0.05 (ложно-положительный)
- P(тест+) = P(тест+|болезнь) * P(болезнь) + P(тест+|нет) * P(нет)
= 0.99 * 0.01 + 0.05 * 0.99 = 0.0099 + 0.0495 = 0.0594
P(болезнь|тест+) = (0.99 * 0.01) / 0.0594 = 0.0099 / 0.0594 = 0.167 = 16.7%
Только 16.7%! Хотя тест показывает положительно. Почему? Потому что болезнь редкая, и большинство положительных результатов — ложные срабатывания.
Практические примеры в аналитике
Пример 1: Выявление фрода в платежах
Задача: Заказ стоит 10000 рублей. Система определила его как потенциальный фрод (подозрение). Какова реальная вероятность фрода?
P(фрод) = 0.5% (априор: в целом 0.5% всех заказов — фрод)
P(фрод-флаг|фрод) = 0.95 (95% фрод выявляется)
P(фрод-флаг|нет фрода) = 0.02 (2% легитимных заказов помечаются как фрод)
P(фрод|фрод-флаг) = (0.95 * 0.005) / (0.95 * 0.005 + 0.02 * 0.995)
= 0.00475 / (0.00475 + 0.0199)
= 0.00475 / 0.02465
= 19.3%
Даже с флагом фрода реальная вероятность только 19.3%. Нужно больше сигналов для блокировки.
Пример 2: Email spam detection
Задача: Письмо содержит слово "бесплатно". Какова вероятность что это спам?
P(спам) = 30% (в целом 30% писем — спам)
P("бесплатно"|спам) = 0.8 (80% спама содержит это слово)
P("бесплатно"|не спам) = 0.1 (10% легитимных писем содержат это слово)
P(спам|"бесплатно") = (0.8 * 0.3) / (0.8 * 0.3 + 0.1 * 0.7)
= 0.24 / (0.24 + 0.07)
= 0.24 / 0.31
= 77.4%
Применение в разных областях
1. Персонализация рекомендаций
Обновляем вероятность того, что пользователю понравится товар, на основе его предыдущих покупок.
2. A/B тестирование
Байесовский подход позволяет вычислить вероятность что вариант A лучше B раньше, чем frequentist подход.
import pymc as pm
import numpy as np
# Байесовское A/B тестирование
with pm.Model() as model:
p_A = pm.Beta('p_A', alpha=1, beta=1)
p_B = pm.Beta('p_B', alpha=1, beta=1)
# Наблюдаемые данные
obs_A = pm.Binomial('obs_A', n=1000, p=p_A, observed=120) # 120 конверсий из 1000
obs_B = pm.Binomial('obs_B', n=1000, p=p_B, observed=150) # 150 конверсий из 1000
trace = pm.sample(2000)
# Получаем распределение вероятностей
3. Определение причины проблемы
Проблема: API упал. Какова вероятность что это из-за переполнения памяти?
P(memory_overflow) = 10% (историческая частота)
P(API_down|memory) = 0.9 (90% раз когда память переполняется, API падает)
P(API_down|other) = 0.3 (30% раз других причин тоже приводят к падению)
P(memory|API_down) = (0.9 * 0.1) / (0.9 * 0.1 + 0.3 * 0.9)
= 0.09 / (0.09 + 0.27)
= 0.09 / 0.36
= 25%
Байесовский vs Frequentist подход
| Аспект | Байес | Frequentist |
|---|---|---|
| Вероятность | Степень веры (субъективно) | Частота событий |
| Априор | Учитывает предыдущее знание | Игнорирует |
| Интерпретация | P(A|B) — вероятность гипотезы | P(данные|гипотеза) |
| Выборка | Можно остановить когда ответ ясен | Нужно зафиксировать размер |
| Использование | Реальные данные, когда информация ограничена | Большие объемы данных |
Когда использовать Байеса
✅ Используй:
- Когда у тебя есть предыдущие знания (историческая частота)
- Когда нужна вероятность гипотезы (не данных)
- Когда выборка маленькая
- Когда нужно быстро принять решение
❌ Не используй:
- Когда нет информации о априоре
- Когда много данных и частотный подход работает
- Когда нужна полная объективность
Заключение
Байесовская теорема — мощный инструмент, который помогает обновлять нашу веру на основе новых данных. Это основа многих алгоритмов в ML, рекомендациях и аналитике. Главное — правильно выбрать априорную вероятность и не путать P(A|B) с P(B|A).