シーケンスの生成
シーケンシャルデータでニューラルネットワークを学習させるには、まず前処理が必要です。連続した複数のデータポイントを入力、次のデータポイントをターゲットとする、入力-ターゲットの組にデータを分割します。
あなたのタスクは、これを行う関数 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)