신용카드 사기 거래 탐지 AI 경진대회 월간 데이콘

알고리즘 | 정형 | 분류 | 탐지 | Macro f1 score

 

대회 데이터 사용 허용 범위 안내

2022.07.04 21:01 1,454 조회

월간데이콘23, 신용카드 사기 거래 탐지 AI 경진대회 제공 데이터의 허용 범위입니다.

(대회안내 -> 규칙 -> 3. 데이터 허용 범위 기재)

  • 외부 데이터 사용 금지
  • Train dataset (train.csv)만 모델 학습에 직접적으로 사용 가능
  • Validation dataset (validation.csv)은 모델 학습에 직접적으로 사용 불가능하지만, 데이터 통계 정보와 모델 평가에는 사용 가능
  • Test dataset (test.csv)은 리더보드 제출을 위한 추론(inference)에만 사용 가능 (모델 학습 사용 불가능)


이번 월간데이콘23의 데이터는 Anomaly detection, Fraud detection에서 대표적인 오픈 데이터셋으로 진행됩니다.

이번 대회의 설계 의도는 학습 데이터의 Label이 주어지지 않는 상황에서 비지도 학습으로도 뛰어난 이상 탐지 능력을 가지는 모델을 학습 시키는 것입니다.

따라서 주어진 규칙 안에서 데이커 여러분들이 최대 역량을 발휘하여 대회 배경에 알맞는 이상 탐지 모델을 개발하는 것이 이번 대회의 목표입니다.

마지막으로 오픈 데이터셋으로 진행되는 대회인 만큼, 대회 종료 후 수상자 선정 과정에서 코드 검증이 더욱 더 상세하게 이루어질 예정입니다.

감사합니다.

데이콘 드림

로그인이 필요합니다
0 / 1000
froggagul
2022.07.04 21:56

...

NN_is_all_you_need
2022.07.05 13:21

비지도 학습은 처음해보는데 감사합니다

gilgarad
2022.07.06 11:12

좀 헷갈리는 부분이 있습니다. 설명에 validation 데이터에서 통계 정보와 모델 평가에는 사용 가능 써있습니다.
후자인 모델 평가에는 사용 가능이라는 부분은 train으로 만들어진 모델의 성능 테스트를 하는 것이라 분명한데, 전자인 데이터에서 통계 정보로 활용 가능하다는 것은 어느 정도까지를 의미하나요?
간단히 예시를 들어보겠습니다. 이게 되는지 안 되는지만 알면 분명할 것 같아서요.

예) 
1. 트레인 세트에서 나만의 클래스를 뭔가 만듦.
2. validation세트에서 나만의 클래스와 validation의 0/1 클래스(normal / fraud)와 매칭하여 나만의 클래스를 최종 클래스로 변환 가능하도록 함
 -> 코드 공유된 것에서는 isolation forest를 사용하여 1이 나온 것은 정상, -1은 비정상으로 재조정하였습니다. 이것은 validation의 라벨을 보고 재조정한 것이 아니기 때문에 2번 질문을 재차 드리게 된 것입니다. 가령 나만의 클래스가 5개라고 했을 때 각 클래스0, 1, 2, 3, 4별로 validation의 정상과 fraud 통계를 보고 클래스를 리매핑 해주는 것이 허용되는지가 궁금한 것입니다.
3. test세트를 모델에 넣어 prediction하여 나온 나만의 클래스를 2번에서 만든 변환 가능한 함수로 변환한 뒤 submit

이 정도까지는 허용하는 것인지 궁금합니다.

감사합니다.

DACONIO
2022.07.06 11:37

안녕하세요 gilgarad님,

질문 주신 내용에 대해 답변드리겠습니다.
1. Train 세트에서 Data Leakage 규칙에 위배되지 않는 선에서 새로운 Class 혹은 Feature를 생성하셔도 무방합니다. (Test 세트에서 얻은 통계 정보 혹은 인사이트를 통해 Train 세트에 새로운 Class 혹은 Feature를 생성하는 것은 Data Leakage에 해당됩니다. 또한 새로운 Class 혹은 Feature를 생성하는 과정이 코드와 더불어 논리적으로도 검증이 가능해야 합니다.)
2. Validation 세트의 Label 통계 정보를 통해 1번에서 Train 세트에 새로 부여한 Class를 리매핑하는 것은 가능합니다. Validation 세트가 직접적으로 모델 학습의 입력으로 들어가지 않으면 됩니다.
3. Validation 세트의 Label 통계 정보를 활용하여 구축한 리매핑 함수를 Test 세트의 추론결과에 동일하게 적용하는 것은 가능합니다. 단, Test 세트의 데이터 통계 정보를 활용하여 리매핑 함수를 구축할 경우에는 Data Leakage에 해당됩니다. 즉, Test 세트는 원칙적으로 아예 볼 수 없다 라고 설정하고 진행해주셔야 합니다.

감사합니다.

gilgarad
2022.07.06 15:48

답변 감사드립니다~!

1, 2, 3 모두 답변 정확히 이해했습니다. 
중요한 것은 test 데이터는 무조건 infer만 가능하다는 것 / 그리고 validation은 직접적인 모델 학습의 input으로만 사용하지 않으면 됨. 이 정도로 이해했습니다만,
진행하다가 문득 한 가지 더 궁금하여 질문드립니다. validation의 활용 여부가 어느 정도까지인지 재차 확인하기 위함입니다.


1. train + 클래스 n개 생성
2. validation 확인 리매핑 후 리매핑 함수 설정 
3. train세트 데이터를 infer 후
4-1. 2에서 만든 리매핑 함수를 활용하여 클래스로 활용
4-2. 2에서 만든 리매핑 함수를 활용한 뒤 동일 또는 다른 모델 학습에 넣을 데이터 필터링
5. 4-1 또는 4-2를 진행 후에 새로 나온 모델을 활용하여 test 데이터 infer 후 submit

질문: 4-1 / 4-2는 3 이후에 나올 수 있는 서로 다른 시나리오인데 각각의 가능 여부를 알고 싶습니다.
감사합니다!

DACONIO
2022.07.06 16:36

안녕하세요 gilgarad님,
Validation 데이터셋을 직접적으로 모델 학습의 Input으로 사용하지 않고,
Train, Validation 데이터셋에 대한 통계정보, 인사이트들을 사용하여 Train 데이터셋으로 모델을 학습시키는 것은 모두 허용합니다.
즉, 말씀해주신 리매핑 함수라는 것이 정확히 어떻게 구성되어있는지 알수는 없으나, Train 혹은 Validation 데이터셋으로부터 도출할 수 있는 리매핑 함수라면 사용 가능합니다.
또한 4-2에서의 데이터 필터링도 마찬가지로 Train, Validation 데이터셋으로 부터 도출할 수 있는 기준으로 필터링이 이루어진다면 사용 가능합니다.
따라서 Test 데이터셋의 Data Leakage에만 유의해주시면 됩니다.
감사합니다.

gilgarad
2022.07.06 16:49

넵 이제 궁금한 것에 대해 완전한 답변이 되었습니다. 감사합니다.

gilgarad
2022.07.18 18:15

안녕하세요, 이것저것 시도해보며 재미있게 진행중인데요. Ano GAN 같은 것은 data leakage로 판단하나요..? 

1. 학습된 모델 (generator, discriminator)가 있고 2. 정상/비정상 측정 데이터로 테스트 할 때 임의의 모델을 즉석으로 생성하고 해당 데이터를 학습한 뒤 그것을 활용하는데..
2번에서 문제가...  판단을 위한 데이터가 인입되면, 즉시 신규 모델을 생성하여 해당 데이터만 즉석으로 학습하여 latent space를 만들고 그 latent space로 1번에서 만든 generator로 데이터를 생성하게 되는데, 이것도 data leakage에 해당하는지 좀 확인이 필요한 거 같아 질문드립니다. 

정리
1. train으로 generator/discriminator 학습
2. val 데이터로 확인하여 최종 사용할 weight 선정 -> 이 때도 즉석 셀프 트레이닝이 진행되며 해당 학습 웨이트는 n개당 개별 데이터의 이상여부 판단 이후 소멸됨
3. test데이터 인입시 -> val과 같은 과정을 거쳐 이상 여부 확인

2 val data, 3 test data에서는 1번에서 학습된 모델의 update는 전혀 없음(1번 학습 후 고정됨)

질문요약.
val과 test데이터를 전혀 모르는데 한 개의 데이터가 들어올 때마다 셀프 학습하고 소멸되는 모델의 학습 가능 여부 확인. 이 과정에서 label은 사용되지 않음

DACONIO
2022.07.19 09:34

안녕하세요 gilgarad님,
대회 제공 데이터 중 Validation Dataset (validation.csv)은 모델 학습에 사용은 불가능하지만 데이터 통계 정보와 모델 평가에는 사용 가능하며,
대회 제공 데이터 중 Test Dataset (test.csv)은 리더보드 제출을 위한 추론에만 사용 가능합니다.
따라서, 1번의 generator모델의 입력에 들어갈 모델도 모두 Train Dataset으로만 학습되어야 합니다.
감사합니다.

아르미
2022.07.24 11:47

:)