НачатьНачать бесплатно

Прогнозирование цены актива

Теперь вы можете использовать нейронную сеть для прогнозирования цены актива — ключевого элемента количественного финансового анализа и управления рисками.

Вы воспользуетесь котировками акций Citibank, Goldman Sachs и J. P. Morgan за 2005–2010 годы, чтобы обучить сеть прогнозировать цену акций Morgan Stanley.

Вы создадите и обучите нейронную сеть с одним входным слоем, одним выходным слоем и двумя скрытыми слоями.

Затем будет построен точечный график, позволяющий оценить, насколько предсказанные цены акций Morgan Stanley отличаются от фактических за 2005–2010 годы. (Напомним: если прогнозы идеальны, точки на графике выстраиваются вдоль линии под углом 45 градусов.)

Объекты Sequential и Dense уже доступны, как и DataFrame prices с ценами инвестиционных банков за 2005–2010 годы.

Это упражнение является частью курса

Количественное управление рисками на Python

Посмотреть курс

Инструкции к упражнению

  • Задайте входные данные как все банковские prices кроме Morgan Stanley, а выходные данные — как prices только Morgan Stanley.
  • Создайте нейронную сеть model типа Sequential с двумя скрытыми слоями Dense: первый — с 16 нейронами (и тремя входными нейронами), второй — с 8 нейронами.
  • Добавьте один выходной слой Dense из 1 нейрона для представления цены акций Morgan Stanley.
  • Скомпилируйте нейронную сеть и обучите её, выполнив подгонку model.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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()
Редактировать и запускать код