RFM-Analyse | Kundenlebensdauerwert durch RFM-Analyse

Inhalt

Einführung

Achtzig Prozent unseres Geschäfts kommen von 20% unserer Kunden.

Kosten 10 mal weniger an einen bestehenden Kunden zu verkaufen als einen neuen Kunden zu finden

T

98834erfassen-8983678

In unserer Index de acciones, RAFFINIERT 50 definiert, wie sich unser Aktienmarkt ähnlich entwickelt, im Geschäft, Es ist wichtig zu verstehen, wer Ihre Top-Kunden sind, die Ihrem Unternehmen konsistente und wachsende Einnahmequellen bieten.

Eine der einfachen und effektiven Methoden, die im Allgemeinen verwendet wird, um den Kundenwert über einen bestimmten Zeitraum zu berechnen, ist RFM, Was ist es,

Neuheit (R): wie zuletzt hat ein Kunde einen Kauf getätigt
Frequenz (F): wie oft kauft ein Kunde ein
Geldwert (m): Dollarwert der Einkäufe

Wir werden im nächsten Abschnitt etwas tiefer in die RFM-Analyse eintauchen:

Nehmen wir ein kleines Beispiel, bei dem eine Bank wichtige Kunden zur Bindung identifizieren möchte / Entwicklung / Erwerb.

Dann, im vorherigen Szenario, Wir müssen jeden Kunden, der kürzlich Transaktionen mit der Bank hatte, anhand der drei oben genannten wichtigen Kennzahlen bewerten R, F und M. Später, eine Qualifizierungsmethodik erstellen, um den Kundenstamm zu segmentieren und sich für verschiedene Marketingprogramme zu bewerben.

RFM-Analyseprozess

Berechnen wir den RFM-Score für 5 Beispielkunden,

Paso 1: R ableiten, F & M der Transaktionen der Bank im letzten Jahr.

Vorzugsweise, RFM wird für aktuelle Daten erstellt und vierteljährlich aktualisiert / halbjährlich je nach Geschäft

7527712-1610308

R finden, F und M ist ziemlich einfach. Nehmen wir an, ein Kunde hat eingezahlt 10 K Geld die 1 Mai und hinterlegt andere 5 K die 10 Juni und wenn Sie eine RFM-Analyse durchführen, 1 des Julis. Jetzt für diesen Kunden, das Dienstalter wird sein 1 Monat, da die letzte Transaktion im Juni war und die Häufigkeit sein wird 2 weil Sie im Mai und Juni zwei Einzahlungen getätigt haben und M wird es sein 15 K

Paso 2: Erhalten Sie die Punktzahl für jeden Kunden basierend auf jedem Parameter basierend auf dem Bereich innerhalb des Parameters

Para Aktualität, der Kleinere, Beste, wegen kunden, wir sind in deinen Gedanken und für Frequenz & Monitor und größere Werte sind besser

5314323-6636622

Nehmen wir die obige Tabelle als Beispiel, im Vergleich zu allen Kunden, Seniorität ist besser für den Kunden 3, da es als Zahl klassifiziert ist 1, während es für die Frequenz an der 4. Stelle steht und, wertmäßig, auf Platz 2.

Paso 3: Standardisieren Sie die Punktzahl jedes Kunden basierend auf jedem Parameter (0-100)

24346123-9468920

Standardisieren = aktueller Wert / Max (Wert) * 100

Paso 4: Gewichtete Punktzahl ableiten über jeder Parameter für jeden Kunden

Konsolidierte Punktzahl = 0.15 * R + 0.28 * F + 0.57 * m

Gewichtungen können gleichermaßen angewendet werden oder wir können für jeden Parameter spezifische Gewichtungen basierend auf Domänenwissen oder Geschäftseingaben bereitstellen. Hier, im vorherigen Fall, Wir legen mehr Wert auf Frequenz und Überwachung.

20825234-7012388

Wir wenden diese Gewichte einfach auf jeden Kunden an.

Zum Beispiel,

Kunden-Wert 4 = 0,15 * 40 + 0,28 * 60 + 0,57 * 60 = 57

Später, Wir unterteilen die Partitur in drei Segmente,

  • 0 – 50 – Kunde mit geringem Wert
  • 50 – 75 – Mittelständischer Kunde
  • 76-100 – Hochwertiger Kunde

Jetzt, basierend auf früheren Ergebnissen, ein Unternehmen kann den Antrag stellen Differenzierungsstrategie als Retention / Entwicklung / Akquisition unterschiedlicher Kundensegmente

Was ist mehr, die meisten von uns können diese Segmente mit zusätzlichen Merkmalen wie demografischen Merkmalen profilieren, Ausgabenmuster und verschiedene Produkte, etc. Verstehe sie ein wenig tiefer.

Versuchen wir nun, diese RFM-Analyse in Python zu implementieren.

RMF-Analyse in Python

Dies ist eine Fallstudie, wobei wir einen Datensatz der europäischen Handelskette verwenden.

Die Beispieldaten sind wie folgt:

74730Beispieldaten-2170489

Für unsere RFM-Analyse, Die wichtigsten Schlüsselfunktionen, die wir verwenden werden, sind InvoicDate, Kunden-ID und für den Verkauf, wir verwenden Menge und Stückpreis

# Pakete importieren
numpy als np importieren
Pandas als pd importieren
Importzeit, Warnungen
import datetime als dt
Warnungen.Filterwarnungen("ignorieren")
# Holen Sie sich die Daten
# Lesen Sie die Daten
df=pd.read_csv("retail_data.csv")
df.kopf()
# RFM-Analyse
** RFM ** (Neuheit, Frequenz, Geld) Analyse zuerst müssen wir drei Features erstellen R , F & M aus den Daten
Lassen Sie uns diese Funktionen erstellen
## Neuheit
# Um die Aktualität zu berechnen, we need to find out  **when was the customer's most recent purchase.**.
# Erstellen Sie eine neue Spalte namens Datum, die nur das Rechnungsdatum enthält
df['date'] = pd.DatetimeIndex(df['InvoiceDate']).Datum
# Nach Kunden gruppieren und letztes Kaufdatum prüfen
recency_df = df.groupby(by='CustomerID', as_index=Falsch)['date'].max()
recency_df.columns = ['CustomerID','LastPurshaceDate']
# Berechnen Sie das aktuelle Datum, um die Aktualität in Bezug auf dieses Datum zu ermitteln
previous_date=recency_df.LastPurshaceDate.max()
drucken(aktuelles_datum)
# Aktualität berechnen
recency_df['Recency'] = recency_df['LastPurshaceDate'].anwenden(Lambda x: (aktuelles_datum - x).Tage)
recency_df.head()
120072-3756079

Auf die gleiche Weise berechnen wir nun sowohl die Häufigkeit als auch die Geldwerte.

# ## Frequenz
# Um die Häufigkeit zu berechnen, müssen wir überprüfen **Wie oft ein Kunde einkauft**.
# Duplikate löschen
df1= df
df1.drop_duplicates(Teilmenge=['InvoiceNo', 'CustomerID'], behalten="Erste", inplace=Wahr)
# Berechnen Sie die Häufigkeit der Einkäufe
frequency_df = df1.groupby(von=['CustomerID'], as_index=Falsch)['InvoiceNo'].zählen()
frequency_df.columns = ['CustomerID','Frequenz']
frequency_df.head()
# ## Geld
# Um den Geldwert zu berechnen **Wie viel Geld hat der Kunde während des Zeitraums ausgegeben??**
# Spalte Gesamtkosten erstellen
df['TotalCost'] = df['Quantity'] * df['UnitPrice']
monetär_df = df.groupby(by='CustomerID',as_index=Falsch).ag({'TotalCost': 'sum'})
money_df.columns = ['CustomerID','Monetary']
monetär_df.head()
# ## RFM-Tabelle erstellen
# Aktualitätsdatenrahmen mit Frequenzdatenrahmen zusammenführen
temp_df = recency_df.merge(Frequenz_df,on='CustomerID')
temp_df.head()
# Mit monetären Datenrahmen zusammenführen, um eine Tabelle mit dem zu erhalten 3 Säulen
rfm_df = temp_df.merge(monetär_df,on='CustomerID')
# KundenID als Index verwenden
rfm_df.set_index('CustomerID',inplace=Wahr)
# Überprüfen Sie den Kopf
rfm_df.head()
980453-6627241
# Rang jeder Metrik R , F & m
rfm_df['R_rank'] = rfm_df['Recency'].Rang( aufsteigend=Falsch)
rfm_df['F_rank'] = rfm_df['Frequenz'].Rang(aufsteigend=wahr)
rfm_df['M_rank'] = rfm_df['Monetary'].Rang(aufsteigend=wahr)
rfm_df.head()
# normalisiere jeden Rang mit Max Rang
rfm_df['R_rank_norm']=(rfm_df['R_rank']/rfm_df['R_rank'].max())*100
rfm_df['F_rank_norm']=(rfm_df['F_rank']/rfm_df['F_rank'].max())*100
rfm_df['M_rank_norm']=(rfm_df['F_rank']/rfm_df['M_rank'].max())*100
rfm_df.head()
# Wenden Sie nun unsere Gleichung an und erstellen Sie das Endergebnis **Konsolidiertes Ergebnis = 0,15*R_rank_norm + 0.28*F_rank_norm + 0.57M_rank_norm**
rfm_df['RFM_Score']=0,15*rfm_df['R_rank_norm']+0.28*rfm_df['F_rank_norm']+0.57*rfm_df['M_rank_norm']
rfm_df=rfm_df.runde(0)
rfm_df.head()
856894-3465923
# ## Kundensegmente mit RFM-Modell
# # Segmentieren Sie Kunden basierend auf dem RFM-Score
# 0 - 50 - Geringwertiger Kunde
# 50 - 75 - Mittelwertiger Kunde
# 76 - 100 - Sehr geschätzter Kunde
rfm_df["Kunden Bereich"]=np.wo(rfm_df['RFM_Score'] > 75 ,"Hochwertiger Kunde",(np.wo(rfm_df['RFM_Score'] < 50 , "Kunde mit geringem Wert" ,"Kunde mit mittlerem Wert")))
rfm_df.head()
861505-1670907

Jetzt kennen wir unsere Kundensegmente, wir können wählen, wie wir uns orientieren oder mit jedem Segment umgehen.

Zum Beispiel:

Hochwertiger Kunde: Sie sind Ihre treuen Kunden, Also bitte unterstützen Sie sie ständig durch den Kundenservice.

Mittelständischer Kunde: Senden Sie ihnen personalisierte Verkaufs-E-Mails und ermutigen Sie sie, mehr zu kaufen

Kunde mit geringem Wert: Diese Kunden sind im Begriff, die Phase zu verlassen oder in eine inaktive Phase einzutreten, Reaktivierungsstrategien für sie anwenden.

In Python und R haben wir mehrere Pakete, die die RFM-Analyse unterstützen, und es gibt auch mehrere Möglichkeiten, einen RFM-Score abzuleiten.

Hoffe dir gefällt dieser Artikel. Viel Spaß beim Lernen

Die in diesem Artikel gezeigten Medien sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.

Datenlautsprecher