Ensembles de modelos
Uma forma de melhorar as previsões de modelos de machine learning é usando ensembles. Uma abordagem básica é fazer a média das previsões de vários modelos. Uma abordagem mais complexa é alimentar as previsões dos modelos em outro modelo, que gera as previsões finais. Em geral, ambas as abordagens melhoram o desempenho geral (desde que os modelos individuais sejam bons). Se você se lembra, random forests também usam ensemble de muitas árvores de decisão.
Para criar um ensemble das previsões da nossa rede neural, vamos gerar previsões com os 3 modelos que acabamos de criar — o modelo básico, o modelo com função de perda personalizada e o modelo com dropout. Em seguida, vamos combinar as previsões com a função .hstack() do numpy e tirar a média por linha com np.mean(predictions, axis=1).
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Crie previsões em
scaled_train_featuresescaled_test_featurespara os 3 modelos que ajustamos (model_1,model_2,model_3) usando o método.predict(). - Empilhe horizontalmente (
np.hstack()) as previsões em uma matriz e calcule as médias por linha para obter as previsões médias para os conjuntos de treino e teste.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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:])