OTT 사용자 이탈율 증가를 막기 위해 머신러닝을 활용하여 애니메이션 추천 시스템을 구현
→ 사용자 이탈이 OTT 플랫폼 전반적으로 문제가 되고 있음
→ 그러는 와중에 애니메이션 시장은 꾸준히 성장해 한화 약 31조원의 규모에 도달함
→ 2018년을 기점으로 OTT를 통한 애니메이션 배급이 비디오 배급 방식을 추월했음
- 애니메이션 ID를 기준으로 병합하여 사용
- 100만 row로 샘플링 진행
→ 각 장르별 컬럼 추가
→ 공개 년도 컬럼 추가 (카디널리티 축소를 위해 10년 단위로 묶음)
→ 유저들의 평점 평균이 8점인 것을 확인. 8점을 기준으로 추천하는 시스템을 고안하면서 8점 이상의 평점을 부여했는지 여부를 새로운 컬럼으로 추가 (Target)
- 수치형 데이터의 데이터 타입을 정수 및 실수 타입으로 변환
- 평점 결측치를 각 score 컬럼에서 얻은 정보로 채움
- 원작의 형태에 따라 유저들의 평점 평균이 다르다. (O)
→ 원작이 소설인 경우 평균적으로 7.75점을 주는 반면, 라디오가 원작인 경우 5.75점으로 상대적으로 2점이나 차이가 나는 것을 확인
- 애니메이션 타입에 따라 유저들의 평점 평균이 다르다. (O)
→ 무비 타입이 7.6점으로 가장 높고, 뮤직 타입이 6.5점으로 가장 낮은 점수를 보임. 영화와 티비 프로그램처럼 익숙한 타입과 그렇지 않은 타입간의 격차도 확인됨
- 추천 여부를 8점을 기준으로 나눌 것이므로 이진분류모델
- 기준 모델은 최빈 클래스로 지정
→ 기준 모델의 학습 데이터에 대한 정확도는 0.54
- XGBoost
→ 검증 결과 정확도 0.78로 기준 모델의 베이스라인 통과
- LightGBM
→ 검증 결과 정확도 0.78로 기준 모델의 베이스라인 통과
=> 근소하지만 XGBoost가 더 좋은 성능을 보였기 때문에 최종 모델은 XGBoost로 결정
→ 최종적으로 교차검증을 통해 평가 데이터의 일반화 성능을 확인. 정확도 0.78로 측정됨
→ 각 유저당 평가한 모든 점수들의 평균값이 가장 큰 영향을 줌
Python
EDA
Feature Engineering
Data Manipulation
Data Visualization
XGBoost
LightGBM
Permutation Importance
PDP