开始使用免费开始使用

资产价格预测

现在,您可以使用神经网络来预测"资产价格"。这是量化金融分析及风险管理中的核心任务之一。

您将使用 2005-2010 年间 Citibank、Goldman Sachs 和 J. P. Morgan 的股票价格来训练网络,以预测 Morgan Stanley 的股价。

您将创建并训练一个包含 1 个输入层、1 个输出层和"2 个"隐藏层的神经网络。

随后会显示一个散点图,用于查看 2005-2010 年间 Morgan Stanley "预测"价格与其真实值的偏离程度。(回忆一下,如果预测"完全准确",散点图会落在图中的 45 度对角线上。)

SequentialDense 对象已可用,同时提供了包含 2005-2010 年投行价格的 prices DataFrame。

本练习是课程的一部分

Python 中的定量风险管理

查看课程

练习说明

  • 将输入数据设为除 Morgan Stanley 外的所有银行 prices,将输出数据设为仅包含 Morgan Stanley 的 prices
  • 创建一个名为 modelSequential 神经网络,并添加两个 Dense 隐藏层:第 1 层含 16 个神经元(且有 3 个"输入"神经元),第 2 层含 8 个神经元。
  • 添加一个包含 1 个神经元的 Dense 输出层,用于表示 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()
编辑并运行代码