시퀀스 생성하기
순차 데이터를 신경망으로 학습하려면 먼저 전처리가 필요해요. 연속된 여러 데이터 포인트를 입력으로 하고 다음 데이터 포인트를 타깃으로 하는 입력-타깃 쌍으로 데이터를 나눌 거예요.
여러분의 과제는 이를 수행하는 create_sequences() 함수를 정의하는 것입니다. 이 함수는 DataFrame df와 입력 길이 seq_length를 인자로 받습니다. 출력으로는 두 개의 NumPy 배열을 반환해야 하고, 하나는 입력 시퀀스, 다른 하나는 해당하는 타깃이에요.
참고로, DataFrame df는 다음과 같은 형태입니다:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
이 연습은 강의의 일부입니다
PyTorch로 배우는 Intermediate Deep Learning
연습 안내
- 데이터 포인트의 개수에서 입력 시퀀스 길이를 뺀 범위를 순회하세요.
- 입력
x는df의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)