Sequence Data - preparing features and labels

wonro PARK
Dec 15, 2020

--

이번 포스팅에서는 Sequence Data를 Tensorflow를 활용하여 데이터를 준비하는 과정을 다루려고 한다.

fig.1와 같이 우리는 0~9로 구성된 간단한 시계열 데이터 tensorflow를 활용해 쉽게 생성할 수 있다.

fig.1 0~9 Sequence Data

fig.2를 코드는size가 5인 window를 가지고 한 칸씩 이동하면서 시계열 데이터를 보여주는 코드이다.

fig.2 window code

fig.3은 fig.2 코드에 대한 출력 결과 값으로 보시다시피 window를 통해 보는 데이터가 뒤로 갈 수록 적은 데이터를 가짐을 확인할 수 있다.

fig.3 window result

drop_remainder 파라미터를 추가를 함으로 써 우리는 window size에 맞는 데이터들만 남겨두고 나머지는 제거할 수 있다.

fig.4 drop_remainder = True
fig.5 drop_remainder result

window로 본 데이터들을 numpy로 변환을 시키기 위해서는 fig.6와 같이 flat_map과 numpy()로 쉽게 numpy로 변환이 가능하다.

fig.6 window to numpy
fig.7. 1

fig. 7.1과 같이 window의 마지막 값을 label로 둔다면 우리는 학습시킬 데이터x와 분리를 시켜줘야하고 fig.7. 2과 같이 작성하면 된다.

fig.7. 2 label 분리 및 shuffle

dataset.batch를 이용하면 fig.8과 같이 2개의 sequences 데이터를 하나로 묶어서 볼 수도 있다.

fig.8 dataset.batch

지금까지 기술한 내용들을 종합하여 하나의 함수로 나타내면 fig.9와 같이 나타낼 수 있다.

fig.9 windowed_dataset

--

--