온라인 채널 제품 판매량 예측 AI 온라인 해커톤

make_train_data 관련 질문.

2023.08.02 11:19 1,863 Views

안녕하세요.

시계열 예측 문제는 처음이라 데이터 준비 단계에서 궁금증이 생겼습니당..ㅠ ㅎㅎ


```python

  input_data = np.empty((num_rows * (len(data.columns) - window_size + 1), train_size, len(data.iloc[0, :4]) + 1))

  target_data = np.empty((num_rows * (len(data.columns) - window_size + 1), predict_size))

```


make_train_data에서 input_data의 shape을 형성할때 위 코드와 같이 형성합니다.

하지만 제가 궁금한 점은.. `num_rows * (len(data.columns) - window_size + 1)` 왜 이렇게 윈도우 갯수를 설정하는지 의문입니다.

각 피쳐는 공통으로 들어가니, 윈도우 갯수를 설정하려면. 판매량 데이터에 대해서만 윈도우를 슬라이딩 해야하는 것이 아닌가 싶습니다.

예를들면 이런식이 아닐까 싶은거죠..


```python

  input_data = np.empty((num_rows * (len(data.columns) - 4 - window_size + 1), train_size, len(data.iloc[0, :4]) + 1))

  target_data = np.empty((num_rows * (len(data.columns) - 4 - window_size + 1), predict_size))

```


공통적인 대분류, 중분류, 소분류, 브랜드는 제외하고 해야하는게 아닌가 궁금합니다.

제가 너무 당연한 것을 모르고 질문한 것일수도 있겠지만 ㅠㅠ 도움을 요청드려용!

로그인이 필요합니다
0 / 1000
비회원
2023.08.03 14:35

보통은 시계열 데이터가 세로로 되어있는데 본 데이터는 가로로 되어 있더라고요
자세히 보시면 작성자 분 말대로 대분류, 중분류, 소분류, 브랜드는 제외하고 윈도우 되어있는거로 알고 있습니다.

안녕해요
2023.08.03 15:01

초코도넛님의 생각대로 대분류, 중분류, 소분류, 브랜드는 제외하고 데이터 처리를 해주는 것이 맞습니다.
459일을 111일씩 끊으면 ID 하나당  459-111+1 = 349개의 데이터가 나오는데 현재 코드상에서는 463-111+1=353개의 사이즈로 input_data가 나오게 됩니다.
따라서 (15,890 * 353, 90, num_features)로 구성된 input_data size에서 (15,890 * 349, 90, num_features)만 사용하게 되어 (15,890*4, 90, num_features)는 empty한 데이터가 됩니다.