Aan de slagBegin gratis

Modellen ensemblen

Een manier om voorspellingen van Machine Learning-modellen te verbeteren is ensembling. Een eenvoudige aanpak is om de voorspellingen van meerdere modellen te middelen. Een meer geavanceerde aanpak is om de voorspellingen van modellen door te voeren naar een ander model, dat de uiteindelijke voorspellingen maakt. Beide aanpakken verbeteren meestal de algehele performance (zolang de individuele modellen goed zijn). Als je het je herinnert: random forests gebruiken ook ensembling van veel beslissingsbomen.

Om onze neural-net-voorspellingen te ensemblen, maken we voorspellingen met de 3 modellen die we zojuist hebben gemaakt: het basismodel, het model met de custom loss-functie en het model met dropout. Daarna combineren we de voorspellingen met de .hstack()-functie van numpy, en middelen we ze per rij met np.mean(predictions, axis=1).

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Maak voorspellingen op de scaled_train_features en scaled_test_features voor de 3 getrainde modellen (model_1, model_2, model_3) met de methode .predict().
  • Stapel de voorspellingen horizontaal (np.hstack()) tot één matrix en neem het rijgemiddelde om gemiddelde voorspellingen voor de train- en testsets te krijgen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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:])
Code bewerken en uitvoeren