ニューラルネットワークを用いた株価予測
今データマイニングの応用事例として興味があるのが株価予測。
ってなわけで早速過去10年分の日経平均の日足データをダウンロードして準備開始。
とりあえずニューラルネットワークを用いて日経平均終値の値動きを近似することで株価予測を行おうと思います。
まず考えるべきはニューラルネットワークの入力層にどんなデータを与えて出力層の値に何を出力するのかを決定しなければならないので、ここは単純に日経平均終値の60日分の株価を与えて翌日の株価を予測することを目標とします。
なのでここではニューラルネットワークの入力層:60個、出力層:1個、中間層:180個で株価の学習を行います。
早速予測といきたいのですがまずはニューラルネットワークの勉強もかねてPythonで実装してみました。
実際に学習させて予測してみます。
# coding: utf-8 import neuralnet if __name__ == "__main__": traindata = [[0, 0, 0, 0], [1, 0, 1, 0], [1, 1, 1, 1], [1, 1, 0, 0], [1, 0, 0, 1], [0, 0, 1, 1]] n = neuralnet.neuralnet(3,5,1) # 入力層:3 中間層:5 出力層:1 n.training(traindata, freq=10000) print n.forecast([0,0,0]) # 0 print n.forecast([1,0,1]) # 0 print n.forecast([1,0,0]) # 1 print n.forecast([0,0,1]) # 1 [0.07597171031986874] [0.14929027662516445] [0.9051366632412148] [0.8797484449845987]
ある程度正確に予測できているように思います。
今はwekaなどの優秀なフリーソフトがあるので全くの徒労でしたが疲れたので株価予測はまた今度。