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
Istruzioni dell'esercizio
- Crea le predizioni su
scaled_train_featuresescaled_test_featuresper 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:])