분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
1등 기념 분석 방향 공유
안녕하세요, 세아아부지입니다.
뭐든 1등을 해본 기억이 가물가물한데, 잠시겠지만 리더보드 1등 기념으로 분석 방향을 공유합니다.
1. 변수의 시점
데이터의 시점 문제는 항상 고민이 많이 필요한 부분입니다.
train 데이터는 세 종류가 있는데요, problem 데이터에 실제 고객이 불만을 제기한 시점이 등장합니다.
이 고객은 분명 그 시점 이전에 발생한 error나 quality 문제로 불만을 표했을 것입니다.
그런데 error, quality 데이터에는 그 이후 시점의 내용이 모두 포함되어 있고 Test 데이터 역시 마찬가지입니다.
Test 데이터의 고객 중에서 불만을 제기한 사람은 있겠지만, 언제인지는 우리가 알 수 없습니다.
2. 시점과 관련된 데이터 처리
그래서 저는 불만접수 시점 이전의 로그만 활용해서 모형을 만들었"었"습니다.
Validation 기준 0.9에 가까운 AUC가 나오더라구요. 그런데, 제출해보니 스코어가 0.7이 나오더라구요.
뭔가 알고리즘에 오류가 있나 싶어서 모형을 바꿔 2번 더 제출했는데도 스코어가 0.7이 나왔습니다.
비슷한 점수대가 있는걸 보면, 그분들도 비슷하게 접근하신 것 같네요.
3. 당연한 결과
그런데 이걸 곰곰히 생각해보니 당연한 결과같더라구요.
Test 데이터에는 불만 제기 이후의 정보도 담겨 있는데, 모형은 불만 제기 이전의 정보만 활용하니까 성능이 안좋을 수 밖에 없죠.
단순 집계만 해봐도 불만 고객들은 error 로그 개수 자체가 많은 걸 확인할 수 있으니까요.
(그래서 굉장한 데이터 처리없이 단순 집계만 활용하는 baseline 성능이 0.8 이나 나온 것 같네요)
시점에 상관없이 전체 관측치를 모두 활용했고, 간단한 파라미터 튜닝을 하니 결과가 잘 나왔네요.
사실 이렇게 모형을 만들면 실제 "사용자 불편 예지"에 활용하는데는 어려움이 있을 수 밖에 없습니다.
모형에 불편 발생 이후의 정보도 함께 들어가 있으니까요.
점수 기준 분석대회라서 어쩔수는 없지만 아쉬운 부분이긴 하네요.
지금 스코어는 전체 테스트 데이터 중 1/3만 활용한 것이더라구요.
아마 시간이 지나면 스코어는 비슷해지고 실제 결과는 한끗차이가 일 것 같네요.
어느 정도 복불복 상황을 감안해서 데이터 전처리에 대한 컨셉을 잘 잡는 것이 중요할 것 같습니다.
그리고 스코어에 상관없이 시점을 고려한 모형도 만들어 보시면, 데이터에 대한 이해와 전처리에 대한 힌트를 얻을 수 있을 것 같습니다.
실제 적용을 위해서는 시점을 고려하는게 맞겠지만 당장 AUC를 위해서는 전체 데이터를 활용할 수 밖에 없죠ㅠㅠ
공유 감사합니다 많이 배웠습니다.
대단하십니다. 저도 여러 방향으로 좀더 고민해봐야겠네요.
이번 주제는 평가 방식으로 추측해보자면 데이터 탐색, 전처리. 파생변수 생성이 핵심인것 같습니다.
물론 좋은 스코어를 보여야 하지만 1차 평가를 스코어로 통과했다면 2차부터는 과정에 대한 전반적인 논리성을 볼 것 같습니다.
3차는 이 모든 과정을 직접 진행했는지 판별을 위한 상세한 기술면접? 처럼 진행되고 스코어 점수의 영향력 보다는
2차와 3차 점수가 크게 적용되어 결과가 나올 것 같은 느낌입니다.
1등 자리에서도 흔쾌히 정보를 공유해주셔서 감사드립니다.
"사실 이렇게 모형을 만들면 실제 "사용자 불편 예지"에 활용하는데는 어려움이 있을 수 밖에 없습니다. "
란 말씀에 저도 동의합니다. 지금까지의 데이터를 바탕으로 과거에 불만을 제기한 유저를 예측하는 문제가 된 것 같습니다.
유용한 접근에 대해 공유해주셔서 정말 감사합니다. upvote!
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
저도 같이 진행을 해봤는데 0.7x 이상으로는 안나오더라구요. (problem 시점을 살펴보면 error가 발생한 이전 시점인 경우도 있어서. 완전이 제외 되는 부분도 있고 몇가지 에러가 나오지 않았지만 problem을 제기 한 경우도 있더라구요.)
시점을 고려한 모델은 필요 할 것 같은데 단순 이전 시점으로 생각을 하면 안될거 같긴하네요.