제주도 도로 교통량 예측 AI 경진대회

알고리즘 | 정형 | 교통 | 회귀 | MAE

  • moneyIcon 상금 : 500만원
  • 2,176명 마감

 

DAKER! 대회 관련 문의

2022.09.01 17:22 4,953 조회

안녕하세요. 참가자 여러분 대회 관련 자주 묻는 질문들을 모았습니다.

그 외 대회 관련 궁금하신 부분은 댓글로 남겨주세요. 즐거운 코딩 되세요.🧑‍💻🧑‍💻


[팀 구성]

Q) 팀 구성 기간이 지났는데 추가로 등록 가능한가요?

  • 팀 구성 기간 이후에는 팀을 구성할 수 없습니다.

Q) 팀 원 초대는 어떻게 하나요?

  • 대회 페이지의 팀 탭에서 팀원을 초대할 수 있습니다. 닉네임, 이메일, 팀 이름을 통해 팀원을 초대하고 해당 팀원이 팀 탭에서 초대를 수락하면 팀이 구성됩니다.

Q) 최초 1회 제출의 의미가 무엇인가요?

  • 팀 구성을 하기 위해서는 대회 제출 탭에서 적어도 1회 제출을 해야 합니다.

Q) 팀 구성이 안돼요

  • 팀 구성은 팀 구성 기간 내에 팀원을 초대해 진행할 수 있습니다. 팀 구성 기간과 팀원 초대 방법을 대회 팀 탭에서 확인해 주세요.

Q) 팀 탈퇴 후 재구성하고 싶은데 방법이 있나요?

  • 아이디어 공유 방지를 위해 팀 탈퇴 후 재구성은 불가능합니다.



[제출 파일]

Q) 최종 파일은 어떤 걸 제출하면 되나요?

  • private 채점 결과가 가장 좋을 것으로 예상되는 파일을 선택하여 제출하시면 됩니다.

Q) 최종 파일 제출 방식은 어떻게 되나요?

  • 해당 대회 페이지에서 제출 메뉴를 통해 진행할 수 있습니다. 제출할 파일을 선택 후 제출 버튼을 클릭하면 제출이 진행됩니다.

Q) Baseline 코드에서 쓴 라이브러리만 사용해야 하나요?

  • 베이스라인은 참고 용 자료이며 참가자분들만의 코드를 작성해 주시면 됩니다.

Q) 제출 결과물을 삭제하고 싶어요

  • 제출 결과물을 개별 삭제하는 것은 불가능합니다.

Q) 대회 종료 후에도 결과물 제출이 가능한가요?

  • 연습이 가능한 대회는 제출이 가능합니다.

Q) 제출 파일 점수 확인은 어떻게 하나요?

  • 최고 점수는 리더보드에 표시되며 각 파일의 점수는 제출 탭에서 확인하실 수 있습니다.

Q) 최종 파일 선택 개수는 몇개 인가요?

  • 최종 파일 선택 개수는 대회 규칙에서 확인해 주시기 바랍니다.

Q) csv파일 제출 시 에러가 발생합니다.

  • 제공된 sample_submission.csv 파일과 제출 파일의 행, 열 의 크기가 동일해야 하며, 만약 해당 부분이 일치하지 않을 경우 에러가 발생할 수 있습니다.



[리더보드 점수]

Q) 리더보드에서 점수가 삭제된 이유가 뭔가요?

  • 대회 규정 위반이 의심되는 경우 치팅 처리되어 점수가 삭제됩니다. 점수 복구를 위해서는 코드를 제출하여 검증을 받아야 합니다.

Q) 리더보드 업데이트 시간이 어떻게 되나요?

  • Public Score는 실시간으로 최고 점수로 업데이트되며, Private Score는 대회 종료 후 점수 계산에 오류가 없으면 공개됩니다.

Q) 동점인 경우 어떻게 하나요?

  • 동점의 경우 해당 점수를 먼저 기록한 팀이 높은 순위에 위치하게 됩니다.

Q) 리더보드 점수에 문제가 있는 것 같습니다.

  • 리더보드 점수에 이상이 있다고 여겨지는 경우 데이콘 계정의 메일로 해당 제출물을 설명과 함께 전달해 주시면 확인하여 답변드립니다.

Q) Private점수 확인 가능한가요?

  • 최종 선택한 파일 이외의 제출물에 대해서는 따로 Private Score를 계산하지 않습니다. 다만, 대회 종료 이후 연습 기간에는 정답 파일을 제출하면 제출 탭에서 Private Score를 확인하실 수 있습니다.

Q) Private, Public 차이가 뭔가요?

  • Test Data를 특정한 비율로 나누어 Private Score와 Public Score를 계산합니다. Public Score는 대회 기간 중에 리더보드에서 확인가능합니다. Private Score는 대회 종료 후 리더보드에서 확인 가능하며 Private Score를 통해 최종 순위가 결정됩니다.



[2차 평가]

Q) 발표 자료에 어떤 내용이 포함되어야하나요?

  • 발표 자료 내용은 평가 지표를 바탕으로 중요하다고 여겨지는 내용을 위주로 담아주시면 됩니다.

Q) 발표 일정은 어떻게 되나요?

  • 발표 일정은 대회 일정 페이지에서 확인하실 수 있으며, 변경사항이 있을 경우 따로 공지와 안내를 해드립니다.



[코드공유]

Q) 코드공유 시 외부 데이터 제출 어디에 해야 하나요?

  • 코드 공유 시 외부 데이터는 구글 드라이브에 업로드 하여 다운로드 링크를 코드 공유 게시글에 포함시켜 주시면 됩니다.

Q) 코드공유에 포함되어야 하는 내용은 어떤 것이 있나요?

  • 코드 공유 시 제출하신 코드를 작동시켜 최종 제출 파일과 동일한 파일이 생성될 수 있는 코드를 제출해 주시면 됩니다.



[규정]

Q) 코드 검증 과정에서 규정 위반이란 어떤 것 인가요?

  • test 데이터를 모델 학습 시 활용하거나, 허가되지 않은 외부 데이터 및 사전 학습 모델 사용 시 규정 위반 처리될 수 있습니다.

Q) GPU로 인해 결과물 재현이 되지 않아도 괜찮나요?

  • 최종 제출 점수 재현이 100% 일치하지 않더라도, 순위가 변경되지 않을 수준의 차이는 감안하여 수상자를 결정하게 됩니다.

Q) 어떤 경우가 Data leakage에 해당되나요?

  • pd.get_dummies() 함수를 test 데이터 셋 사용
  • label encoding, one-hot encoding 시 test 데이터 셋 활용
  • data scaling 적용 시 test 데이터 셋 활용
  • test 데이터 셋의 결측치 처리 시 test 데이터 셋의 통계 값 활용
  • 위 예시 외에도 test 데이터 셋이 모델 학습에 활용되는 경우에 Data leakage에 해당됨.


로그인이 필요합니다
0 / 1000
룬성
2022.10.04 14:12

수상시 제주도 여비는 제공되는지 궁금합니다

DACONIO
2022.10.04 18:34

안녕하세요, 룬성님! 시상식 참가 여비는 지급될 예정입니다. 감사합니다.

호저비
2022.10.06 14:35

삭제된 댓글입니다

DACONIO
2022.10.06 11:06

안녕하세요. K-로켓단님
one-hot encoding 혹은 pd.get_dummies()를 사용하는 것은 Data leakage에 해당됩니다. 베이스라인 코드에서  label encoding은 train dataset으로 fit 했기에 Data leakage에 해당하지 않습니다.  또한 외부 데이터는 어디에 붙이던 상관은 없지만 test dataset에 해당하는 기간에 대한 데이터는 사용 불가합니다.

감사합니다.

호저비
2022.10.06 11:27

근데 요일의 경우 과거, 현재, 미래에 항상 7개만 존재하잖아요. 때문에 미래를 뜻하는 test 데이터셋에도 요일을 더미화하는 건 괜찮다고 생각하는데, 그래도 여전히 엄격하게 안 된다는 말씀이시죠?

DACONIO
2022.10.06 11:58

 test dataset에 모든 요일이 포함되어 있다는 test dataset의 정보를 알고 있다는 것이기에 Data leakage에 해당하며,  test dataset에는 월-일이 모두 존재하지 않을 수 있습니다. 따라서 규칙에 준수하여 대회를 진행해주시면 됩니다. 

감사합니다. 

Zeus
2022.10.07 17:50

수상시 여비는 팀장한테 제공됩니다라고 적혀있는데 팀원 여비는 지원이 안되는건가요?

DACONIO
2022.10.07 17:53

안녕하세요, Zeus님! 시상식 참가 여비는 팀장에게만 지급되며, 팀원의 여비는 지급되지 않습니다.

samkim
2022.10.08 14:56

1) '도로사용여부' 컬럼 관련해 문의사항이 있습니다. 해당 컬럼의 의미가 '차량통행여부'로 알고 있는데, 0이라는 의미는 차가 다닐 수 없는 도로라는 의미인가요? 데이터에서 몇몇 구간을 뽑아 해당 노선의 로드뷰를 살펴보면 차가 다닐 수 있는 것으로 보이는데 '도로사용여부'가 무슨 의미인지 상세 정보 부탁드립니다.
2) 아울러 위 내용대로 해당 컬럼의 의미가 '차가 다닐 수 있는지 여부'가 맞다면, 본 데이터에서 '차량 평균 속도'가 어떻게 측정될 수 있는 것인지 궁금합니다. 원래 차가 지나갈 수 없는 도로인데도 차량이 이동했다는 의미인가요?

DACONIO
2022.10.12 11:47

안녕하세요 samkim님.
주최측의 데이터 수집과정 오류로 본 경진대회에서 "도로사용여부" 변수는 제외됨을 알려드립니다. 

추가적인 사항은 다음 링크에서 참고해 주시기 바랍니다.
https://dacon.io/competitions/official/235985/talkboard/407092?page=1&dtype=recent

감사합니다.

zerofire
2022.10.08 18:23

트레인 셋을 기준으로 집계한 내용을 그대로 테스트 셋에 적용하는 경우에도 data leakage일까요??
data leakage는 테스트 셋의 데이터를 트레인 셋으로 가져오는 경우에만 해당하는지도 궁금합니다.

DACONIO
2022.10.11 12:15

Train의 통계량을 활용하는 것은 data leakage에 해당하지 않습니다. 

추가적으로 data leakage 해당 사항은 아래와 같습니다. 
-pd.get_dummies() 함수를 test 데이터 셋 사용
-label encoding, one-hot encoding 시 test 데이터 셋 활용
-data scaling 적용 시 test 데이터 셋 활용
-test 데이터 셋의 결측치 처리 시 test 데이터 셋의 통계 값 활용
-test 데이터 셋이 모델 학습에 활용
-예시 이외에 평가 데이터셋(Test Dataset)의 Row의 개수 혹은 Index (그 밖의 Test Dataset에 대한 정보)를 활용하는 경우는 Data Leakage에 해당됩니다.
* 일반적으로 Test Dataset은 '아예 볼 수 없다' 라고 가정하고 진행해야하며 코드 역시 이를 반영해야합니다. * 

엘론머스크제자
2022.10.08 20:34

base_date 변수를 바탕으로 month를 추출해서 test 데이터에 계절 변수를 만드는건 data leakage에 해당되나요?

DACONIO
2022.10.11 12:20

month를 추출 과정에서 다른 row의 영향을 주지 않는다면 data leakage에 해당하지 않습니다. 

Bing
2022.10.10 15:39

base_date를 이용하여 base_hour 고려 안하는 상태로 해당일에 해당하는 파생변수를 만드는것은 data leakage에 해당하나요?

DACONIO
2022.10.11 12:21

파생변수를 만드는 과정에서 해당 row의 정보만을 활용하고, 다른 row의 정보를 활용하는 것이 아니라면 data leakage에 해당하지 않습니다. 

김지훈
2022.10.11 15:24

혹시 python의 pycaret을 쓰는 부분이 data leakage에 해당 될 수 있을까요?

DACONIO
2022.10.12 08:28

pycaret을 규칙에 맞게 사용하는 것은 data leakage에 해당하지 않습니다. 

김지훈
2022.10.12 13:51

예를 들어 pycaret에 있는 catboost 내에서 one hot encoding을 해주는 절차가 있다고 알고 있는데 이건 data leakage에 해당 안된다는 말씀이신가요?

DACONIO
2022.10.12 14:10

안녕하세요  jhhhh0님.

모델 내에서 이루어지는 처리는 data leakage에 해당하지 않습니다. 

감사합니다.

김지훈
2022.10.12 23:38

감사합니다~~

비회원
2022.10.11 19:29

도로사용여부가 0과 1로 이루어져 있는데 0이 도로를 사용할 수 있고, 1이 도로를 사용할 수 없다는 뜻인가요?

DACONIO
2022.10.12 11:47

안녕하세요 주식하는대학생님.
주최측의 데이터 수집과정 오류로 본 경진대회에서 "도로사용여부" 변수는 제외됨을 알려드립니다. 

추가적인 사항은 다음 링크에서 참고해 주시기 바랍니다.
https://dacon.io/competitions/official/235985/talkboard/407092?page=1&dtype=recent

감사합니다.

MMANDOOO
2022.10.12 11:46

삭제된 댓글입니다

DACONIO
2022.10.12 08:30

위 1, 2번에 대해서는 해당 row의 정보만을 활용하고, 다른 row의 정보를 활용하는 것이 아니라면 data leakage에 해당하지 않습니다. 또한 pd.get_dummies를 이용한 인코딩은 data leakage에 해당합니다. 

MMANDOOO
2022.10.12 10:35

해당 로우의 정보만을 활용한다는 것이 이해가 잘 가지 않는데
훈련 데이터에서 특정 열(범주형)을 기준으로 그룹화하여 다른 열(숫자형)의 값을 평균으로 낸 것을 데이터 프레임으로 따로 만든 뒤
이 데이터 프레임을 테스트 데이터에 레프트 조인(기준은 훈련 데이터에서 그룹화 기준이 된 변수) 하는 것은 괜찮을까요?

DACON.GM
2022.10.12 10:44

처음의 답변 내용은 각각 독립적인 1개의 row(행)의 데이터에 대해서 파생 변수를 생성하는 방법은 Train/Test 모두 가능하다는 설명입니다.
말씀해주신 내용의 방법은 Train Dataset의 정보만 활용한 추가 Feature를 생성하여 Test Dataset에 붙이는 형식으로 이해되는데, 해당 방법은 가능합니다. (Test Dataset의 통계 정보가 아닌 Train Dataset의 통계 정보만을 활용하기 때문)
감사합니다.

MMANDOOO
2022.10.12 12:06

테스트 데이터의 '회전제한 여부' 범주형 변수를 replace로 숫자형으로 바꾸는 것은 data leakage에 해당할까요?
여부라하면 당연히 두 값(있다, 없다)가 존재 하는 것이라 data leakage에 해당하는 것인지 문의드립니다. 

DACONIO
2022.10.12 12:29

안녕하세요. MMANDOOO님
test dataset의 '회전제한 여부' 변수를 replace 함수를 통해 전처리하는 것은 data leakage에 해당합니다.
test datset의 '회전제한 여부' 변수의 입력값이 (있다, 없다)만 존재한다는 것은 알 수 없는 정보입니다. 

train dataset에서는 있다, 없다 두 가지만 있더라도, test dataset에서는 그 이외에 입력값이 있을 지 없을 지는 모르는 정보입니다. 

감사합니다.   

MMANDOOO
2022.10.12 12:42

그럼 훈련 데이터에서 추출한 데이터 프레임을 테스트 데이터에서 같은 열을 기준으로 병합하는 것은 data leakage에 해당할까요?
train데이터에 존재하는 열이 test데이터에도 존재한다는 것은 알 수 없고, 
아니면 병합의 기준 열이 되는 열의 범주값들이 test데이터에 존재한다는 것은 알 수 없는 정보이므로 data leakage에 해당하는 것인가요..ㅜㅜ?

DACONIO
2022.10.12 14:02

예외 처리 없이 같은 열을 기준으로 병합하는 것은 train과 test의 입력값이 같다고 가정하는 것이기에 data leakage에 해당합니다.

MMANDOOO
2022.10.12 14:46

0. 예외처리라 함은 그러면 같은 열을 기준으로 병합하였을때, 해당 열의 특정 값이  train에는 있고 test에는 없을 경우 이 로 인해 생긴 결측치를 따로 처리한다면 괜찮다는 것일까요...?
1. 아님 테스트 데이터 내에서만 특정 변수의 범주별 집계를 통해 새로운 변수를 추가하는 것은 괜찮을까요?
2. 훈련데이터와 테스트 데이터의 독립변수들이 동일한지도 모르는 것인가요.?(예를들어 훈련데이터에 '날짜'컬럼이 있더라도 테스트 데이터에 동일한 '날짜'컬럼 자체가 존재하는지는 모른다..)

3. 그리고 테스트 데이터의 a컬럼과 b컬럼을 더한 새로운 c컬럼을 생성하는 것도 가능한지 여쭤봅니다ㅜㅜ
4. train데이터에서 fit한 encoder를 가지고 test 데이터에 transform만 하는 것은 가능한가요..?

DACONIO
2022.10.12 14:58

먼저 test dataset의 변수는 알 수 있습니다. 

두번째로 test 데이터 내에서 특정 변수의 범주별 집계를 통해 새로운 변수를 추가하는 것은 test 데이터의 통계량을 사용하는 것이기에 data leakage에 해당합니다.
 
마지막으로 한 행에 대해서 a컬럼과 b컬럼을 더해 c컬럼을 생성하는 것은 가능합니다. 예를 들어, 1번째 인덱스의 a컬럼과 b컬럼을 더해 c컬럼을 생성하는 것은 가능하나 특정 인덱스의 컬럼과 다른 인덱스의 컬럼을 매칭하는 것은 data leakage에 해당합니다. 

MMANDOOO
2022.10.12 15:04

삭제된 댓글입니다

DACONIO
2022.10.12 15:07

예를 들어, test 데이터의 첫번째 데이터의 컬럼과 두번째 데이터의 컬럼을 사칙연산 , 집계 혹은 다른 특정 방법으로 매칭하여 파생변수를 생성하는 것에 대한 얘기입니다. 또한 이 사례는 data leakage에 해당합니다. 

해시공
2022.10.12 12:46

안녕하세요,
혹시 2022년 8월 이전의 공공 데이터를 Test Set에도 사용하는 것은 data leakage에 해당하는 지 여쭤보고 싶습니다.
감사합니다.

DACONIO
2022.10.12 14:04

안녕하세요 해시공님.

2022년 8월 이전의 공공 데이터의 정보를 그대로 적용하는 것이라면, data leakage에 해당하지 않습니다. 

감사합니다.

해시공
2022.10.12 15:25

그리고 혹시, 위에도 data leakage에 대한 답글을 계속 달아주고 계셔서 죄송하지만, 
(1) 제가 공공 데이터를 Test set에 추가해야 할 때 해당 날짜에 맞는 인덱스에 추가를 해줘야 하는데, Testset에 해당 날짜에 맞는 값에 맞게 공공데이터를 추가해줘야 한다면 Test Leakage에 해당하는건가요?
(2) 만약 위/경도 간의 거리를 계산한 값을 새로운 컬럼으로 추가해줘야 한다면 Test 셋에서도  동일하게 계산하여 추가해주어야 하는데 이때도 data leakage에 해당하는건가요? 거리 계산 값은 동일한 row에서 계산한 것입니다.

DACONIO
2022.10.12 15:36

 해시공님.  

Test dataset에 해당 날짜에 맞는 값에 맞게 공공데이터를 추가해주는 방법에 따라 다르겠지만 test dataset의 특정 날짜를 활용하는 것은 data leakage에 해당되며 test dataset의 개수를 인지한 상태에서 추가하는 것도 data leakage에 해당합니다. 

또한 단순한 연산으로 거리를 계산하는 것이라면 data leakage에 해당하지 않습니다. 

감사합니다. 

Suno
2022.10.12 14:58

안녕하세요.
대회 마감 후에도 계속해서 모델을 평가하고 개선하고 싶은데 이것이 가능할까요?
Q&A에는 아래처럼 나와있더라구요.

[제출 파일]
Q) 대회 종료 후에도 결과물 제출이 가능한가요?
연습이 가능한 대회는 제출이 가능합니다.

이 대회도 연습이 가능한 대회인가요?
혹시 불가능하다면, 주최측에서 test set 정답을 공개해주면 자체적으로 평가할 수 있을텐데 공개되는지도 궁금합니다.

DACONIO
2022.10.12 15:02

안녕하세요 Suno님
 
본 경진대회는 연습이 가능한 대회입니다. 또한 test set 정답은 공개되지 않습니다. 

감사합니다. 

강가
2022.10.12 21:50

안녕하세요.
data_info 파일이 무슨 짓을 해도 UnicodeDecodeError가 발생해서 
인코딩 방식을 확인해보니 다른 파일은 'utf-8'로 확인되는데
해당 파일만 'unknown-8bit'로 확인되서 인코딩 방식이 어떻게 되는지 문의 남깁니다.

DACONIO
2022.10.13 09:03

안녕하세요 강가님.

작일 주최측의 데이터 오류로 재배포 과정에서 data_info 파일이 달라진 것 같습니다. 
다시 data_info 파일만 다시 수정했습니다.

감사합니다. 

콜라
2022.10.14 08:53

삭제된 댓글입니다

DACONIO
2022.10.14 08:47

안녕하세요 콜라님.

1. test dataset보다 이전 시점에 공시가 되어있는 정보를 활용하는 것은 data leakage에 해당하지 않습니다. 
2. 어떤 방법을 사용하느냐에 따라 다르지만 test dataset의 회전제한 여부에 대한 입력값을 모른다는 전제로 전처리한다면 data leakage에 해당하지 않습니다. 

감사합니다.

junduck2
2022.10.13 19:40

회귀 모델이 결과를 출력하는 데 걸리는 소요 시간도 제한이 있는 지 알고 싶습니다!

DACONIO
2022.10.14 08:49

안녕하세요 Datahj님.

모델 구동 시간에 대한 제한은 없습니다.

감사합니다. 

pumn
2022.10.14 16:51

8월의 단순한 '날짜 정보'를 이용하여 파생변수를 만드는 것도 data leakage에 해당하는지 궁금합니다.

1. 예를 들어, '휴일' 이라는 파생변수를 만들 때 8월 15일이 광복절 이라는 사실로 8월 15일이 휴일이라고 하게 된다면 data leakage 인가요??

2. 1번이 가능하다면, '연휴' 의 일수를 세는 것이 가능한지 여쭙고 싶습니다.
예를 들어, 8/15 (월요일)로 인해 8/13(토), 8/14(일), 8/15(월) 3일 연속인 연휴가 되었다면, 
base_date가 8/13, 14, 15 인 row들에 대해 column '연휴'의 값을 3 이라고 하게 된다면 data leakage 인가요??

DACONIO
2022.10.17 08:29

안녕하세요 pumn님

날짜를 활용함에 있어서 test dataset의 시점 이전에도 알 수 있는 정보라면, data leakage에 해당하지 않습니다. 
즉, 휴일과 연휴는 미래 시점 이전에도 알 수 있기에 사용 가능합니다.

감사합니다.

엘론머스크제자
2022.10.15 15:42

혹시 target인 평균속도가 어떤식으로 측정되었는지 알 수 있을까요?

연혁주
2022.10.17 17:48

maximum_speed_limit 보다 target인 평균 속도가 높은 경우가 있던데,  오류가 없는 건가요?  해당 데이터가 오류가 없다면, 엘론머스크제자님의 말처럼 어떤식으로 측정되었는지 궁금합니다. 

짱이언니
2022.10.18 13:17

train에서 target을 사용하여 파생변수를 만들어도 될까요? 

DACONIO
2022.10.19 08:51

안녕하세요 짱이언니님.

해당대회는 독립변수(X)를 가지고 종속변수(Y)를 예측하는 것이기에 target(Y)로 파생변수를 만들 수 없습니다. 

감사합니다.

중요한건꺾이지않는마음
2022.10.19 18:40

학습이나 추론하려는 이전 시점의 target값도 변수로 사용하지 못 하나요?

DACONIO
2022.10.20 09:37

안녕하세요 Liebestraume님.

해당 대회의 데이터가 시계열 데이터라고 언급하지 않았습니다. 즉 test dataset은 시간 순서로 나열 됐는지에 대한 여부는 알 수 없는 사실입니다.
따라서 이전 시점의 target값을 변수로 사용하는 것은 Data Leakage에 해당합니다. 

감사합니다. 

제출수늘려주세요
2022.10.21 14:27

모델 앙상블 기법중 stacking 모델은 test 1차 예측 -> 다음 모델에 test의 feature와 1차예측의 target값을 feature로 두고 predict를 진행하는데 이 기법은 data leackage 인가요 ? 만약 data leakage가 맞다면 그동안 다른 대회에서 pycaret을 이용한 분들 중 stacking 기법을 쓴분들이 많은데 그동안 처리를 어떻게 진행한지 궁금합니다.

DACON.GM
2022.10.21 14:40

안녕하세요 제출수늘려주세요님,
stacking 앙상블은 정상적으로 진행했다면 Data Leakage에 해당하지 않습니다.
Train data에 대한 예측 결과들을 활용하여 만들어진 메타 데이터셋으로 메타 모델을 학습시킨 후, Test data에 대해서는 Train data로부터 훈련된 메타 모델을 통해 최종 예측만 수행하기 때문에 Data Leakage에 해당하지 않습니다.
그러나 메타 모델을 학습하는 과정에서 Test data에 대한 추론 결과를 메타 데이터셋에 활용 혹은 포함하여 학습하는 것은 Data Leakage입니다.
감사합니다.

제출수늘려주세요
2022.10.21 14:38

train 과정에서만 test가 안쓰이면 dataleakage가 아니군요 빠른답변감사합니다 ^^

yongyong030
2022.10.22 18:30

1. test data 에서 latitude, longitude 데이터로 kmeans 클러스터링하고 longitude 평균값이 큰 순서대로 정렬한 뒤 인코딩 하는 것은 Data Leakage 인가요? train data에서도 동일하게 수행되지만 처리 과정 자체는 서로 독립적이라고 생각합니다.
2. 모든 날짜에 해당하는 날씨 데이터가 있을 때 train data의 base_date 에 해당하는 날씨를 추가하여 인코딩 한 뒤 test data에는 train data와 공통으로 존재하는 날짜에 매칭시켜 인코딩하는 것은 data leakage 인가요? 

DACONIO
2022.10.24 08:40

1. 클러스터링을 test dataset으로 fit 하는 경우 Data Leakage에 해당합니다. 
2. 날씨 데이터를 사용한다면, 예보 데이터 같은 이전 시점에 알 수 있는 데이터를 사용하지 않는다면 Data Leakage에 해당합니다.

hector21
2022.10.23 15:34

삭제된 댓글입니다

마그보컬
2022.10.27 16:19

train set의 시작, 종료 위경도를 기준으로 구간별 평균속도 변수를 만들고자 합니다.  해당 과정에서 train set의 target 값이 이용됩니다. 이후 test set예측시에는 같은 위경도를 가진 도로에 train set을 바탕으로 만들어낸 변수를 추가하고자 하는데 Data Leakage에 해당하나요? 물론 시작, 종료 위경도가 다른 row도 있다 가정하고 예외 처리는 진행할 예정입니다.

DACONIO
2022.10.27 17:09

안녕하세요, 마그보컬님.

먼저 해당 아이디어는 Data Leakage 문제를 벗어나서 논리적으로 오류가 있습니다.
그 이유로는 시계열이 아닌 일반적인 지도 학습 문제를 푸는 데 있어서 독립변수 X로 종속변수 Y를 학습하고 추론하는 것이 기본입니다. 
다만 마그보컬님의 아이디어는 Target 값에서 파생된 값으로 Target을 학습하고 추론하는 것이기에 논리적 오류가 있는 것입니다. 

감사합니다. 

콜라
2022.10.27 17:04

안녕하세요! 질문이 있습니다.

요일 별로 구분할 수 있는 컬럼을 추가하려고 합니다. 단순히 요일을 구분하는 것 뿐만 아니라
요일 내에서 평균 속도를 고려하여 각기 다른 가중치를 부여하고자 합니다.
train에 있는 target을 직접적으로 사용하지 않고 train의 요일별 target 통계치를 확인 하고서
가중치를 부여하면 이것도 data leakage에 해당하나요?

DACONIO
2022.10.27 17:13

안녕하세요, 콜라님.

먼저 해당 아이디어는 위 질문과 비슷한 맥락입니다. 

시계열이 아닌 일반적인 지도 학습 문제를 푸는 데 있어서 독립변수 X로 종속변수 Y를 학습하고 추론하는 것이 기본입니다. 
다만 콜라님의 아이디어는 Target 값에서 파생된 값으로 Target을 학습하고 추론하는 것이기에 논리적 오류가 있습니다. 

감사합니다. 

콜라
2022.10.27 17:28

그럼 말씀해주신 대로 target에서 데이터를 파생해서 순위권에 오를 경우 모두 실격 처리가 맞나요?

DACONIO
2022.10.27 17:51

안녕하세요, 콜라님.

Target의 정보도 주어진 정보이기에 사용이 불가능한 것은 아닙니다. 다만 주어진 정보를 활용하는 방법에 따라 결과는 달라집니다.  

감사합니다.  

hector21
2022.10.27 17:38

지도학습은 test 데이터셋의 독립변수x로 종속변수 y를 추론하는 것이고,
train 데이터셋의 독립변수와 종속변수 모두 알고 있는 값이고 사용 가능한 값입니다. 사용하지 못할 이유가 전혀 없습니다.
저는 실무에서도 지도학습 train데이터셋의 label을 당연히 활용하고 있습니다.
지도학습에서 train 데이터셋의 label의 분포를 파악하여 파생변수를 만드는 것은 모델링의 기본입니다.
위의 말씀은 납득할수 없으니 재확인 요청드립니다.

DACONIO
2022.10.27 17:54

안녕하세요, hector21님.

위 답변에서 Train의 종속 변수를 사용할 수 없다고 언급한 적은 없습니다. 

감사합니다. 

samkim
2022.10.30 20:34

@DACONIO
안녕하세요, 질문에 대해 제대로 답변이 되지 않은 것 같습니다. 질문의 요지는 'train의 종속변수를 사용할 수 없나'가 아니라 'train의 종속변수를 바탕으로 파생변수(additional input)을 만들 수 없나'인 것으로 보입니다. train에서 이미 알려진 값은 독립변수(input)뿐만 아니라 종속변수(label)를 포함하기 때문입니다. 해당 부분에 대해서 재확인 요청드립니다.

DACONIO
2022.10.31 10:41

안녕하세요, samkim.

train의 종속변수를 바탕으로 파생변수(additional input)을 만들 수 없나에 대한 요지에 대해 말씀드리면, Data Leakage에 해당하지 않기 때문에 사용 가능합니다.

감사합니다.

중요한건꺾이지않는마음
2022.10.29 17:11

삭제된 댓글입니다

중요한건꺾이지않는마음
2022.10.30 16:08

안녕하세요
짱이언니님의 답변에서 : "해당 대회는 독립변수(X)를 가지고 종속변수(Y)를 예측하는 것이므로 파생변수를 만들수 없다"  라고 하셨고
hector21의 질문에서는 Train의 종속변수를 사용할수 없다고 언급한적이 없다고 하셨는데

뭐가 맞는 말인지 궁금합니다. train의 종속변수(= y, = target)을 활용하는 방법에 따라 Dataleakage인지 아닌지 달라진다는 건가요? 기준을 정확하게 명의해주시긴 힘든건가요? 

DACONIO
2022.10.31 10:45

안녕하세요, Liebestraume님.

 "해당 대회는 독립변수(X)를 가지고 종속변수(Y)를 예측하는 것이므로 파생변수를 만들수 없다"라는 부분은 가장 기본적인 사칙연산 같은 예시를 얘기한 것입니다. 하지만 예외의 케이스 존재와 더불어 Data Leakage에 해당하지 않기 때문에 종속변수를 활용하는 것은 가능합니다. 

감사합니다. 

samkim
2022.10.30 20:58

안녕하세요, 앞서 2022.10.27 16:19 경 target 집계치를 활용하는 방안을 기재하신 마그보컬님의 질문에 대해, "해당 아이디어가 논리적으로 오류가 있다"고 하신 주장이 잘 이해가 되지 않아 재질문 남깁니다.

제가 어떤 데이터의 날짜 컬럼과 target 컬럼 간 관계를 살펴보니, 1일~14일 사이에는 target 평균이 50이었고, 15~30일 사이에는 target 평균이 100이었다고 하겠습니다.
이와 같은 EDA 결과를 바탕으로, 아래와 같이 2가지 방식으로 파생변수를 생성한다고 하겠습니다.
1) (날짜정보 활용 & rescaling) 각 행의 날짜값이 15일 이전인지 여부에 따라 '전반기', '후반기' 값으로 분류한 파생변수 생성 -> 해당 파생변수를 binary encoding(0/1) 한 후, 50을 더해준 수치형 파생변수 변환 (결과값 : 50 or 100)
2) (날짜정보 활용 & target 집계치 매핑) 1일~14일 target 평균값(50)과 15일~30일 target 평균값(100)을 구하고, 각 행의 날짜값에 따라 두 평균값 중 하나를 매핑한 수치형 파생변수 생성 (결과값 : 50 or 100)

두 방식은 언뜻 보면 파생변수 생성코드에서 사용하는 컬럼은 다르지만, 실질적으로 사용한 정보가 동일하고, 모델이 학습할 정보도 차이가 없게 될 겁니다.
위 2가지 방식에 대해, 주최측에서는 두가지 방식 모두 target에서 파생된 값이기 때문에 '논리적 오류가 있다'고 판단하실까요? 아니면 파생변수 생성코드에서 target을 직접적으로 사용한 것처럼 보이는 2번째 방식만 '논리적 오류가 있다'고 판단하실까요?

아울러, '논리적 오류'라는 표현은 다소 애매한데, 결론적으로 위와 같은 방식의 파생변수 생성 전략을 사용하면 최종 리더보드상 수상권에 들더라도 Data Leakage로 판정되어 실격 대상이 되는 것일까요?

감사합니다

DACONIO
2022.10.31 10:47

안녕하세요, samkim님.

Train의 종속변수를 활용하는 것은 Data Leakage가 아니기 때문에 사용가능합니다. 

감사합니다. 

Jay 윤
2022.11.01 14:13

안녕하세요. 팀 병합 관련해서 메일 보내드렸는데 확인부탁드립니다

DACONIO
2022.11.01 14:47

안녕하세요, Jay 윤 님.

팀 병합 관련 메일 확인했습니다. 해당 대회의 팀 병합 관련해서 여러 요청이 있어, 팀 병합 마감 일정을 22년 11월 4일로 변경하였습니다. 
 대회 규칙의 팀 병합 관련 내용을 잘 숙지한 후 팀 병합을 진행해 주시면 되겠습니다. 

감사합니다. 

머키
2022.11.04 12:35

test data가 8월 한달기간 data만 존재한다고 가정하고 구현하면 Data Leakage인가요?

DACONIO
2022.11.04 13:02

안녕하세요, 머키님.

주어진 test set에는 2022년 8월 데이터만 존재하는 것은 맞지만 이를 모델 학습에 적용하는 것은 Data Leakage에 해당합니다. 

감사합니다. 

머키
2022.11.04 13:38

그럼 모델이 train data에 기록된 마지막 시각 이후의 모든 시간대에서 작동해야하나요?

DACONIO
2022.11.04 13:55

안녕하세요 머키님.

학습된 모델은 모든 시간대에서 추론이 가능해야합니다. 

감사합니다. 

shki
2022.11.04 14:16

회전여부에 대해 list comprehension으로 있음 : 1 없음 : 0으로 처리하는 것도 leakage에 해당하나요?

DACONIO
2022.11.04 15:55

안녕하세요, 기세현님.

test  set에 대해 다른 입력값이 있을 것을 염두하여 LabelEncoding을 하는 것을 권장드립니다. 

감사합니다.  

방금망고먹음
2022.11.04 17:12

예정된 축제나 행사 날짜를 사용하는 것도 data leackage에 해당하나요?

DACONIO
2022.11.04 17:42

안녕하세요, 방금망고먹음 님.

예정된 축제나 행사 날짜가 test 기간 이전에 미리 알 수 있는 정보라면 data leakage에 해당하지 않습니다.  

감사합니다. 

dmswl2
2022.11.13 19:37

삭제된 댓글입니다

DACONIO
2022.11.07 08:38

안녕하세요, radgy님.

train set 과 test set을 통합하여 원핫인코딩을 하는 것은 Data Leakage에 해당하며, 문자형 변수를 인코딩 하신다면 말씀하신 바와 같이  train set에 fit한 encoder를 가지고 test set을 transform하는 것을 권장합니다. 

감사합니다.

Ski
2022.11.06 17:45

월화수목금 , 11시 12시 같이특정 시간대를 파생변수를 만드는것도 data leakage에 해당하나요?
타 row data는 섞이지 않았습니다

DACONIO
2022.11.07 08:39

안녕하세요, Ski님.

위와 같이 특정 시간대를 파생변수로 만드는 것은 Data Leakage에 해당하지 않습니다. 

감사합니다. 

익명의누군가
2022.11.06 19:03

8월 이후 업데이트된 지도 api를 이용해서 행정구역 정보를 데이터에 추가하는 것이 Data Leakage에 해당되나요?

DACONIO
2022.11.07 08:50

안녕하세요, 익명의누군가님.

8월 이후 정보가 반영되어 업데이트 되었다면 해당 정보를 사용하는 것은 Data Leakage에 해당합니다.

감사합니다.

박식하기그지없고명석한두뇌를가진수재요
2022.11.08 17:54

혹시 제공해주신 데이터의 road_name의 출처를 알수있나요? 도로명을 가지고 해보고싶은것이 있는데  '경찰로' 같은 도로는 어디에 검색해도 안나오고, 표준노드링크에 있는 도로명과도 맞지않아 문의드립니다.

DACONIO
2022.11.09 11:51

안녕하세요, rim2님.

주최 측의 의견에 따라 Data Set의 출처와 수집 방법은 공개할 수 없습니다.   

감사합니다.   

Ski
2022.11.09 13:16

target값의 정보를 이용해도 data leakage인가요?

DACONIO
2022.11.09 14:49

안녕하세요, Ski님.

train set의 종속변수를 활용하는 것은 Data Leakage에 해당하지 않습니다.

감사합니다. 

samkim
2022.11.10 23:45

본 대회에서 시계열 모델을 사용해 예측한 경우, 최종 순위가 수상권이더라도 data leakage로 판정되어 실격인지 궁금합니다.
(단, 시계열 모델 학습 및 예측 시 test 데이터의 target은 사용하지 않음)
본 대회 데이터가 시계열이라는 정보는 제공된 바 없지만, 단순히 학습데이터의 일/시간&target 정보나 테스트데이터의 일/시간 정보를 input으로 넣어 시계열 모델을 통과시킨 output을 사용하는 것만으로 실격 사유가 되는지 궁금합니다.

DACON.GM
2022.11.25 09:44

안녕하세요 samkim님,
Data Leakage 규칙 내에서 시계열 모델을 활용하는 것에는 제약 사항이 없습니다.
그러나 Test 데이터셋을 추론하는 경우에는 코드 검증 과정에서 row들을 shuffle하였을 때도 모두 동일한 예측 결과를 얻을 수 있어야 합니다.
또한 추론 시 사전에 Test 데이터셋에 대해서 일부 Column을 기준으로 Sorting을 하는 방법은 Data Leakage에 해당합니다.
감사합니다

잽잽이
2022.11.11 16:30

외부데이터 활용시 22년 8월 이전의 데이터를 train과 test셋에 날짜의 월 기준으로 column 추가 할 경우 dataleakage에 해당하나요?