본문 바로가기

Kaggle 데이터 분석

WSDM - KKBox's Music Recommendation Challenge (2): Exploratory Data Analysis

https://www.kaggle.com/c/kkbox-music-recommendation-challenge

 

WSDM - KKBox's Music Recommendation Challenge

Can you build the best music recommendation system?

www.kaggle.com

지난 포스팅에 이어서 데이터 세트에 대해서 분석하였습니다.

 

지난 포스팅 확인하기 ↓

https://dhsong10.tistory.com/18

 

WSDM - KKBox's Music Recommendation Challenge (1): 분석 시작

https://www.kaggle.com/c/kkbox-music-recommendation-challenge WSDM - KKBox's Music Recommendation Challenge Can you build the best music recommendation system? www.kaggle.com Kaggle의 지난 competiti..

dhsong10.tistory.com

1) github repository 관리

지속적인 프로젝트 관리를 위해서 git, github을 활용하기로 결정하였습니다. 

 

git 브랜치 관리

master 브랜치는 최종 결과를 위한 브랜치로 프로젝트가 완료되면 그동안의 작업과 merge 할 예정입니다.

 

dev 브랜치는 현재 작업을 나타내는 브랜치로 개발 중인 여타의 브랜치를 통합 관리합니다. 

 

비록 프로젝트를 진행하는 인원은 1인이지만, 성격에 따라서 branch를 분기했습니다. 기본적인 데이터의 특징을 살펴보기 위한 브랜치는 eda로 EDA 작업은 eda 브랜치에서 이루어집니다. 추천 시스템 모델링 작업은 model 브랜치에서 이루어집니다. 마지막으로 프로젝트 진행에 대한 자세한 내용을 Markdown 리포트로 작성하기 위한 report 브랜치도 있습니다.

 

이 모든 내용은 github에 반영합니다.

 

https://github.com/dhsong95/kaggle-kkbox-music-recommendation-challenge/tree/dev

 

dhsong95/kaggle-kkbox-music-recommendation-challenge

Kaggle Competition: WSDM - KKBox's Music Recommendation Challenge - dhsong95/kaggle-kkbox-music-recommendation-challenge

github.com

 

2) Exploratory Data Analysis

사용자와 노래 데이터를 분석하고 예측해야 하는 값 (target)에 미치는 영향력을 파악했습니다. 자세한 내용은 Markdown 리포트로 작성하였습니다. 

 

https://github.com/dhsong95/kaggle-kkbox-music-recommendation-challenge/blob/dev/report/Exploratory%20Data%20Analysis.md

 

dhsong95/kaggle-kkbox-music-recommendation-challenge

Kaggle Competition: WSDM - KKBox's Music Recommendation Challenge - dhsong95/kaggle-kkbox-music-recommendation-challenge

github.com

결론적으로 사용자와 노래 데이터에 있는 특징 자체는 사용자와 노래에 대한 정보는 제공하지만 target 값에 어떠한 영향을 미치는 파악하기는 어렵습니다. 즉 특정 노래라고 모든 사람이 좋아하는 것도, 혹은 노래를 많이 듣는 사용자가 모든 노래를 좋아하는 것도 아닙니다. 정확한 추천 모델을 만들기 위해서는 사용자와 노래의 관계에 초점을 맞추어야 합니다.

 

학습 데이터 변수와 target 과의 관계. (왼쪽부터 source_system_tab, source_type, source_screen_name)

그러한 점에서 학습 데이터(train.csv)에 제공되는 데이터(source_system_tab, source_type, source_screen_name)는 target 값에 영향을 줄 수 있습니다. 특히 local의 영향력은 상당합니다. 사용자가 local 환경에서 노래를 감상한다는 것은 사용자가 노래를 직접 선택해서 자신의 로컬 환경에서 감상한 것을 의미합니다. 여기에는 사용자의 의지(선호)가 강력하게 들어가 있으며 따라서 예측값(target)이 1일 가능성(한 달 내에 사용자가 노래를 다시 듣는 상황)으로 이어집니다. 

 

하지만 자신의 직접적인 선택이 아니라면 사용자의 노래 감상인 한 달 내에 반복되지 않을 가능성이 높습니다. 대표적인 경우가 radio입니다. radio에서 듣는 음악은 사용자의 선택이 아닙니다. 주어진 음악을 듣는 것으로 사용자의 선호가 개입되어 있지 않습니다. 따라서 사용자는 노래를 다시 듣지 않을 가능성이 높습니다.

 

과제에서 추천은 사용자가 노래를 한 달 내에 다시 듣는지로 유용성을 평가합니다. 하지만 추천에는 단순히 유용성뿐만이 아니라 새로움도 중요한 지표가 될 수 있습니다. 만약 radio에서 들은 노래를 한 달 내에 다시 듣는다면 이는 사용자가 노래에 만족했을 뿐만이 아니라 새로운(신선한) 노래일 가능성도 있습니다. 하지만 과제는 이러한 지표를 고려하지 않고 있습니다.