開始使用免費開始

資產價格預測

現在你可以使用神經網路來預測「資產價格」。這是量化金融分析與風險管理中的重要任務。

你將使用 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
  • 建立一個 Sequential 神經網路 model,包含兩個 Dense 隱藏層:第一層有 16 個神經元(且有 3 個「輸入」神經元),第二層有 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()
編輯並執行程式碼