캐글로 보는 각 분석 분야별 우선적용 방법 확인

시작하며..

실무에서 데이터분석 필드에 있다보면, 많은 사람들을 고객이나 동료로 일하게 됩니다. 데이터분석이 요즘에는 그나마 많은 사람들이 공부하고 있지만 이 분야야 말로 많은 경험과 분석방법론, 그리고 최신방법론, 도메인 이해능력, 전달능력, 장표작성 능력까지 올라운드로 일을 하지 않으면 안되는 분야입니다.

그래서 그런지는 몰라도, 내게 주어진 역할을 하다보면 뭔가 몇개는 포기하게 됩니다. 육아, 설거지, 방청소, 사람만나기, 게임하기.. 할게 참 많지만 머신러닝 코리아 운영자는 포기하고 이곳에 최신 방법론을 조사하여 여기에 정리합니다.

이번 정리사항은 단지 컴페티션에서 쓸 용도가 아닌, 실제 업무에서 적용시켜볼만한 직관적인 예측 파이프라인을 구축하기 위한 방법을 정리하는 용도입니다.

캐글에서는 수많은 컴페티션이 이뤄지고 있습니다. 최근에는 특히나 어려운 과제들이 진행되고있습니다. 왜냐면, 단순 예측은 난이도가 쉬운편에 속하기 때문에 기업입장에서는 스폰을 할 이유가 별로 없습니다. 지금은 지나간 컴페티션을 뒤지면서 어떠한 방법론으로 예측을 했는지 알아봅니다.

정확도를 짜내기위해 심각한 모델짬뽕은 적당히 보고, 단일모델에서 힘을 얻은 경우를 대체적으로 중요하게 보았습니다. 여기서 정형데이터는 tabular데이터로써, 보통의 기업에 많이 적재되어있는 DB형태의 데이터입니다.

이미지분류 (Image Classification)

  • ResNet50 (Google Landmark Recognition,2019 – 컬러 멀티클래스 라벨링)
  • Resnet, Xception, DenseNet (Whale Humpback, 2019)
  • CNN, NasNet, VGG (Cancer Detection, 2019)
  • Mask RCNN, Yolo, CNN (Pneumonia Detection, 2018)
  • CNN with Dropout, Relu (MNIST Dataset – 흑백 숫자인식)

이미지 분류는 극도로 딥러닝이 발전한 분야로써 CIFAR나 imagenet의 멀티클래스 예측이라면 ResNet이 제일 자주 쓰이고 있습니다. 픽셀이 적은 MNIST의 경우 kNN과 같은 방법론도 유의미할수 있습니다.

음성인식 (Voice Recognition)

  • CNN, GRU + attention, Boosting 등 다양한 방법론 혼재 (2018)

음성인식 분야는 여러 종류의 예측방법이 혼재되어 있지만, 시계열 데이터이기 때문에 GRU를 이용하여 빠르게 훈련하는 방법이 주를 이루고 있습니다.

텍스트분석 (Text Analysis)

  • LSTM, GRU + attention 기본(Toxic Comment Classification, 2018, Quora Question Classification, 2019)
  • Naive Bayes와 SVM을 추가적으로 앙상블, n-gram, pre-trained embedding

텍스트는 순서가 있는 데이터이기 때문에 LSTM, GRU를 기본적으로 이용하는 동시에 단어의 컨텍스트를 보전하는 n-gram, 그리고 GloVe나 FastText와 같이 미리 대기업이 풀파워로 임베딩 시켜놓은 임베딩을 이용하는 방법을 이용합니다.

추천 (Recommendation)

  • GBDT Boosting (Santander Product Recommendation, 2017, Elo Merchange Category, 2018)
  • SVD등 차원축소 등을 통해 정확도 상승 꾀함

추천은 기본적으로 희소행렬이고, 데이터가 무지하게 크기 때문에 이를 적당히 차원축소 해주는것이 예측률 향상에 도움을 줍니다. 추천을 하는 방식은 실무에서는 간단한 거리공식으로 CF등을 돌리는 등 방법이 있지만, 대회용은 일단 정형데이터가 섞인다 치면 부스팅으로 통일됩니다.

정형데이터 (Tabular Data)

  • GBDT Boosting (관련된 모든 컴페티션 전부)
  • Random Forest, Extra Tree, Neural Network 등 추가로 앙상블

정형데이터의 경우 lightGBM을 필두로 XGB, Catboost를 극도로 피처엔지니어링과 이를 앙상블하는 방법이 주를 이루고 있습니다. feature가 명확하면 명확할수록 부스팅이 SVM보다 높은 결과치를 내주는 경향이 있습니다.

시계열 데이터 (Time Series)

  • GBM – GBDT Boosting (Google Analytics Customer Revenue, 2018, Store Item Demand, 2018)
  • GLM, LSTM, 신경망 등 앙상블 용으로 섞음
  • ARIMA, Prophet과 같은 주기를 그려보는 전통적 방법은 시각화 용으로 한두번.

시계열 데이터는 ARIMA와 같은 전통적 방법론들이 의외로 쓰이지 않는 분야입니다. 물론 앙상블에 하나로 고려해볼수 있지만, 눈으로 따라 그릴수있을 정도가 아니면 전통적인 시계열은 주기를 그리는것외에는 노답입니다. 게다가 투입되는 독립변수가 너무 많은데, 이를 단순 시계열 모델로 표현하는것은 노답입니다-

댓글 남기기