Recency, frequency, monetary (RFM) विभाजन

Python में Customer Segmentation

Karolis Urbonas

Head of Data Science, Amazon

RFM विभाजन क्या है?

तीन मेट्रिक पर आधारित व्यवहारिक ग्राहक विभाजन:

  • Recency (R)
  • Frequency (F)
  • Monetary Value (M)
Python में Customer Segmentation

RFM मानों की ग्रुपिंग

RFM मानों को कई तरीकों से समूहित किया जा सकता है:

  • Percentiles, जैसे quantiles
  • Pareto 80/20 कट
  • कस्टम - बिज़नेस ज्ञान पर आधारित

हम percentile-आधारित ग्रुपिंग लागू करेंगे।

Python में Customer Segmentation

Percentiles का संक्षिप्त रिव्यू

Percentiles निकालने की प्रक्रिया:

  1. उस मेट्रिक पर ग्राहकों को sort करें
  2. ग्राहकों को बराबर आकार के तय संख्या के समूहों में बाँटें
  3. हर समूह को एक लेबल दें
Python में Customer Segmentation

Python से percentiles की गणना

आठ CustomerID और रैंडम निकाले गए Spend वैल्यू वाला डेटा।

dummy_percentile_data

Python में Customer Segmentation

Python से percentiles की गणना

spend_quartiles = pd.qcut(data['Spend'], q=4, labels=range(1,5))

data['Spend_Quartile'] = spend_quartiles
data.sort_values('Spend')

Python में Customer Segmentation

लेबल असाइन करना

  • सर्वश्रेष्ठ मेट्रिक को सबसे ऊँचा स्कोर दें - पर best हमेशा highest नहीं होता, जैसे recency
  • इस केस में लेबल उल्टा है - ग्राहक जितना हाल का, उतना बेहतर

Python में Customer Segmentation

लेबल असाइन करना

# 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')
Python में Customer Segmentation

लेबल असाइन करना

जैसा आप देख रहे हैं, क्वार्टाइल लेबल उल्टे हैं, क्योंकि हाल के ग्राहक अधिक मूल्यवान हैं।

recency_quartiles

Python में Customer Segmentation

कस्टम लेबल

उपयोग के हिसाब से हम स्ट्रिंग या अन्य किसी वैल्यू की सूची बना सकते हैं।

# 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 में Customer Segmentation

कस्टम लेबल

हर क्वार्टाइल को कस्टम लेबल असाइन किए गए हैं

Recency_quartiles

Python में Customer Segmentation

Percentiles के साथ अभ्यास करते हैं!

Python में Customer Segmentation

Preparing Video For Download...