楽しんで学習するITエンジニアの備忘録ブログ

~日常生活の中にも楽しみを見出したい~

【第4弾】LSTMで時系列分析に挑戦【昨日の自分よりも一歩でも前に】

LSTMで時系列データ分析に挑戦中。

 

 昨日の自分よりも、一歩半歩でも前にいきたい。

 

そんな思いから今日も手を動かしてみることにした。

 

時系列データは、「1949年1月から1960年12月 の国際線での乗客数」である。

 

f:id:takanarukodou2:20210629012031p:plain

 

■ ウィンドウサイズの変更

 ウィンドウサイズを大きくするということは、過去の情報をたくさん利用するので、

 精度が向上するのではないかと考えていたが、

 そのような効果が見られなかったので、3から2に戻してみることにする。

 どちらかと言えば、ウィンドウサイズが2の方が予測値と実測値が近い気がする。

 言い換えると、予測値は実測値との当てはまりが良さそうな感じがする。

 

 f:id:takanarukodou2:20210701004101p:plain

          (a)ウィンドウサイズが3

 

f:id:takanarukodou2:20210701212747p:plain

          (b)ウィンドウサイズが2

 

■推論処理の読解

 推論処理がpredict関数以外にも利用していたので、

 難しそうな印象を持っていたが思ったよりも簡単であった。

    for j in range(len(X_train)):
        _x = X_train[i].reshape(1,-1,1) 
     #-> (2,1)をウィンドウサイズ(1,2,1)に変換 
        prediction[i+1] = model.predict(_x)[0]
     #-> predict関数によって予測

  ※学習データのみの部分を抜粋

 numpy.vstack – 配列を垂直に連結 | HEADBOOST

f:id:takanarukodou2:20210703145441p:plain

  ※青線が正解、オレンジ線が予測値、緑線が正解と予測値の差分

  ※赤い点線の左側は学習データ、右側は検証データに対する処理

 

今回は、「1949年1月から1960年12月の国際線での乗客数」

であったが、別のデータにして理解を深めていきたい。

まったく別のデータを使ってある程度の精度を出すことを

次の目標にしたい。