Kom igångKom igång gratis

Ensembling av modeller

En metod för att förbättra prediktioner från maskininlärningsmodeller är ensembling. Det enklaste tillvägagångssättet är att ta medelvärdet av prediktioner från flera modeller. En mer avancerad metod är att mata in prediktioner från flera modeller i ytterligare en modell, som sedan gör de slutliga prediktionerna. Båda metoderna förbättrar vanligtvis den övergripande prestandan – förutsatt att de enskilda modellerna håller god kvalitet. Om du minns det, använder random forests också ensembling av många beslutsträd.

För att ensembla våra neurala nätverksprediktioner gör vi prediktioner med de 3 modeller vi just skapade – grundmodellen, modellen med den anpassade förlustfunktionen och modellen med dropout. Sedan kombinerar vi prediktionerna med numpy:s .hstack()-funktion och beräknar radvis medelvärde med np.mean(predictions, axis=1).

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Skapa prediktioner på scaled_train_features och scaled_test_features för de 3 modeller vi tränade (model_1, model_2, model_3) med hjälp av metoden .predict().
  • Stapla prediktionerna horisontellt (np.hstack()) till en matris och beräkna radvis medelvärde för att få genomsnittliga prediktioner för tränings- och testmängderna.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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:])
Redigera och kör kod