ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시스템 품질 변화로 인한 사용자 불편 예지 AI 경진대회
    대외활동 2022. 8. 18. 03:42

    오늘 포스트에는 데이콘에서 주관하고 LG AI Research에서 주최하였던 2021 시스템 품질 변화로 인한 사용자 불편 예지 AI 경진대회에 참가하였던 후기를 다루겠다.

     

    참고로 해당 대회에서는 0.83441의 최종점수로 상위 13%를 차지하였으며 관련 코드는 아래 Github 주소를 보면 된다.

    https://github.com/JoyceWLee/Dacon-predict_dissatisfaction

     

    GitHub - JoyceWLee/Dacon-predict_dissatisfaction

    Contribute to JoyceWLee/Dacon-predict_dissatisfaction development by creating an account on GitHub.

    github.com

     

     

    나는 정형 데이터의 분류 모델을 만드는 것이기 때문에 매우 수월할 줄 알았다. (내가 여태까지 해왔던 테스크들 이니까!) 하지만 학습데이터를 확인해보니 시스템에 대한 로그 데이터였고 내가 한번도 다루지 않았던 시계열 데이터였다.

    한명의 user id에 대해 여러개의 시간 데이터가 존재했고 시간에 따라 각각 다른 에러 로그 및 퀄리티 로그가 존재하였다. 결국에는 유저마다 problem이 발생할 확률값을 제출 파일로 만드는 것이기 때문에 유저를 기준으로 prediction 값이 나와야 했다.

     

    따라서 유저별로 있는 많은 시간 로그들을 하나로 압축하고자 했는데, 생각해보니 불만이 접수된다면, 유의미한 로그는 그 불만이 접수된 시간으로 +n, -n만큼만 필요하지 않을까라고 생각했다. 즉 Problem tabular dataset에 있는 불만 접수 시간을 기준으로 일종의 windowing 작업을 해주고자 하였다. 

     

    이를 위해 먼저 problem_data.csv 파일부터 살펴보았는데 확인해보니 429개의 id들이 중복되어 있으며 각 아이디 별로 최대 5번까지 중복되어 있음을 확인였다. 예를들어 10006번 고객은 총 3번 문제를 제기하였다. 불만 접수의 중복을 고려해주기 위해 서로 다른 네개의 데이터 프레임에 user id 당 발생한 불만접수 시간을 저장하였다.

     

    Prob_1에서는  최초로 문제를 제기한 고객들의 id값과 time값이 저장되어 있으며 Prob_4에서는 3번의 문제 제기 후, 4번째로 문제를 제기한 고객의 id값과 time값이 저장되었다. 예를 들어 문제 제기를 1번 한 10001번 고객의 경우 이 고객의 id와 time 정보는 prob 1에만 존재할 것이고 문제 제기를 3번한 10006번 고객의 경우에는 prob 1,2,3에 각각 문제를 제기한 시간들이 저장될 것이다.

     

    이제 이 불만접수 시간을 기준으로 windowing을 해주게 된다. window의 크기는 기준일보다 5일 전후로 총 10일의 크기를 갖는다.

     

    이 밖에도 .rolling(10).mean() 매소드를 사용해 이동평균을 구했으며 이를 우리의 추가적인 feature로 활용하였다.

    또한 training 데이터가 혹시 작을까봐 TGAN을 이용해 데이터 생성을 해보았다. 하지만 이전 포스트에서 다룬것처럼 data column 수가 적었을때는 유의미한 데이터가 생성되어 Test accuracy 향상에 도움을 주었지만, 이것저것 많이 해보며 feature 개수가 늘어났을때는 기존 데이터의 correlation을 전혀 고려해주지 못하는 데이터가 생성되었다. (한마디로, 쓸모없는 데이터가 만들어졌다)

    2021.08.23 - [2021_Project/Linear Regression] - Synthesizing Tabular Data using Generative Adversarial Network : TGAN

     

    Synthesizing Tabular Data using Generative Adversarial Network : TGAN

    medical dataset을 사용하여 딥러닝을 학습할 때 가장 어려운 점은, 데이터셋의 확보가 어렵다는 것이다. 좋은 성능을 위해 다량의 학습 데이터가 필요하다는 면에서 medical domain에서의 인공지능은 ch

    deeplearning-hj.tistory.com

    5 fold cross validation을 거쳐주었으며, lightgbm regression 모델을 사용하였다. 이 밖에도 stacking을 비롯한 몇몇 앙상블 기법을 사용해보기도 하였다.

    '대외활동' 카테고리의 다른 글

    KU 매디컬 해커톤  (0) 2022.08.18

    댓글

Designed by Tistory.