Ensamblado de modelos
Una forma de mejorar las predicciones de modelos de Machine Learning es el ensamble. Un enfoque básico es promediar las predicciones de varios modelos. Un enfoque más complejo es alimentar las predicciones de los modelos a otro modelo, que realiza las predicciones finales. Ambos enfoques suelen mejorar el rendimiento global (siempre que nuestros modelos individuales sean buenos). Si recuerdas, los random forests también usan el ensamble de muchos árboles de decisión.
Para ensamblar nuestras predicciones de redes neuronales, haremos predicciones con los 3 modelos que acabamos de crear: el modelo básico, el modelo con la función de pérdida personalizada y el modelo con dropout. Luego combinaremos las predicciones con la función .hstack() de numpy, y las promediaremos por filas con np.mean(predictions, axis=1).
Este ejercicio forma parte del curso
Machine Learning para finanzas con Python
Instrucciones del ejercicio
- Crea predicciones sobre
scaled_train_featuresyscaled_test_featurespara los 3 modelos que ajustamos (model_1,model_2,model_3) usando el método.predict(). - Apila horizontalmente (con
np.hstack()) las predicciones en una matriz y saca los promedios por fila para obtener las predicciones promedio de los conjuntos de entrenamiento y de prueba.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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:])