Analisis kohort

Segmentasi Pelanggan dengan Python

Karolis Urbonas

Head of Data Science, Amazon

Heatmap analisis kohort

Baris:

  • Aktivitas pertama
  • Di sini: bulan akuisisi

Kolom:

  • Waktu sejak aktivitas pertama
  • Di sini: bulan sejak akuisisi

Heatmap kohort

Segmentasi Pelanggan dengan Python

Heatmap analisis kohort

Baris:

  • Aktivitas pertama
  • Di sini: bulan akuisisi

Kolom:

  • Waktu sejak aktivitas pertama
  • Di sini: bulan sejak akuisisi

Segmentasi Pelanggan dengan Python

Data ritel online

Lebih dari 0,5 juta transaksi dari toko ritel online berbasis di Inggris.

Kita akan menggunakan sampel acak 20% dari dataset ini sepanjang kursus.

RitelOnline

Segmentasi Pelanggan dengan Python

5 baris data teratas

online.head()

5 baris teratas

Segmentasi Pelanggan dengan Python

Tetapkan bulan akuisisi kohort

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

Segmentasi Pelanggan dengan Python

Ekstrak nilai bilangan bulat dari data

Definisikan fungsi untuk mengekstrak nilai bilangan bulat year, month, dan day.

Kita akan menggunakannya sepanjang kursus.

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
Segmentasi Pelanggan dengan Python

Tetapkan nilai offset waktu

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

Segmentasi Pelanggan dengan Python

Hitung pelanggan aktif bulanan 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)
Segmentasi Pelanggan dengan Python

online-pivot-counts

Segmentasi Pelanggan dengan Python

Sekarang giliran Anda membuat beberapa kohort!

Segmentasi Pelanggan dengan Python

Preparing Video For Download...