본문 바로가기
Data/[스파르타 내일배움캠프]

[TIL]본캠프 72일차&73일차

by MIN_JOON 2024. 7. 30.
  • 인구 통계학적 세그멘테이션
    • 사용기기, 연령, 성별, 소득과 같은 공통된 간단한 특성을 바탕으로 여러 그룹으로 나누는 방법
    • 빠르게 세그멘테이션을 진행할 수 있으며, 가장 널리 알려진 간단한 방법
    • 제한적인 데이터를 활용해야할 상황에 사용 가능
  • 위치적 세그멘테이션
    • 고객을 국가, 지역, 도시와 같은 위치 및 장소에 따라 여러 그룹으로 나누는 방법
    • 모빌리티, 배달 산업과 같은 GIS 기반 위치가 중요한 산업에서 활용
  • 심리적 세그멘테이션
    • 고객을 라이프스타일, 관심사, 가치 및 태도에 따라 여러 그룹으로 분할
    • 이커머스 산업에서 많이 활용
  • 고객 행동 세그멘테이션
    • 고객의 행동 데이터 기반으로 분할하는 방법
    • 다양한 사용 패턴, 브랜드 충성도, 마케팅 채널에 대한 반응률 등과 같은 기준으로 분할 가능
  • 최종 프로젝트 코호트 분석
    • 코호트 기준: 해당 연도 첫 구매자
    • 1년 기준 리텐션을 파악하기 위해 리텐션 차트 작성
#코호트 리텐션 차트 그리기
pre_cohort = main_order[['customer_id','order_date']]
pre_cohort['order_period'] = pre_cohort['order_date'].dt.strftime("%Y")
pre_cohort.set_index('customer_id',inplace=True)
FirstOrder = pre_cohort.groupby(pre_cohort.index)['order_date'].min()
FirstOrder = FirstOrder.dt.strftime("%Y")
pre_cohort['first_order'] = FirstOrder
pre_cohort.reset_index(inplace=True)
grouped = pre_cohort.groupby(['first_order','order_period'])
cohorts = grouped['customer_id'].nunique()
cohorts = cohorts.reset_index()

cohorts.rename(columns={'customer_id':'total_users'},inplace=True)

each_period = cohorts['first_order'].value_counts().sort_index()
cohortperiod = []
for x in each_period:
  for y in range(x):
    cohortperiod.append(y)
cohorts['cohort_period'] = cohortperiod
cohorts.set_index(['first_order','cohort_period'],inplace=True)
cohorts = cohorts['total_users'].unstack(1)

user_retention = cohorts.divide(cohorts[0],axis=0)
plt.figure(figsize=(12,8))
plt.title("리텐션 분석",fontsize = 20)
sns.heatmap(user_retention,annot=True,fmt=".0%")
plt.show()

'Data > [스파르타 내일배움캠프]' 카테고리의 다른 글

[TIL]본캠프 75일차  (0) 2024.08.01
[TIL]본캠프 74일차  (2) 2024.07.31
[WIL]본캠프 15주차  (0) 2024.07.26
[TIL]본캠프 71일차  (0) 2024.07.26
[TIL]본캠프 70일차  (0) 2024.07.25