始める無料で始める

資産価格の予測

ここでは、定量的な金融分析やリスク管理で重要となる「資産価格」を、Neural Network を使って予測します。

2005〜2010年の Citibank、Goldman Sachs、J. P. Morgan の株価を用いてネットワークを学習させ、Morgan Stanley の株価を予測します。

入力層1、出力層1、そして隠れ層を2層持つ Neural Network を作成・学習します。

その後、2005〜2010年における Morgan Stanley の「予測」株価が実際の値からどの程度ずれているかを確認するため、散布図を表示します。(予測が「完全」に当たっていれば、散布図の点は45度線上に並ぶことを思い出してください。)

SequentialDense オブジェクト、そして 2005〜2010年の投資銀行の価格が入った DataFrame prices が利用可能です。

この演習はコースの一部です

Pythonで学ぶ定量的リスク管理

コースを見る

演習の手順

  • 入力データは Morgan Stanley 以外のすべての銀行の prices、出力データは Morgan Stanley の prices のみになるように設定します。
  • Sequential な Neural Network model を作成し、Dense の隠れ層を2層追加します:最初の隠れ層は 16 ニューロン(入力ニューロンは 3)、2 番目の隠れ層は 8 ニューロンとします。
  • 出力として Morgan Stanley の価格を表す、ニューロン数 1 の Dense 出力層を追加します。
  • Neural Network をコンパイルし、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()
コードを編集して実行