- Warenkorbanalyse
Die Warenkorbanalyse ist eine der Anwendungen des Assoziationsregellernens und wird in der Einzelhandelsbranche eingesetzt, um die Assoziationen zwischen verschiedenen Produkten zu ermitteln. Die Warenkörbe bestehen aus einer Liste von Produkten, die Kunden häufig bei einem einzigen Besuch in den Geschäften kaufen.
2. Lernen von Assoziationsregeln
Das Lernen von Assoziationsregeln ist ein weit verbreiteter Ansatz im Information Mining, der hilfreich ist, um die Beziehung zwischen Produkten in einer großen Transaktionsdatenbank zu finden. Die Ergebnisse des Affiliation Guidelines Mining können Einzelhändler dabei unterstützen, ihre Marketingstrategien zu verbessern, indem sie Erkenntnisse darüber gewinnen, dass Kunden häufig Produkte gekauft haben.
Der Apriori-Algorithmus führt eine Warenkorbanalyse durch, und die Eingabedaten für diese Analyse sind die Kaufdaten der Kunden. Es gibt drei wichtige Maße in diesem Algorithmus, nämlich Unterstützung, Selbstvertrauen und Auftrieb.
Unterstützung
Assist ist die Wahrscheinlichkeit, dass bei der Transaktion sowohl X- als auch Y-Produkte zusammen gekauft werden. Der Unterstützungswert kann mit den folgenden Gleichungen berechnet werden:
Vertrauen
Der Konfidenzwert ist definiert als die Division der Gesamtzahl der Transaktionen, die X und Y enthalten, durch die Gesamtzahl der Transaktionen, die Y enthalten. Die Gleichung lautet wie folgt:
Aufzug
Der Anstieg soll die Wahrscheinlichkeit messen, mit der Produkt Y gekauft wird, wenn Produkt X gekauft wird. Zur Berechnung des Hubwertes kann die folgende Gleichung verwendet werden:
Datenaufbereitung
Der Datensatz, den ich für diese Analyse verwendet habe, steht auf meiner Web site zum Obtain bereit GitHub-Repository. Ich habe einen Warenkorb mit nur drei Monaten Transaktionsdaten erstellt. Für die Durchführung des MBA sind nur die von jedem Kunden erworbenen Transaktionsdaten als Eingabe erforderlich. Die Anzahl der Transaktionen ist nicht begrenzt und die Daten können je nach Bedarf aufbereitet werden.
Datenanalysetools
- Google Colaboratory
- Python
Erforderliche Bibliotheken
- Pandas
- NumPy
- Apriori
- Seaborn
- Matplotlib
Wichtig sind zunächst die benötigten Bibliotheken,
import pandas as pd
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
%matplotlib inline
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
Laden Sie den Datensatz nach dem Import der Bibliotheken wie folgt:
df = pd.read_csv('online_retail.csv')
df.head()
Ausgang:
Bereiten Sie dann die Daten für die Warenkorbanalyse vor:
df['Date'] = pd.to_datetime(df['Date'])
print('Time interval begin: {}nTime interval finish: {}'.format(df.Date.min(), df.Date.max()))
#outline the size of transactions to arrange basket
start_date = '2010-12-01'
end_date = '2011-02-28'
masks = (df['Date'] > start_date) & (df['Date'] <= end_date)
transaction = df.loc[mask]
len(transaction)
Es gibt insgesamt 100324 im Datensatz enthaltene Transaktionen. Anschließend bereiten Sie den Korb wie folgt vor:
basket = (transaction.groupby(['Invoice', 'Product'])['Quantity']
.sum().unstack().reset_index().fillna(0)
.set_index('Bill'))#Convert the models to 1 sizzling encoded values
def encode_units(x):
if x <= 0:
return 0
if x >= 1:
return 1
basket_sets = basket.applymap(encode_units)
#Construct up frequent gadgets with apriori mannequin
frequent_itemsets = apriori(basket_sets, min_support=0.02, use_colnames=True)
#apply the association_rules
guidelines = association_rules(frequent_itemsets, metric="carry", min_threshold=1)
guidelines.tail()
Ausgang:
Notiz: Ein Vorgänger ist ein in den Daten gefundenes Ingredient. A CFolge ist ein Gegenstand, der in Kombination mit dem Vorgänger gefunden wird.
Wie Sie oben sehen können, enthält der Ergebnisdatenrahmen einige Spalten. Ich möchte jedoch einige Parameter des Apriori-Algorithmus wie folgt hervorheben:
Vorgeschichte = HERZ AUS WICKER KLEIN‘, ‚HERZ AUS WICKER GROß
Konsequenzen = WEIßER T-LICHTHALTER MIT HÄNGENDEM HERZ
Unterstützung = 0,024224, Gesamttransaktionen = 100324
X ∪ Y = Unterstützung * Gesamttransaktionen = 0,024224 * 100324 = 2430
Es bedeutet, dass Produkte [HEART OF WICKER SMALL’, ‘HEART OF WICKER LARGE] Und [WHITE HANGING HEART T-LIGHT HOLDER] wurden zusammen 2430 Mal gekauft.
Konfidenz = 0,456410
Das bedeutet, dass 45 % der Kunden gekauft haben [WHITE HANGING HEART T-LIGHT HOLDER] wann immer sie kauften [HEART OF WICKER SMALL’, ‘HEART OF WICKER LARGE].
Hub = 3,194002
Der Liftwert ist größer als 1, daher ist es wahrscheinlicher, dass diese Produkte zusammen gekauft werden. Je höher der Liftwert, desto stärker ist die Korrelation zwischen den Produkten.
Visualisierung
sns.set(type = "whitegrid")
fig = plt.determine(figsize=(12, 12))
ax = fig.add_subplot(projection = '3d')x = guidelines['support']
y = guidelines['confidence']
z = guidelines['lift']
ax.set_xlabel("Assist")
ax.set_ylabel("Confidence")
ax.set_zlabel("Raise")
ax.scatter(x, y, z)
ax.set_title("3D distribution of affiliation guidelines")
plt.present()
Ausgang:
Danke fürs Lesen!