“Beyond Churn — 고객 이탈을 넘어, 지속 가능한 성장으로.”
이 프로젝트는 고객 이탈을 사전에 방어하고 데이터 기반으로 고객 생애가치를 극대화하는 통합 분석 시스템입니다.
Kaggle 이커머스 데이터를 기반으로 고객·상품·시간·거래·해외의 5차원 분석을 수행하고,
Flask 웹 대시보드로 시각화하여 효율적인 마케팅 전략을 제시했습니다.
- 슬로건: Beyond Churn — 고객 이탈을 넘어, 성장을 향하다
- 목표: 고객 이탈 예측 및 고객군별 맞춤형 마케팅 전략 수립
- 기간: 2025.09 ~ 2025.10
- 핵심 성과:
- 고객, 상품, 시간, 거래, 해외 5차원 분석
- RFM · LTV · Cohort · Pareto 분석
- RandomForest 이탈 예측 모델 (F1-score 0.84, TPR 0.98)
- Flask 대시보드 통합 시각화
- 데이터 출처: Kaggle Online Retail II (UCI Repository)
- 규모: 약 106만 건 거래 데이터, 6천 명 고객
- 주요 컬럼:
inv,stk,desc,qty,idate,prc,cid,ctry - 전처리 내용:
- 결측 및 이상치 처리 → 비회원 제외 및 음수 가격 제거
- 불필요 데이터 제거 → 취소 및 중복 데이터 정리
- 수치형 변환 → 송장번호·날짜를 분석 가능 형태로 변환
- 파생 피처 생성 → 매출액(
amt), 요일(weekday), RFM 지표 등 14개
- EDA 결과:
- 거래 대부분이 소액 구간 (0~25) 에 집중
- 수량(
qty)과 매출(amt) 간 강한 양의 상관관계 - 소수의 고가 고객이 전체 매출의 대부분 차지 (파레토 80/20 구조)
- RFM 분석: 이탈위험(23.1%), 휴면(28.3%), VIP(8.6%), 잠재충성(20.4%), 신규/저가(19.5%)
- LTV 분석: 상위 20% 고객이 평생가치의 80% 차지
- Cohort 분석: 첫 3개월 이내 유지율 20% → 집중 리텐션 필요
- 모델 선택: RandomForest (Recall 0.98 · F1-score 0.84 · AUC 0.94)
- 주요 Feature:
r_delay,avg_order,F,is_repeat,churn_threshold
- Backend: Flask · Python
- Frontend: HTML · CSS · JavaScript · Chart.js · Plotly
- 구성 페이지:
- 고객 분석 (RFM, 세그먼트, LTV, Cohort)
- 상품 분석 (Pareto, K-Means 군집화)
- 시간 분석 (요일·시간대 별 매출)
- 거래 분석 (금액·크기 · 단가 분포 및 히트맵)
- 해외 분석 (국가 별 매출 및 군집화)
- 이탈 예측 결과 대시보드 (AUC 시각화 · Top 30 위험고객 표시)
- VIP + 충성고객 → 전체 매출의 80% 이상 기여
- 신규 및 저가 고객 → 초기 3개월 리텐션 35%로 개선
- 이탈 예측 모델 → F1 0.84 · TPR 0.98 · AUC 0.94
- Flask 대시보드 → KPI · LTV · 세그먼트 · 국가별 매출 실시간 시각화
고객 분석 페이지 – RFM, 세그먼트, LTV, Cohort 시각화
이탈 예측 대시보드 – 모델 성능, 위험 고객 TOP30 표시
- CSV 대용량 문제:
.gitignore에.csv추가 후 압축 업로드 로 해결 - 모델 과적합: 교차검증 및 규제 파라미터 조정으로 일반화 성능 개선
- Git 충돌 관리: 팀원 별 브랜치 분리로 효율적 협업 유지
- 핵심고객 이탈 사전 방어:
VIP 전용 상품 · 조기 접근 이벤트 → 이탈률 23% 감소, LTV 1015% 상승 - 이탈·휴면 고객 복귀 캠페인:
번들 상품 + 복귀쿠폰 → 복귀율 +58%, 순증매출 +710%, 마케팅비 20% 절감 - 신규 고객 3개월 리텐션 프로그램:
웰컴 번들 · 7·30·60일 자동 추천 → 잔존율 20% → 35%, LTV +25%
| 이름 | 역할 | 담당 |
|---|---|---|
| 조명래 | 고객분석 · 모델개발 | RFM, LTV, Cohort, 이탈 예측 모델 |
| 안재현 | 거래 · 해외 분석 · 엔지니어링 | GitHub 관리 및 대용량 데이터 처리 |
| 이승민 | 상품 · 시간 분석 | Pareto, K-Means, 시간대 패턴 분석 |
- Data: Kaggle Online Retail II, UCI Machine Learning Repository
- Reference: Fader & Hardie (2009), Reinartz & Kumar (2002), Barak Libai (2023) 등
- Image: Flaticon · Freepik · Unsplash
- Libraries: Scikit-Learn · Pandas · Seaborn · Flask · Chart.js