Aan de slagBegin gratis

Neuraal netwerk fitten met aangepaste verliesfunctie

Nu gaan we de aangepaste verliesfunctie gebruiken die we net hebben gemaakt. Daardoor kunnen we het gedrag van het model aanpassen op een manier die handig is voor ons probleem: het model probeert in elk geval de richting van de prijsbeweging goed te voorspellen. Het enige wat we nu hoeven te doen is het argument loss in onze .compile()-functie instellen op onze functienaam, sign_penalty. We bekijken opnieuw de trainingsverlies om te controleren of die is afgevlakt.

Deze oefening maakt deel uit van de cursus

Machine Learning voor finance in Python

Bekijk cursus

Oefeninstructies

  • Stel de input_dim van de eerste laag van het neuraal netwerk in op het aantal kolommen van scaled_train_features met de eigenschap .shape[1].
  • Gebruik de aangepaste verliesfunctie sign_penalty om onze model_2 te .compile().
  • Plot het verlies uit de history van de fit. De verlieswaarde staat onder history.history['loss'].

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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 bewerken en uitvoeren