오랜만에 데이터를 내 의도되로 가공하게되어서 약간 낯설고 떨린다..
KKBOX는 구독 기반의 음악 스트리밍 서비스입니다.
사용자가 서비스에 가입할 때, 사용자는 수동, 자동 구독 갱신을 선택해야만 합니다. 또한 사용자는 언제든지 멤버십을 취소할 수 있습니다.
Churn/Renewal는 KKBox의 구독 모델로 인해 까다로울 수 있습니다.
KKBox의 구독 기간은 대부분 30일이기 때문에, 많은 사용자가 매월 다시 구독을 하게 됩니다.
Churn/Renewal을 결정하는 주요 필드는 transaction date, membership expiration date, is_cancel 입니다.is_cancel 필드는 사용자가 구독을 직접 취소하는지 여부를 나타냅니다.
Subscription cancellation 필드는 사용자가 이탈했음을 의미하지 않고, 요금제 변경등의 사유로 가입을 해지 할 수 있습니다.
Churn의 기준은 구독이 만료된 이후, 30일 이내 신규 서비스 가입이 없는 경우입니다.
*transaction date를 기준으로 데이터가 분할되었음
구독이 만료된 후 고객의 이탈할지 여부를 예측
(Specifically, 만료일로부터 30일 이내 구독여부를 예측)
- 업데이트
2017년 11월 6일부로 2017년 4월 사용자 이탈을 예측하기 위해 테스트 데이터를 새로 고쳤습니다.
서치를 해보니, v2는 17년 3월 데이터가, v2가 아닌것은 2월 데이터이다. 뭔가 이상하더라니;; v2의 설명은 중복이니 생략하돼, 대회 참여는 v2 데이터 셋으로 진행하겠다.
고객별 Churn 데이터
- is_churn
30일 이내 구독 갱신 여부로 정의
1 : 이탈, 0 : 갱신
제출 예시용 샘플 데이터 셋, Train.csv와 동일한 형식
listening behaviors를 기록한 일일 사용자 로그.
고객 정보. 데이터 셋의 모든 사용자 정보가 있는 것은 아니다. (체크 필요)
실제 이탈 행동은 없고, 스냅샷으로 추출하였다.
(특정 시점에서 추출하였다.)
고객의 결제(거래) 정보
데이터 파일 중에 WSDMChurnLabeller.scala가 포함되어 있다. 해당 코드는 테스트 데이터 세트의 레이블을 생성하는 데 사용한 코드이다. 이 코드는 무시하고 진행을 하도록 하겠다. (scala, spark를 사용할 줄 모른다.)