Сегментация клиентов в Python
Karolis Urbonas
Head of Data Science, Amazon
Поведенческая сегментация клиентов на основе трёх метрик:
RFM-значения можно группировать несколькими способами:
Мы будем использовать группировку на основе перцентилей.
Процесс вычисления перцентилей:
Данные с восемью CustomerID и случайно сгенерированными значениями Spend.
spend_quartiles = pd.qcut(data['Spend'], q=4, labels=range(1,5))data['Spend_Quartile'] = spend_quartilesdata.sort_values('Spend')
# Create numbered labels r_labels = list(range(4, 0, -1))# Divide into groups based on quartiles recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels)# Create new column data['Recency_Quartile'] = recency_quartiles# Sort recency values from lowest to highest data.sort_values('Recency_Days')
Как видите, метки квартилей инвертированы: чем недавнее покупка, тем ценнее клиент.
Можно задать список строковых или любых других значений в зависимости от задачи.
# Create string labels r_labels = ['Active', 'Lapsed', 'Inactive', 'Churned']# Divide into groups based on quartiles recency_quartiles = pd.qcut(data['Recency_Days'], q=4, labels=r_labels) # Create new column data['Recency_Quartile'] = recency_quartiles # Sort values from lowest to highest data.sort_values('Recency_Days')
Пользовательские метки, присвоенные каждому квартилю
Сегментация клиентов в Python