Что такое байесовская композиция?

«Что такое байесовская композиция?» — вопрос из категории Статистика и теория вероятностей, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

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

Пример применения в Python (упрощённый случай):

import numpy as np

# Предположим, у нас есть две модели с априорными распределениями их точности (Beta распределение)
# Модель 1: слабая априорная уверенность (Beta(5,5) ~ около 0.5)
# Модель 2: сильная априорная уверенность в высокой точности (Beta(20,2) ~ около 0.9)

# Мы наблюдаем новые данные: 10 успехов, 2 неудачи для Модели 1 и 15 успехов, 1 неудача для Модели 2
# Обновляем априорные распределения до апостериорных (Beta(alpha + успехи, beta + неудачи))
posterior_model1 = (5 + 10, 5 + 2)  # Beta(15, 7)
posterior_model2 = (20 + 15, 2 + 1) # Beta(35, 3)

# Ожидаемая точность (среднее) апостериорного распределения: alpha / (alpha + beta)
def expected_accuracy(params):
    alpha, beta = params
    return alpha / (alpha + beta)

acc1 = expected_accuracy(posterior_model1)
acc2 = expected_accuracy(posterior_model2)

# Композиция через взвешенное среднее, где вес пропорционален ожидаемой точности
weights = np.array([acc1, acc2])
weights /= weights.sum()  # Нормализуем веса

# Предсказания отдельных моделей для нового объекта
predictions = np.array([0.7, 0.85])

# Байесовская композиция (взвешенное предсказание)
combined_prediction = np.dot(weights, predictions)
print(f"Взвешенные веса моделей: {weights}")
print(f"Комбинированное предсказание: {combined_prediction:.3f}")

Основные области применения:

  • Ансамблирование моделей машинного обучения (например, Bayesian Model Averaging).
  • Сенсорная фьюжн — объединение данных от нескольких датчиков с разной надёжностью.
  • Мета-анализ в статистике — объединение результатов нескольких исследований.
  • Принятие решений на основе мнений нескольких экспертов с разной степенью доверия.