Ответ
В проекте по анализу поведения пользователей мобильного приложения использовал RFM-сегментацию (Recency, Frequency, Monetary) для разделения клиентов на группы по активности и ценности.
Пример кода на Python:
import pandas as pd
# Рассчитываем метрики для каждого пользователя
rfm = df.groupby('user_id').agg({
'purchase_date': 'max', # Recency
'order_id': 'count', # Frequency
'revenue': 'sum' # Monetary
})
# Нормализуем и присваиваем квантили
rfm['R'] = pd.qcut(rfm['purchase_date'].rank(method='first'), q=5, labels=[5, 4, 3, 2, 1])
rfm['F'] = pd.qcut(rfm['order_id'], q=5, labels=[1, 2, 3, 4, 5])
rfm['M'] = pd.qcut(rfm['revenue'], q=5, labels=[1, 2, 3, 4, 5])
# Общий RFM-сегмент
rfm['RFM'] = rfm['R'].astype(str) + rfm['F'].astype(str) + rfm['M'].astype(str)
Также применял поведенческое сегментирование (новые/вернувшиеся/потерянные пользователи) и продуктовое (по категориям товаров).