Встречается на собеседованиях • сегодня

Как настроить валидацию при использовании стекинга и блендинга

Для валидации при стекинге и блендинге важно избегать утечки данных.

Стекинг:

  1. Разбейте данные на k фолдов.
  2. Обучите базовые модели на k-1 фолдах, предскажите для оставшегося.
  3. Используйте out-of-fold предсказания как фичи для метамодели.

Блендинг:

  1. Разделите данные на train и holdout (обычно 70/30).
  2. Обучите модели на train, предскажите для holdout.
  3. Смешайте предсказания (например, среднее) для метамодели.

Пример с кодом (стекинг):

python
from sklearn.model_selection import KFold
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
import numpy as np

X, y = ... # данные
kf = KFold(n_splits=5)
stacked_preds = np.zeros(len(X))

for train_idx, val_idx in kf.split(X):
    X_train, X_val = X[train_idx], X[val_idx]
    y_train = y[train_idx]
    
    # Обучаем базовую модель
    rf = RandomForestClassifier().fit(X_train, y_train)
    stacked_preds[val_idx] = rf.predict_proba(X_val)[:, 1]

# Используем stacker (метамодель)
meta_X = np.column_stack([stacked_preds])  # можно добавить другие фичи
meta_model = LogisticRegression().fit(meta_X, y)

Ключевое:

  • Никогда не используйте тестовые данные для обучения стекинга/блендинга.
  • Для блендинга holdout должен быть полностью изолирован.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы