Prognozowanie ceny aktywa
Teraz możesz użyć sieci neuronowej do prognozowania ceny aktywa – kluczowego elementu zarówno ilościowej analizy finansowej, jak i zarządzania ryzykiem.
Do trenowania sieci wykorzystasz ceny akcji Citibanku, Goldman Sachs i J. P. Morgana z lat 2005–2010, aby przewidzieć cenę akcji Morgan Stanley.
Stworzysz i wytresujesz sieć neuronową z jedną warstwą wejściową, jedną warstwą wyjściową i dwiema warstwami ukrytymi.
Następnie zostanie wyświetlony wykres punktowy, który pokaże, jak bardzo prognozowane ceny Morgan Stanley różnią się od wartości rzeczywistych w latach 2005–2010. (Przypomnij sobie, że jeśli prognozy są idealne, punkty na wykresie układają się wzdłuż linii pod kątem 45 stopni.)
Dostępne są obiekty Sequential i Dense, a także DataFrame prices z cenami banków inwestycyjnych z lat 2005–2010.
To ćwiczenie jest częścią kursu
Ilościowe zarządzanie ryzykiem w Pythonie
Instrukcje do ćwiczenia
- Ustaw dane wejściowe jako ceny
priceswszystkich banków z wyjątkiem Morgan Stanley, a dane wyjściowe jako cenypriceswyłącznie Morgan Stanley. - Utwórz sieć neuronową
modeltypuSequentialz dwiema ukrytymi warstwamiDense: pierwsza z 16 neuronami (i trzema neuronami wejściowymi), a druga z 8 neuronami. - Dodaj pojedynczą warstwę wyjściową
Densez 1 neuronem reprezentującym cenę akcji Morgan Stanley. - Skompiluj sieć neuronową i wytrenuj ją, dopasowując
model.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Set the input and output data
training_input = prices.____('Morgan Stanley', axis=1)
training_output = prices['Morgan Stanley']
# Create and train the neural network with two hidden layers
model = ____()
model.add(Dense(16, input_dim=____, activation='sigmoid'))
model.add(____(8, activation='relu'))
model.add(____(1))
model.____(loss='mean_squared_logarithmic_error', optimizer='rmsprop')
model.____(training_input, training_output, epochs=100)
# Scatter plot of the resulting model prediction
axis.scatter(training_output, model.predict(training_input)); plt.show()