Inizia subitoInizia gratis

Ensembling dei modelli

Un modo per migliorare le predizioni dei modelli di Machine Learning è l'ensembling. Un approccio semplice è fare la media delle predizioni di più modelli. Un approccio più avanzato è usare le predizioni dei modelli come input di un altro modello, che produce le predizioni finali. Entrambi gli approcci in genere migliorano le prestazioni complessive (purché i singoli modelli siano validi). Se ci fai caso, anche le random forest applicano l'ensembling di molti alberi decisionali.

Per fare l'ensemble delle nostre reti neurali, genereremo le predizioni con i 3 modelli che abbiamo appena creato: il modello base, il modello con la funzione di perdita personalizzata e il modello con dropout. Poi combineremo le predizioni con la funzione .hstack() di numpy e faremo la media riga per riga con np.mean(predictions, axis=1).

Questo esercizio fa parte del corso

Machine Learning per la finanza in Python

Visualizza corso

Istruzioni dell'esercizio

  • Crea le predizioni su scaled_train_features e scaled_test_features per i 3 modelli addestrati (model_1, model_2, model_3) usando il metodo .predict().
  • Impila orizzontalmente (usa np.hstack()) le predizioni in una matrice e calcola le medie riga per riga per ottenere le predizioni medie per i set di train e test.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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:])
Modifica ed esegui il codice