Kohortová analýza

Segmentace zákazníků v Pythonu

Karolis Urbonas

Head of Data Science, Amazon

Teplotní mapa kohortové analýzy

Řádky:

  • První aktivita
  • Zde – měsíc akvizice

Sloupce:

  • Čas od první aktivity
  • Zde – měsíce od akvizice

Teplotní mapa kohorty

Segmentace zákazníků v Pythonu

Teplotní mapa kohortové analýzy

Řádky:

  • První aktivita
  • Zde – měsíc akvizice

Sloupce:

  • Čas od první aktivity
  • Zde – měsíce od akvizice

Segmentace zákazníků v Pythonu

Data online obchodu

Více než 500 000 transakcí z britského online obchodu.

V kurzu budeme používat náhodný 20% vzorek tohoto datasetu.

OnlineRetail

Segmentace zákazníků v Pythonu

Prvních 5 řádků dat

online.head()

Prvních 5 řádků

Segmentace zákazníků v Pythonu

Přiřazení kohorty podle měsíce akvizice

def get_month(x): return dt.datetime(x.year, x.month, 1)

online['InvoiceMonth'] = online['InvoiceDate'].apply(get_month)
grouping = online.groupby('CustomerID')['InvoiceMonth']
online['CohortMonth'] = grouping.transform('min')
online.head()

top5-cohort-added

Segmentace zákazníků v Pythonu

Extrakce celočíselných hodnot z dat

Definujte funkci pro extrakci celočíselných hodnot year, month a day.

Bude použita v celém kurzu.

def get_date_int(df, column):
    year = df[column].dt.year
    month = df[column].dt.month
    day = df[column].dt.day
    return year, month, day
Segmentace zákazníků v Pythonu

Přiřazení hodnoty časového posunu

invoice_year, invoice_month, _ = get_date_int(online, 'InvoiceMonth') 
cohort_year, cohort_month, _ = get_date_int(online, 'CohortMonth')

years_diff = invoice_year - cohort_year months_diff = invoice_month - cohort_month
online['CohortIndex'] = years_diff * 12 + months_diff + 1 online.head()

top5-time-offset-added

Segmentace zákazníků v Pythonu

Počet měsíčně aktivních zákazníků v každé kohortě

grouping = online.groupby(['CohortMonth', 'CohortIndex'])

cohort_data = grouping['CustomerID'].apply(pd.Series.nunique)
cohort_data = cohort_data.reset_index()
cohort_counts = cohort_data.pivot(index='CohortMonth', columns='CohortIndex', values='CustomerID')
print(cohort_counts)
Segmentace zákazníků v Pythonu

online-pivot-counts

Segmentace zákazníků v Pythonu

Nyní je řada na vás – sestavte kohorty!

Segmentace zákazníků v Pythonu

Preparing Video For Download...