Kohortanalys

Kundsegmentering i Python

Karolis Urbonas

Head of Data Science, Amazon

Heatmap för kohortanalys

Rader:

  • Första aktivitet
  • Här – förvärvsmånad

Kolumner:

  • Tid sedan första aktivitet
  • Här – månader sedan förvärv

Kohort-heatmap

Kundsegmentering i Python

Heatmap för kohortanalys

Rader:

  • Första aktivitet
  • Här – förvärvsmånad

Kolumner:

  • Tid sedan första aktivitet
  • Här – månader sedan förvärv

Kundsegmentering i Python

Data från näthandel

Över 500 000 transaktioner från en brittisk nätbutik.

Vi använder ett slumpmässigt urval på 20 % av denna datamängd under hela kursen.

OnlineRetail

Kundsegmentering i Python

De 5 översta raderna i data

online.head()

De 5 översta raderna

Kundsegmentering i Python

Tilldela kohortkohort för förvärvsmånad

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-kohort-tillagd

Kundsegmentering i Python

Extrahera heltalsvärden från data

Definiera en funktion som extraherar heltalsvärdena year, month och day.

Den används genomgående i kursen.

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
Kundsegmentering i Python

Tilldela tidsoffsetvärde

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-tidsoffset-tillagd

Kundsegmentering i Python

Räkna månatligt aktiva kunder per 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)
Kundsegmentering i Python

online-pivot-antal

Kundsegmentering i Python

Nu kör vi en övning!

Kundsegmentering i Python

Preparing Video For Download...