Kohort analizi

Python ile Müşteri Segmentasyonu

Karolis Urbonas

Head of Data Science, Amazon

Kohort analizi ısı haritası

Satırlar:

  • İlk etkinlik
  • Burada: edinim ayı

Sütunlar:

  • İlk etkinlikten beri geçen süre
  • Burada: edinimden beri geçen aylar

Kohort ısı haritası

Python ile Müşteri Segmentasyonu

Kohort analizi ısı haritası

Satırlar:

  • İlk etkinlik
  • Burada: edinim ayı

Sütunlar:

  • İlk etkinlikten beri geçen süre
  • Burada: edinimden beri geçen aylar

Python ile Müşteri Segmentasyonu

Çevrimiçi perakende verisi

Birleşik Krallık merkezli çevrimiçi bir perakende mağazasından 0,5 milyondan fazla işlem.

Ders boyunca bu veri kümesinin rastgele örneklenmiş %20’lik bir alt kümesini kullanacağız.

OnlineRetail

Python ile Müşteri Segmentasyonu

Verinin ilk 5 satırı

online.head()

İlk 5 satır

Python ile Müşteri Segmentasyonu

Edinim ayı kohortunu ata

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()

ilk5-kohort-ekli

Python ile Müşteri Segmentasyonu

Veriden tamsayı değerleri çıkarın

year, month ve day tamsayılarını çıkartan bir işlev tanımlayın.

Bunu ders boyunca kullanacağız.

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
Python ile Müşteri Segmentasyonu

Zaman ofset değerini ata

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()

ilk5-zaman-ofset-ekli

Python ile Müşteri Segmentasyonu

Her kohort için aylık aktif müşteri sayısını hesaplayın

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)
Python ile Müşteri Segmentasyonu

online-pivot-counts

Python ile Müşteri Segmentasyonu

Sıra sizde: bazı kohortlar oluşturun!

Python ile Müşteri Segmentasyonu

Preparing Video For Download...