НачатьНачать бесплатно

Ансамблирование моделей

Один из способов улучшить предсказания моделей машинного обучения — ансамблирование. Простейший подход — усреднить предсказания нескольких моделей. Более сложный вариант — передать предсказания одних моделей в другую модель, которая делает итоговые предсказания. Оба подхода, как правило, улучшают общую точность — при условии, что отдельные модели достаточно хороши. Напомним, что случайные леса тоже используют ансамблирование: они объединяют множество деревьев решений.

Чтобы объединить предсказания наших нейронных сетей, мы получим прогнозы с помощью трёх построенных моделей — базовой модели, модели с пользовательской функцией потерь и модели с исключением нейронов (dropout). Затем мы объединим предсказания с помощью функции .hstack() из numpy и усредним их по строкам с помощью np.mean(predictions, axis=1).

Это упражнение является частью курса

Машинное обучение для финансов на Python

Посмотреть курс

Инструкции к упражнению

  • Получите предсказания на scaled_train_features и scaled_test_features для трёх обученных моделей (model_1, model_2, model_3) с помощью метода .predict().
  • Объедините предсказания по горизонтали с помощью np.hstack(), чтобы сформировать матрицу, и вычислите среднее значение по строкам — это и будут усреднённые предсказания для обучающей и тестовой выборок.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Make predictions from the 3 neural net models
train_pred1 = model_1.predict(____)
test_pred1 = model_1.predict(____)

train_pred2 = ____
test_pred2 = ____

train_pred3 = model_3.predict(scaled_train_features)
test_pred3 = model_3.predict(scaled_test_features)

# Horizontally stack predictions and take the average across rows
train_preds = np.mean(np.hstack((train_pred1, train_pred2, train_pred3)), axis=1)
test_preds = np.mean(____, ____)
print(test_preds[-5:])
Редактировать и запускать код