CRM Analitiği — RFM Analizi ile Customer Segmentation
Herkese merhabalar, bu yazımda CRM Analitiğine giriş yapacağım ve RFM Analizi ile Customer Segmentation nasıl yapılır anlatmaya çalışacağım.
Öncelikle neden CRM Analitiği (Müşteri İlişkileri Yönetimi) gibi bir alan var ve neden şirketler için elzem bundan bahsedelim. CRM Analitiği kısaca bir şirketin müşterileriyle olan bütün iletişimleri ve ilişkilerini yönetmektir. Pazarlama faaliyetlerinin dili, rengi, marka algısı, müşterilerinin tüketim alışkanlıklarına göre reklam faaliyetleri vs. her biri CRM Analitiği kapsamında değerlendirilebilir. Şirketin mevcut veya potansiyel müşterileriyle olan ilişkileri yönetilir. Şirket içi oluşan verilerin analizi sonucu kurum politikasına göre stratejiler geliştirilebilir, karar alma süreçleri yönetilebilir. CRM süreçlerinde amaç karlılığı arttıracak kararları alabilmek ve öngörüler oluşturmaktır. Customer Segmantation ise hazırda var olan müşterileri gruplayıp, oluşan veriler ışığında daha karlı faaliyetler yürütebilmektir. Müşteriler sınıflandırılırken kurum gerekliliklerine göre modeller geliştirilebilir. Her iş problemi için bu gereklilikler değişebilir. Yani her analizde olduğu gibi öncelikli olarak iş probleminin ve gerekliliklerin iyi anlanması ve kararlaştırılması lazımdır. Şimdi RFM Analizine geçelim.
RFM Analizi müşterilerin satın alım sıklığı, işlem güncelliği ve işlemlerinin maddi değeri olmak üzere 3 bileşenin oluşturulmasıyla sınıflandırma işlemidir. R (Recency) işlem güncelliğini, F (Frequency) işlem sıklığını, M (Monetary) parasal değeri ifade eder. Bu R-F-M değerleri veri setinden hesaplanır ve sonrasında RFM skorları oluşturulur. Oluşan skorlar segmentlere ayrılır ve sınıf analizleri gerçekleştirilerek karar alma süreci başlar. RFM analizi yapılırken segmentler RFM ve RF skorlarına göre oluşturulabilir. Biz RF skorlarına göre RFM segmentasyonu yapacağız ve segmentleri RF matrisinden alacağız.
Şekilde görüldüğü üzere Recency ve Frequency skorlarına bağlı olarak sınıflar değişmekte. Recency değeri 5, Frequency 4 ya da 5 olan müşteriler Champions olarak sınıflanmaktadırlar. Şampiyonlar sınıfı RF Matrisinin en değerli sınıfını oluşturmaktadır. RF skorlarından oluşan segmentler mutlaka Monetary skorlarıyla beraber değerlendirilip analiz edilmelidir. Şimdi örnek veri setimizle RFM Analizimize başlayalım.
Öncelikli olarak veri setimizi (https://archive.ics.uci.edu/ml/datasets/Online+Retail+II) ve gerekli kütüphanelerimizi import ediyoruz. Veri seti bir e-ticaret firmasının müşteri ve satış bilgilerini içermektedir. Biz sadece 2009–2010 yılları arasındaki verileriyle çalışacağız. Veri setine ilk bakışı atalım ve analizlere geçelim. Ben zaten veriyle daha öncesinde çalıştığım için detaylı işlemler yapmadan analize geçeceğim fakat siz daha da irdeleyebilirsiniz.
Veri 525.461 gözlem ve 8 değişkenden oluşuyor. Bizim çalışacağımız değişkenler Customer Id, Invoice, Quantity, Price ve InvoiceDate. Öncelikli olarak her işlemin toplam değerini hesaplamalıyız çünkü değişkenlerimiz arasında böyle bir bilgi yok. Her işlem için Quantity ve Price değişkenlerini çarparak TotalPrice değişkeni oluşturuyoruz. Daha sonradan veri setindeki eksik değerleri ve iadeleri çıkarıyoruz.
Eksik değerleri ve iadeleri düşüp, Total Price değişkenini ekledikten sonra dataframe şu şekilde oluyor.
RFM skorlarını oluşturmak için öncelikle Customer ID değişkenini gruplayarak Recency, Frequency ve Monetary puanlarını hesaplayacağız ve rfm adlı yeni bir dataframe oluşturacağız. Recency müşterinin son satın alım zamanıyla şimdiki zaman arasındaki fark, Frequency toplam sipariş sayısı, Monetary ise tüm siparişlerinin toplam tutarıdır. Birkaç ufak hamleden sonra rfm tablomuz şu şekildedir:
Şu anda rfm değerlerimiz hazır ve sadece skorlanmayı beklemektedir. Çok bekletmeden değişkenlerimizi qcut ile ayırarak her değişken için skor değişkenini de dataframe’e ekleyelim.
Görüldüğü üzere skorlamalar tamam şimdi sadece R ve F skorlarıyla RFM skor oluşturup segmentasyon işlemi yapacağız.
Segmentler oluştuktan sonra genel resmi görmek için bütün segmentlerin ortalama ve count değerlerine bakıyoruz.
Şimdi bütün segmentleri gördükten sonra istersek sınıf sınıf istersek de belirli sınıflara aynı anda strateji geliştirip karar alabiliriz. Ben “cant_loose” sınıfını seçerek inceleyeceğim ve alınabilecek kararlara örnekler vereceğim.
Aynı RF Matrisinde olduğu gibi cant_loose segmentimizde de Frekans skorları 5 olan en yüksek seviyede ve Recency skoru en düşük seviyelerden 1–2 lerde.
RF Matris isimlendirmesine göre Kaybedemeyeceğimiz “cant_loose” müşterileri kaybetmek için fazla değerli. 77 kişi ve ortalama 124 günde 9 kez alışveriş yapıyorlar. Monetary ortalamaları ise 4099. Aşağıdaki tablodan da görülebileceği üzere bu veri seti için “cant loose” sınıfının monetary skoru ekseriyetle 4–5 olarak dağılmış. Yani bu firma için “cant loose” sınıfı gerçekten bir hayli değerli ve özel olarak pazarlamayı hakediyor.
Bu kadar sık alışveriş yapan fakat bizim firmamızdan nadiren alışveriş yapan bu sınıftaki müşterilerin bizi tercih etmeleri için bu gruba yönelik özel pazarlama stratejileri geliştirebiliriz. Kendimizi hatırlatmalıyız bu müşterilerimize. Bu müşteriler rakip firmalara para kazandırırken cama ekmek banan Kemal Sunal gibi olmamak için, sayın pazarlama departmanı müşterilerle iletişim zamanı :). Yazımı okuduğunuz için teşekkür ederim. Geri dönüşlerinizi bekliyorum.
Kaynaklar:
https://github.com/ibrahimhalici/crm_rfm/blob/main/rfm_analysis
Veri Bilimi Okulu — DSMLBC5