EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea predicciones sobre scaled_train_features y scaled_test_features para 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:])
Editar y ejecutar código