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
Oefeninstructies
- Stel de
input_dimvan de eerste laag van het neuraal netwerk in op het aantal kolommen vanscaled_train_featuresmet de eigenschap.shape[1]. - Gebruik de aangepaste verliesfunctie
sign_penaltyom onzemodel_2te.compile(). - Plot het verlies uit de
historyvan de fit. De verlieswaarde staat onderhistory.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()