분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
코스포 x 데이콘 자동차 충돌 분석 AI경진대회 채용
왜 점수가 오르지 않을까?
밑에 왜 점수가 오르지 않는지 고민하는 분이 글을 작성하셨던데, 제 생각을 한번 써볼까 합니다.
제가 생각하는 이 대회에서 가장 큰 문제는 Labeling 입니다.
weather를 예측하는 부분을 예로 들어보겠습니다.
labeling이 되어있는 weather의 normal, snowy, rainy는 각각 716, 129, 70개입니다.
이중 rainy의 경우 7개만 mislabeling이 되어있어도 벌써 10%가까이의 데이터가 비정상입니다.
garbage in garbage out이라는 말을 들어 보셨겠지만, 바로 이러한 경우입니다.
아무리 좋다는 기법을 다 섞어 넣는다 해도 애초에 labeling이 잘못되어 있으면 아무 소용이 없습니다.
그럼 여기서 몇 가지 해결책이 존재합니다.
1번의 경우 충돌 데이터가 약 900개 정도이니까 몇 시간 정도만 투자하면 labeling은 금방 할 수 있습니다.
2번의 경우 어떤 방법을 하냐에 따라 다르지만, 모델이 확실하게 clean한 label을 얼마나 잘 만들어 주냐에 따라 완성도가 달라집니다.
3번의 경우는 데이터가 많지 않은 상태 및 어떤 것이 clean인지 모르는 상태라면 확인하기 힘들어 보입니다.
이 외에도 많은 방법이 존재하겠지만, 1번과 2번의 관점에 대해서 계속 적어보겠습니다.
1번과 2번을 통해 clean label 을 얻었습니다.
확실한가요?
이게 정말 clean label 인지는 어떻게 알 수 있나요?
대회의 Test Set의 clean여부는 알 수도 없고, 애초에 clean의 정의가 되어 있지 않으면 다시 labeling한들 아무 소용이 없습니다.
Train의 1027번을 예로 확인해보겠습니다.
이 데이터의 label은 12로 다른 차량의 충돌이 밤에 발생하였고 날씨는 비가 오는 것으로 되어있습니다.
재생해보시면 바닥에는 눈이 있고, 와이퍼는 움직이지 않으며, 화질은 좋지도 않아 다 깨져가고 있습니다.
사람이 보고 판단한다면 비가 오고 있다고 판단하기에는 애매합니다.
라벨이 틀렸을 가능성은 높지만, 일기예보를 확인하거나 그 당시 거기 있지 않았으면 사실관계는 알 수 없습니다.
이 데이터는 normal인지 snow인지 rain인지 사람이 보고 판단하려면(labeling을 하려면) 확실한 정의가 내려져 있어야 합니다.
보통 labeling을 위해서는 labeling guide 라는게 존재합니다. 위 같은 경우를 예방하기 위해서 guide가 필요하고
예외를 많이 커버하는 guide일수록 더 clean한 data가 만들어짐을 추측할 수 있습니다.
이야기가 좀 샌 것 같습니다.
다시 본론으로 돌아와서 대회에 대해 이야기 해 보겠습니다.
점수를 올리기 위해선 어떻게 하면 좋을지는 이제 다들 어느 정도 예상이 되실 겁니다.
test set의 labeling의 정의를 가장 잘 따르는 모델이 바로 점수가 높은 모델입니다.
대회의 측면에서는 이미 정답(label)이 정해져 있기 때문입니다.
그럼 test set을 가장 잘 따르게 하려면 어떻게 할까요?
저도 잘 모릅니다.
제가 적은 방법만 있는 것도 아니고 문제를 해결하는 방법에는 여러 방법이 있습니다.
답답해 하시는 분들이 많이 있을 것 같아 제 생각을 조금 적어보았습니다.
자신만의 논리를 잘 구축하셔서, 좋은 결과를 얻으시기 바랍니다.
ps1)
현재 데이터셋의 label 분포로 추정할 때, 데이터가 10개 밑으로 존재하는 label이 많고
public 30% 인 상태에서 리더보드의 f1 score는 거의 힘이 없다고 보시면 됩니다.
예를 들어, 반 정도의 label인 7~12까지가 각각 10개 미만이라고 생각해 봅시다.
여기서 30%면 각각 최대 3개입니다.
이 3개로 f1 score를 계산하면 한,두개만 틀려도 (false negative) score가 많이 내려갈텐데 false positive 까지 섞인다면?
물론 public과 별 차이 없는 강건한 모델을 구축했다면 private을 걱정하지 않아도 될겁니다.
역시 여러 대회를 참가해보셔서 그런지 통찰력이 대단하시네요..!!
수도 라벨링은 data leakage 위반되지 않나요?
test 데이터셋 sudo labeling은 data leakage에 위반되지만, train 데이터셋은 위반되지 않습니다.
이 글을 보고 accuracy로 score을 계산해봤는데 public score이 0.5%정도 내려갔네요.
아마도 metric은 f1 score로 계속 고정해야 할 것 같네요
metric의 문제는 아닙니다. accuracy도 데이터 개수의 문제로 비슷한 문제를 겪게 됩니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
삭제된 댓글입니다