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

채용 | 알고리즘 | 정형 | 시계열 | LG Aimers | 수요 예측 | SFA

  • moneyIcon Prize : 본선 진출
  • 1,753명 마감

 

시계열 예측의 Data Leakage 규칙 관련 상세 설명

2023.08.01 08:16 3,285 Views

안녕하세요, LG Aimers 여러분!

AI 해커톤(경진대회)을 진행하다 보면, 가장 빈번하게 실격되는 이유 중 하나가 바로 Data Leakage입니다.

이로 인한 불이익을 받는 일이 없도록, Data Leakage의 개념과 사례에 대해 소개해 드리고자 합니다.


먼저 일반적인 Data Leakage(데이터 누수, 정보 누설)에 대한 개념은 [링크]에서 확인해볼 수 있습니다.

하지만 이번 해커톤의 경우에는 각 ID에 매핑되는 제품 특성 정보들을 기준으로 각가 '시계열 예측'을 수행해야하기 때문에,

일반적인 정형 데이터 예측 문제와 달리 시계열 예측 문제에 적용되는 Data Leakage 규칙에 중점적으로 설명드리고자 합니다.


이번 '온라인 채널 제품 판매량 예측 AI 온라인 해커톤'의 데이터의 경우,

Train 데이터의 기간이 22년 1월 1일 ~ 23년 4월 4일까지의 일별 판매량 데이터로 구성되어 있고,

Test 데이터의 기간이 23년 4월 5일 ~ 23년 4월 25일까지로, 향후 21일의 일별 판매량을 예측해야합니다.

즉, 향후 21일의 ID 별 일별 판매량을 예측하는 것이기 때문에 별도의 추론을 위한 Input 데이터인 test.csv 파일은 제공하지 않습니다. (추론에 필요한 정보는 train.csv에서 모두 활용할 수 있으며, 이해가 어려운 경우에는 Baseline 코드를 참고해주세요)


다음은 본 해커톤을 진행하면서 가장 중요한 Data Leakage 규칙에 대한 내용을 정리한 내용입니다.

  • 예측해야할 ID (ID에 매핑되는 제품 특성 정보)는 Train 데이터와 동일하다. (sample_submission.csv 참고)
  1. ID에 매핑되는 제품 특성 정보는 학습 데이터와 동일하기 때문에, 해당 정보는 제한 없이 활용 가능합니다.


  • Train 데이터의 기간 보다 '미래' 시점의 데이터는 학습에 활용할 수 없다. (본 해커톤에서는 Pseudo Labeling 포함)
  1. 예를 들어 23년 4월 5일부터의 어떠한 정보를 예측하고, 이를 다시 모델 학습에 사용하는 것은 불가능합니다. -> Pseudo Labeling으로 간주
  2. 단, 예측한 정보를 학습에 사용하지 않고 단순히 다음 예측을 위한 Input으로 사용하는 것은 가능합니다.
  3. 이 규칙은 train.csv 외에도 제공된 모든 메타 데이터(sales.csv, brand_keyword_cnt.csv 등)에도 동일하게 적용됩니다.


  • 이번 온라인 해커톤의 현재 시점은 '23년 4월 4일'로 가정한다.
  1. 즉 23년 4월 5일부터는 모두 미래의 정보로 간주하며, 23년 4월 4일 내에서 알 수 없는 정보 (도메인 Knowledge 포함)를 활용하는 경우에는 모두 Data Leakage에 해당합니다.
  2. 예를 들어, 23년 4월 9일에 만약 갑작스러운 전국 인터넷망 먹통이라는 사건이 일어났다면 이는 23년 4월 4일을 기준으로 전혀 알 수 없는 정보이기 때문에 해당 일에 전국 인터넷망이 먹통되었다 라는 정보를 미리 활용할 수 없습니다.
  3. 그러나 예를 들어, '23년 4월 16일이 일요일로 주말'이라는 점과' 23년 4월에는 주말을 제외한 공휴일이 존재하지 않는다'와 같은 정보는 23년 4월 4일 내에도 충분히 미리 알 수 있는 정보이므로 활용할 수 있습니다.



대회를 진행하면서 본인이 진행하는 방법이 Data Leakage에 해당하는지 햇갈리는 경우에는 꼭 사전에 데이콘에 문의하여 불이익을 받는 일이 없도록 부탁드리겠습니다.

데이콘은 앞으로도 투명하고 공정한 대회 운영을 위해 더욱 노력하겠습니다.

감사합니다.

로그인이 필요합니다
0 / 1000
류상연
2023.08.02 16:53

삭제된 댓글입니다

갓타야
2023.08.03 15:13

삭제된 댓글입니다

바이트케어
2023.08.12 15:13

삭제된 댓글입니다

DACON.GM
2023.08.07 12:36

모델 학습에 활용하지 않고, 다음 예측을 위한 Input으로 사용하는 것은 가능합니다.
감사합니다.

바이트케어
2023.08.07 13:27

감사합니다!

BrainAI_Dolphin
2023.08.12 19:54

Train 데이터의 기간 보다 '미래' 시점의 데이터는 학습에 활용할 수 없다. (본 해커톤에서는 Pseudo Labeling 포함)
예를 들어 23년 4월 5일부터의 어떠한 정보를 예측하고, 이를 다시 모델 학습에 사용하는 것은 불가능합니다. -> Pseudo Labeling으로 간주
----> 단, 예측한 정보를 학습에 사용하지 않고 단순히 다음 예측을 위한 Input으로 사용하는 것은 가능합니다.
이 규칙은 train.csv 외에도 제공된 모든 메타 데이터(sales.csv, brand_keyword_cnt.csv 등)에도 동일하게 적용됩니다.

--------------------------
위 화살표 내용에서 혹시 4월 5일 후의 어떤 데이터를 4월 4일치의 데이터와 동일하게 간주시키고, 이를 예측에 활용해도 되는지 궁금합니다!

DACON.GM
2023.08.16 08:40

안녕하세요 Yunhong님,
말씀해주신 내용 중, "4월 5일 후의 어떤 데이터를 4월 4일치의 데이터와 동일하게 간주시킨다"의 의미가 모호합니다.
4월 5일부터의 데이터는 해당 해커톤에서 미래로 간주됩니다.
말씀해주신 내용이 즉, 4월 5일부터의 데이터는 과거 데이터로 학습시킨 모델로부터 추론된 결과를 말씀해주신 것이고
이 추론된 결과로 다시 다음의 미래를 예측하기 위한 Input에 활용한다는 말씀이라면 안내드린 "단, 예측한 정보를 학습에 사용하지 않고 단순히 다음 예측을 위한 Input으로 사용하는 것은 가능합니다."와 동일한 방식이므로 가능합니다.
감사합니다.

Jonquille
2023.08.13 16:19

삭제된 댓글입니다

부도현
2023.08.17 21:06

예측해야할 ID (ID에 매핑되는 제품 특성 정보)는 Train 데이터와 동일하다. (sample_submission.csv 참고) 
ID에 매핑되는 제품 특성 정보는 학습 데이터와 동일하기 때문에, 해당 정보는 제한 없이 활용 가능합니다.
-----------------------------------------------------------------------------------------
Baseline 코드에서 test input을 생성하는 'make_predict_data' 함수를 보면 "Test 데이터는 ID 0부터 15889까지 '모든' ID들이 Train 데이터와 동일하게 '순서대로' 나열되어 있다"고 가정하는 것으로 판단됩니다. 
점선 위에 언급한 Data Leakage 규칙을 고려했을 때, Baseline 코드에서 사용한 가정을 그대로 사용하여 ID 0부터 15889까지 순서대로 inference해도 되는지 여쭤봐도 될까요? 아니면 'sample_submission.csv' 파일을 불러와 id열에 접근한 뒤, 해당 id 순서에 맞게 test input을 생성하고 inference를 진행해야 하는지 궁금합니다.

DACON.GM
2023.08.17 21:14

네. 가능합니다.

부도현
2023.08.17 22:28

감사합니다!