- 프로젝트명: 구매 성향에 따른 분류와 그에 따른 마케팅 방안 제시
- 기간: 2024-06-17~24
- 활용 데이터: https://www.kaggle.com/datasets/quangvinhhuynh/marketing-and-retail-analyst-e-comerce
마케팅 실무에 가장 가까운 내용이며, 실무에 투입하게 된다면 가장 기본적으로 분석해야하는 내용으로 확인되어 이 데이터를 선정 후 분석하게 되었다.
이번 프로젝트에서는 전처리 후 군집분석을 하여 우리가 놓치고 있는 중요한 고객의 패턴을 확인하여 새로운 기준에 따라 유저를 그룹화를 한 후 그 기준을 통해 인사이트를 찾고, 마케팅 방안까지 생각해보았다.
프로젝트 요약
- 프로젝트 소개: 머신러닝 기능을 사용하여 기존에 발견하지 못한 새로운 기준에 따라 유저를 그룹화 한 후 그에 따른 마케팅 방안 제시
- 사용 스킬 & 도구
프로그래밍 언어: Python, SQL
분석 도구: Pandas, NumPy, Scikit-learn, Matplotlib, Seaborn, StandardScaler, Yellowbrick, MySQL
코드 실행 및 결과 시각화: Jupyter Notebook, Dbeaver - 문제 해결 프로세스
문제 정의: 놓치고 있었던 기존 고객 분류를 찾아내고, 그에 따른 마케팅 방안 제시
데이터: Marketing and Retail Analyst E-commerce Dataset(123,205 row | 22 column)
데이터 전처리: Pandas, SQL 를 사용하여 이상치, 결측치 처리 및 Main Table 생성
데이터 분석: 분류의 정확도를 높이기 위한 파생 변수 생성 후, Scikit-learn 을 사용한 클러스터 분석
추가 분석: 분류된 군집 중, 목표와 부합한 군집에 대한 마케팅 방안 제시 - 결과 및 성과
군집 별 인사이트를 도출하고, 그에 따라 세부 데이터를 분석
특정 군집에서 기존의 개념과 다른 양상을 보이는 군집을 발견하였음
1. 프로젝트 목적
- 데이터 분석을 통해 고객의 소비 성향을 파악하고 기준을 새로 정의 후 마케팅 방안 제시
2. 데이터 소개
- 데이터 수집: kaggle
- 데이터 소개: Marketing and Retail Analyst E-comerce
- customers(4 Column, 99441 Row)
- orders(7 Column, 99441 Row)
- payments(5 Column, 103886)
- order_items(6 Column, 112650 Row)
- products(6 Column, 32949 Row)
3. 데이터 전처리
- 데이터 결측치 처리
- Products: (product_category_name, product_weight_g ) / 무게가 0인 경우 결측치로 분류
- Orders: (order_delivered_timestamp, order_approved_at) / 주문이 확정되지 않았거나, 배송완료되지 않은 것은 주문 건이 완료되지 않은 것으로 판단
- Payments: (payment_type) / not-defined 값 존재, 결제수단을 알 수 없으므로 결측치로 분류
- 데이터 이상치 처리
- payment_installments: 0~24 의 값 중 0과 1이 둘다 일시불이란 뜻이 될 수 있으므로 0을 이상치로 판단후 1로 변환
- payment_sequential: 약 95% 이상의 행이 3 이하의 값이며, 실생활에서 분할 결제시 3회 정도라고 판단후 4 이상의 값은 이상치로 판단 후 drop 처리
→ 전처리 완료 후 join
4. 파생변수 및 데이터 스케일링
- 데이터 범위 지정
- order_delivered_timestamp: 상품이 배송된 시점을 나타내는 컬럼으로 배송완료 = 주문건 종결로 판단, 매출 발생의 기준 컬럼으로 사용함
- 정확한 고객 구매성향 파악을 위해 주문이 확정된(=배송이 완료된) 컬럼만을 사용함
- 분석 목표에 따라 고객의 최신 주문 정보를 담고 있는 2018년 데이터만을 사용함
- 파생변수 생성
- total_price(제품 당 주문 금액): 구매갯수 * (가격+배송료)
- order_cnt(고객 당 주문 건수): 고객 ID 당 주문 ID 의 갯수
- avg_order_hour(평균 주문 시간)
- lead_time(주문일과 배송완료일 간 차이): 배송 완료 일자 - 주문 일자
- delivery_datediff(실 배송일 수 차이): 배송완료일 - 예상배송일[더 빨리 도착한 것은 양수(+) 로 표현]
- product_volume(제품의 부피): 길이*너비*높이
- priceper100g(100g당 제품 가격): (제품 별 주문 금액/무게) * 100
- sum_payment(총 결제 금액)
- 중복값 제거
- product_id 중복 제거: 한 주문 건에 중복되는 경우 더 높은 금액을 가지는 product_id 를 total_price(구매 개수*(가격+배송비)) 로 지정함으로써 중복값 제거
- 여러 종류의 제품을 구매한 경우(product_id 여러개)
- 한 상품을 여러 개 구매했을 경우(product_id 중복적으로 n개)
- product_id 중복 제거: 한 주문 건에 중복되는 경우 더 높은 금액을 가지는 product_id 를 total_price(구매 개수*(가격+배송비)) 로 지정함으로써 중복값 제거
→ 고액 결제를 하는 고객을 식별할 수 있고,
각 고객의 최대 구매력을 알기 위해 높은 금액의 total_price 를 남기기로 하였다.
-
- order_id 중복 제거: 고액 결제를 하는 고객을 식별하고, 객단가 관리 및 마케팅 전략 수립에 유리
- 한 고객이 여러번 주문을 한 경우(order_id 중복): 고객 당 하나의 주문만을 남기기 위해 최종 결제 금액이 높은 주문건 선택
- order_id 중복 제거: 고액 결제를 하는 고객을 식별하고, 객단가 관리 및 마케팅 전략 수립에 유리
- 데이터 표준화
- 표준화에 사용된 컬럼 리스트
- 주문/결제:
- max_sequential
- max_installment
- sum_payment
- total_price
- order_cnt
- priceper100g
- 배송/시간:
- lead_time
- delivery_datediff
- avg_order_hour
- 상품:
- product_weight_g
- product_length_cm
- product_length_cm
- product_width_cm
- product_volume
5. 분석 과정 및 검증
- 초기 설정값 확인
- 클러스터링 컬럼 설정:
- max_installment
- sum_payment
- lead_time
- delivery_datediff
- avg_order_hour
- total_price
- product_weight_g
- product_length_cm
- product_height_cm
- product_width_cm
- product_volume_㎤
- 주성분 개수 선정:
- 주성분 개수: 6개
- 설명력: 85%
- K 값(군집개수) 선정:
- 엘보우포인트를 통한 K 값: 6
- k 값 범위 조정 (3,10)
- 클러스터링 컬럼 설정:
- Clustering
- 2차원 Scatter Plot 생성: 군집 분포를 확인하기 위해 2차원 그래프 생성
- Line Plot 생성: 군집별 특성 확인을 위한 라인 플롯 생성
- 0번 군집: 오후 시간 구매 선호(light user)
- average_order_hour 에서 큰 양의 값을 보여주므로, 오후시간에 구매를 선호하는 유저로 판단
- 1번 군집: 배송 시간 고려 X
- lead_time이 양의 값으로 크게 치솟았고, delivery_datediff 에서는 음수로 크게 감소하였으므로 두 변수와 관련있는 유저로 판단/ 배송 기간에 영향을 받지 않는 유저이며 빠른 배송이 필요없을 것으로 추측
- 2번 군집: 안정적, 유보적 구매자
- max_installment 값이 가장 큰, 할부 기간이 가장 긴 집단이며 total_price,sum_payment 값도 높음 / 비교적 비싼 제품에 대해 할부를 적극적으로 이용하는 유보적 성향의 고객들로 이루어진 군집으로 판단
- 3번 군집: 오전 시간 구매 선호(light user)
- average_order_hour 에서 양의 값을 보여주므로, 오전시간에 구매를 선호하는 유저로 판단
- 4번 군집: 비싸고 큰 제품
- total_price 값이 높고, product_weight, width, volume 값이 크게 나타남 / 비싸고 큰 제품군을 구매하는 유저로 판단
- 5번 군집: 특정 사이즈의 제품
- 제품의 사이즈와 무게를 나타내는 지표만 다소 높게 나타내는 것으로 보아 특정 사이즈의 제품을 구매하는 유저로 추측
→ 모든 군집에 대해 분석해본 결과
기존의 개념이 아닌, 다른 결과를 보여준 2번 군집에 대해 마케팅 방안 제시
2번 군집 선정 이유:
할부 개월 수가 군집 중에 가장 높아, 유보적 소비성향을 갖은 유저로 추측하였으나
실 데이터 분석시, 오히려 비싸더라도 원하는 제품에 대하여 과감히 소비하고
비교적 금액이 낮고, 필수품으로 분류되는 제품에 대해서는 할부를 적극적으로 이용하는 정반대의 성향을 보였음
⇒ 유보적일 것이라고 생각하였으나, 오히려 과감히 소비하는 결제성향을 보임
6. 결론 및 마케팅 방안
- 주문 수량 기준 (TOP10)
- 1위 toys, 2위 watches_gifts, 3위 health_beauty
- 다른 군집에 비해 고가의 제품을 많이 구매함
- 비교적 낮은 주문 금액의 제품(가구, 주방용품) 에 대한 할부 개월이 더 높은 편
→필수품 보다 본인의 관심사에 맞는 제품에 대해 과감하게 소비
- 주문 빈도 기준
- 주문 빈도가 다른 군집에 대해 비교적 잦은편(평균 1.05 회로 군집들 중 1위)
- 주문 빈도 3회 이상인 고객들의 평균 주문 금액이 월등히 높으며, 할부 개월 수가 점점 줄어드는 경향을 보임
- lead_time 이 비교적 짧고, 예상 배송일 보다 평균 14일 빠르게 배송됨
→ 본인의 관심사에 대한 과감한 소비와 즉각적인 만족을 추구하는 특성
- 주문 기간 기준 (TOP 10)
- 주 주문 시간은 오전 10시~오후7시로 비교적 이른 오후 시간에 집중적으로 이루어짐
- 오후2시, 4시 오후6~7시에 주문 금액이 높은 편
- 오후 2시, 4시는 주문 금액이 더 높은 데 반해 할부 개월이 비교적 높지 않음(마니악 소비 활성 시간)
- 오후 6~7시에는 2시,4시에 비해 주문 금액은 낮지만 할부 개월이 0.4개월 정도 높음(필수품 소비 활성 시간)
→ 시간대 별로 다른 액션플랜 필요
- 결제 수단 기준
- 신용카드를 통한 결제가 가장 많기는 하지만, 결제 수단별 평균 주문 금액 차이가 약7배 가량 차이 남
- 할부 개월 수가 가장 높다는 군집적 특성을 가지고 있지만, 오히려 높은 금액일 때 할부를 이용하지 않는 아이러니한 구매 경향을 보이고 있음
→ 관심사에 맞는 제품에 대한 과감한 소비 뒷받침
- 2번 군집 요약
- 자신의 관심사에 맞는 제품에 대해 적극적으로 소비한다.
- 비싸더라도 자신이 원하는 제품에 대해 과감히 소비한다.
- 리드타임에 민감하고 즉각적인 만족감을 추구한다.
- 마케팅 방안
- 리미티드 에디션, 한정판 굿즈 제작: 장난감, 고급시계, 컴퓨터용품 등의 리미티드 에디션을 제작하여 소비 촉진
- 무신사의 구독회원 전용 구매아이템
- 마니아층 공략을 위한 콜라보레이션 한정판 진행
- 배송 관련 구독 서비스: 구독제를 도입하여, 구독한 회원에 한해 빠른 배송 시스템 제공, 이로인한 즉각적인 소비
- 쿠팡의 로켓와우회원전용 배송
- 활성 유저별 맞춤 마케팅 혜택 알림 서비스
- 오후2시,4시(마니아층 이용): 리미티드 에디션 발매알림, 구독 첫 달 100원 딜, 구매금액별 혜택 제공
- 오후6시,7시(필수품 집중 구매): 가구/생활용품 기획전, 가격 할인 쿠폰 제공 등
- 리미티드 에디션, 한정판 굿즈 제작: 장난감, 고급시계, 컴퓨터용품 등의 리미티드 에디션을 제작하여 소비 촉진
→ 위 마케팅 방안을 통해 집중과 관심도를 올릴 수 있다면 좋은 매출증대 효과를 노릴 수 있습니다.
7. 별첨
- 아쉬운점
- 데이터 컬럼에 대한 추가 설명(ex. 컬럼 설명서) 필요 → 유관 부서와의 공유 데이터 디테일 및 스케일 up
- 고객에 대한 더 상세한 데이터의 필요성 → 선택 정보 수집을 통한 CRM 마케팅 도입/활용 추진
- 퍼널 분석을 추가 활용할 수 있도록 유입 관련( 진입률, CTR,이벤트 참여율 등) 데이터가 있다면 고객 패턴에 대한 더 상세한 분석이 가능 할 것으로 기대 → 고객 활동 로그에 대한 데이터 추가 수집 필요
- 인사이트에 활용할 수 있는 추가 지원 필요 → 타 기관(DMC 등) 에 등록된 레포트 열람 포인트 지원 등
KPT 회고
https://lyj-01.tistory.com/194
'Project' 카테고리의 다른 글
[Team Project] 성장기 도약의 KEY가 되는 신규 가입자 유치 전략 (3) | 2024.08.27 |
---|---|
[Team Project] Amazon Fresh 의 미래, 세그먼트별 수익성 개선 전략 수립 (0) | 2024.07.12 |
[Team Project] 은행 고객데이터를 이용한 서비스 분석 (0) | 2024.05.23 |
[Mini Team Project] 상품 판매 데이터 분석에 따른 판매 상품 추천 (1) | 2024.04.19 |