Implementierung des Assoziationsregellernens mit Python | von Aries Phyo | Juni 2023

0
26


  1. 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.

Quelle: Wikimedia Commons

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:

Die ersten fünf Zeilen _ Bild vom Autor

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:

Die letzten fünf Zeilen – Bild vom Autor

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:

Darstellung der Korrelation zwischen Produkten _ nach Autor

Danke fürs Lesen!



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here