← Назад к вопросам

Как связана дисперсия с количеством базовых моделей в ансамбле?

2.3 Middle🔥 151 комментариев
#Машинное обучение#Метрики и оценка моделей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Связь дисперсии и количества моделей в ансамбле

Дисперсия в контексте ансамблей показывает, насколько различаются предсказания разных базовых моделей. С увеличением количества моделей в ансамбле дисперсия уменьшается, что приводит к более стабильным и обобщающимся предсказаниям.

Математическая основа

Для ансамбля из n независимых моделей с одинаковой дисперсией σ², дисперсия среднего значения предсказаний:

Var(ȳ) = σ² / n

Где:

  • σ² — дисперсия одной базовой модели
  • n — количество моделей в ансамбле

Ключевой вывод

Дисперсия снижается пропорционально корню из числа моделей. Если мы удвоим количество моделей, дисперсия уменьшится примерно на 30% (1/√2 ≈ 0.707).

Условия эффективности

Важно понимать, что эта формула работает только при независимости предсказаний:

  • Независимые модели — максимальное снижение дисперсии
  • Коррелированные модели — меньший эффект от увеличения количества
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score

X, y = load_iris(return_X_y=True)

# Демонстрация: увеличение количества деревьев
for n_estimators in [10, 50, 100, 200]:
    rf = RandomForestClassifier(n_estimators=n_estimators, random_state=42)
    scores = cross_val_score(rf, X, y, cv=5)
    variance = np.var(scores)
    print(f"n_estimators={n_estimators}: variance={variance:.4f}")

Практический эффект

  1. Меньше базовых моделей → высокая дисперсия, неустойчивые предсказания
  2. Оптимальное количество → баланс между дисперсией и смещением (bias-variance tradeoff)
  3. Слишком много моделей → дальнейшее снижение дисперсии минимально, но растут вычислительные затраты

Связь с типами ансамблей

  • Bagging (Random Forest) — максимально использует эффект независимости, дисперсия снижается быстро
  • Boosting (Gradient Boosting) — модели коррелированы (строятся на ошибках предыдущих), эффект меньше
  • Stacking — комбинирует разные алгоритмы, обеспечивая большую независимость

Оптимизация ансамбля

Чтобы максимально снизить дисперсию:

  • Используй разнообразные базовые модели (разные алгоритмы, параметры, признаки)
  • Применяй bootstrap для создания различных подмножеств данных
  • Находи баланс между количеством моделей и вычислительными ресурсами
  • Не забывай про корреляцию — слишком похожие модели не дадут нужного эффекта

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

Как связана дисперсия с количеством базовых моделей в ансамбле? | PrepBro