Ансамблювання моделей
Один зі способів покращити прогнози моделей машинного навчання — ансамблювання. Базовий підхід — усереднити прогнози кількох моделей. Складніший підхід — подати прогнози моделей на вхід іншої моделі, яка формує фінальні передбачення. Обидва підходи зазвичай підвищують загальну якість (за умови, що окремі моделі достатньо хороші). Якщо пам'ятаєте, випадкові ліси також використовують ансамблювання багатьох дерев рішень.
Щоб застосувати ансамблювання до наших прогнозів нейромереж, ми зробимо прогнози трьома щойно створеними моделями — базовою, з кастомним функціоналом втрат і з дроп-аутом. Потім об'єднаємо прогнози за допомогою .hstack() з numpy та усереднимо їх по рядках за допомогою np.mean(predictions, axis=1).
Ця вправа є частиною курсу
Machine Learning для фінансів у 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:])