خانه » تجزیه و تحلیل مشتریان مبتنی بر مدل RFM

تجزیه و تحلیل مشتریان مبتنی بر مدل RFM

امروزه برای اینکه یک متخصص بازاریابی موفق باشید ، تجزیه و تحلیل بازاریابی امری ضروری است. بنابراین ، کارشناسان بازاریابی با دانش اقتصاد و آمار معمولاً جایگاه شغلی بهتری نسبت به سایر بازار یاب ها دارند. اما اگر سواد مناسب برای بازار یابی و فروش ندارید ، یک روش تجزیه و تحلیل بازار یابی با کمک علم داده وجود دارد که می توانید از آن استفاده کنید.
مدل RFM ابزاری برای تحلیل مشتریان است که برای تعیین بهترین مشتریان استفاده می شود. مدل RFM بر اساس 3 فاکتور کمی ساخته شده است. R یا Recency نشان می دهد مشتری اخرین بار کی خرید کرده است. F یا فرکانس می گوید مشتری هر چند وقت یکبار خرید می کند. در اخر M یا مبلغ، نشان می دهد مشتری چقدر پول خرج می کند.
در این مقاله قصد داریم با یک مثال عملی با استفاده از پایتون مدل RFM را بر روی یک مجموعه داده پیاده کنیم.

مجموعه داده های مورد استفاده در این مقاله را می توانید از لینک زیر دریافت کنید.

مجموعه داده تحلیل مشتریان بر اساس مدل RFM

برای طراحی مدل ما با ستون های customer_id ، order_date و sales کار خواهیم کرد.

طراحی مدل RFM

طبق معمول اولین کار اضافه کردن کتابخانه های مورد نیاز است.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandasql import sqldf
from sklearn.preprocessing import scale
from scipy.cluster.hierarchy import linkage, dendrogram, cut_tree

فرمت تاریخ باید تغییر کند . همچنین بایستی مشخص شود اولین خرید در چه تاریخی بوده است.

df["order_date"] = df["order_date"].astype('datetime64[ns]')
print(df["order_date"].max(),"\n",df["order_date"].min())

همچنین یک ستون جدید ایجاد می کنیم و نام آن را days_since قرار می دهیم این کار برای نشان دادن روزهای آخرین خرید است.

df['days_since'] = (pd.Timestamp('2020-01-01') - df['order_date']).dt.days

این قسمت مهم ترین بخش این مقاله است. در اینجا درستورات SQL را درون کد پایتون قرار می دهیم. روش های مختلفی برای محاسبه rfm وجود دارد. در اینجا با استفاده از Group by ستون های r ,f و m را ایجاد می کنیم.

 

rfm = sqldf("SELECT customer_id, MIN(days_since) AS 'recency', COUNT(*) AS 'frequency', AVG(sales) AS 'amount' FROM df GROUP BY 1", globals())
rfm.head()
تجزیه و تحلیل مشتریان با مدل RFM

مصور سازی داده ها

rfm.recency.hist(bins=20)
مصورسازی داده ها
customers.frequency.hist(bins=6)
تعداد خرید مشتریان در مدل RFM
customers.amount.hist()
میزان خرید مشتریان در مدل RFM

نتایج بدست آمده از مدل RFM

۱. بیشتر مشتریان به تازگی خرید کرده اند.

۲.بیشتر مشتریان فقط یک بار به فروشگاه آمده اند و در طول سال به ندرت بیش از 2 بار مراجعه می کنند ، این بدان معناست که کارهای زیادی در زمینه تحلیل مشتریان باید انجام شود.

حال داده های متشریان را در یک دیتا فریم جدید می ریزیم و customer_id را به عنوان اندیس آن قرار می دهیم.

new_data = rfm
new_data = new_data.set_index(new_data.customer_id).iloc[:,1:4]

سپس از مقدار مجموع خرید لگاریتم گرفته و نمودار plot آن را رسم می کنیم.

new_data.amount = np.log(new_data.amount)
new_data.amount.hist(bins=7)
مجموع خرید

استاندارد سازی متغییر ها

new_data = pd.DataFrame(scale(new_data), index=new_data.index, columns=new_data.columns)
new_data.head()
استاندارد سازی متغییر ها

طبقه بندی سلسله مراتبی

از داده ها استاندار شده ۱۰٪ نمونه جدا می کنیم و آن ها را خوشه بندی می کنیم.

new_data_sample = new_data.iloc[::10, :]
c = linkage(new_data_sample, method='ward')

سپس تعداد خوشه ها را ۳ قرار می دهیم.

members = pd.DataFrame(cut_tree(c, n_clusters = 3), index=new_data_sample.index, columns=['ClusterNumber'])
members.ClusterNumber.value_counts(sort=False)
طبقه بندی سلسله مراتبی

10 نمونه اول را نمایش می دهیم.

members.iloc[0:10]
خروجی ۱۰ مشتری اول

نتیجه گیری

با استفاده از داده های بدست آمده می توان اطلاعات مشتریان را به خوبی تحلیل کرد و استراژی هایی برای افزایش فروش مجموعه طراحی کرد. مثلا مشتریان که قبلا خرید خوبی داشته اند ولی مدتی از اخرین خرید آن ها می گذرد، بایستی با روش های تشویقی ترقیب شوند مجددا خرید کنند. به همین ترتیب با تحلیل های متنوع می توان می توان افزایش فروش مجموعه را افزایش داد.

 

در همین راستا می توانید مقاله تحلیل رفتار مصرف کننده: کلیک بر روی تبلیغات را مطالعه کنید

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به بالای صفحه بردن