Modelle ensemblen
Eine Möglichkeit, Vorhersagen von Machine‑Learning‑Modellen zu verbessern, ist Ensembling. Ein einfacher Ansatz ist, die Vorhersagen mehrerer Modelle zu mitteln. Ein komplexerer Ansatz ist, die Vorhersagen von Modellen in ein weiteres Modell einzuspeisen, das die finalen Vorhersagen trifft. Beide Ansätze verbessern in der Regel die Gesamtleistung (solange die einzelnen Modelle gut sind). Wenn du dich erinnerst: Random Forests nutzen ebenfalls das Ensembling vieler Entscheidungsbäume.
Um die Vorhersagen unseres Neural Networks zu ensemblen, erstellen wir Vorhersagen mit den 3 Modellen, die wir gerade gebaut haben – dem Basis‑Modell, dem Modell mit benutzerdefinierter Loss‑Funktion und dem Modell mit Dropout. Anschließend kombinieren wir die Vorhersagen mit der .hstack()‑Funktion von numpy und mitteln sie zeilenweise mit np.mean(predictions, axis=1).
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Erstelle Vorhersagen auf den
scaled_train_featuresundscaled_test_featuresfür die 3 trainierten Modelle (model_1,model_2,model_3) mit der Methode.predict(). - Staple die Vorhersagen horizontal (
np.hstack()) zu einer Matrix und bilde anschließend die zeilenweisen Mittelwerte, um durchschnittliche Vorhersagen für Trainings‑ und Test‑Sets zu erhalten.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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:])