Прогнозування ціни активу
Тепер ви можете використати нейронну мережу, щоб передбачити ціну активу. Це важлива складова кількісного фінансового аналізу та управління ризиками.
Ви використаєте ціни акцій Citibank, Goldman Sachs та J. P. Morgan за 2005–2010 роки, щоб натренувати мережу прогнозувати ціну акцій Morgan Stanley.
Ви створите й натренуєте нейронну мережу з одним вхідним шаром, одним вихідним шаром і двома прихованими шарами.
Потім буде показано точкову діаграму, щоб оцінити, наскільки прогнозовані ціни Morgan Stanley відрізняються від фактичних за 2005–2010 роки. Нагадаємо: якщо прогнози ідеальні, отримана діаграма лежатиме на лінії під кутом 45 градусів.
Об'єкти Sequential і Dense доступні, як і датафрейм prices із цінами інвестиційних банків за 2005–2010 роки.
Ця вправа є частиною курсу
Кількісне управління ризиками в Python
Інструкції до вправи
- Задайте вхідні дані як усі
pricesбанків, окрім Morgan Stanley, а вихідні дані — лишеpricesMorgan Stanley. - Створіть нейронну мережу
Sequentialпід назвоюmodelіз двома прихованими шарамиDense: перший — на 16 нейронів (і трьома вхідними нейронами), другий — на 8 нейронів. - Додайте один вихідний шар Dense з 1 нейроном, який представлятиме ціну Morgan Stanley.
- Скомпілюйте нейронну мережу та натренуйте її, викликавши
model.fit().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()