LoslegenKostenlos starten

Neuronales Netz mit benutzerdefinierter Verlustfunktion fitten

Jetzt verwenden wir die benutzerdefinierte Verlustfunktion, die wir gerade erstellt haben. Damit können wir das Verhalten des Modells auf nützliche Weise an unser Problem anpassen – es soll das Modell dazu bringen, zumindest die Bewegungsrichtung des Preises korrekt vorherzusagen. Alles, was wir jetzt tun müssen, ist, das Argument loss in unserer .compile()-Funktion auf unseren Funktionsnamen sign_penalty zu setzen. Wir schauen uns erneut den Trainingsverlust an, um sicherzustellen, dass er sich abgeflacht hat.

Diese Übung ist Teil des Kurses

<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Setze das input_dim der ersten Schicht des neuronalen Netzes auf die Anzahl der Spalten von scaled_train_features mit der Eigenschaft .shape[1].
  • Verwende die benutzerdefinierte Verlustfunktion sign_penalty, um unser model_2 mit .compile() zu kompilieren.
  • Zeichne den Verlust aus der history des Fits. Der Verlust steht unter history.history['loss'].

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create the model
model_2 = Sequential()
model_2.add(Dense(100, input_dim=____, activation='relu'))
model_2.add(Dense(20, activation='relu'))
model_2.add(Dense(1, activation='linear'))

# Fit the model with our custom 'sign_penalty' loss function
model_2.compile(optimizer='adam', loss=____)
history = model_2.fit(scaled_train_features, train_targets, epochs=25)
plt.plot(____)
plt.title('loss:' + str(round(history.history['loss'][-1], 6)))
plt.show()
Code bearbeiten und ausführen