始める無料で始める

シーケンスの生成

シーケンシャルデータでニューラルネットワークを学習させるには、まず前処理が必要です。連続した複数のデータポイントを入力、次のデータポイントをターゲットとする、入力-ターゲットの組にデータを分割します。

あなたのタスクは、これを行う関数 create_sequences() を定義することです。入力として、DataFrame に格納されたデータ df と、入力の長さを示す seq_length を受け取ります。出力としては、入力シーケンスを格納した NumPy 配列と、それに対応するターゲットを格納した NumPy 配列の2つを返してください。

参考として、DataFrame df の例を示します。

                 timestamp  consumption
0      2011-01-01 00:15:00    -0.704319
...                    ...          ...
140255 2015-01-01 00:00:00    -0.095751

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

PyTorchによる中級ディープラーニング

コースを見る

演習の手順

  • データポイント数から入力シーケンスの長さを引いた範囲で反復します。
  • 入力 x は、i 行目から i + seq_length 行目まで、かつ列インデックス 1 のスライスとして定義します。
  • ターゲット y は、行インデックス i + seq_length、列インデックス 1 の要素として定義します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

import numpy as np

def create_sequences(df, seq_length):
    xs, ys = [], []
    # Iterate over data indices
    for i in range(____):
      	# Define inputs
        x = df.iloc[____, ____]
        # Define target
        y = df.iloc[____, ____]
        xs.append(x)
        ys.append(y)
    return np.array(xs), np.array(ys)
コードを編集して実行