Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erklärung des Apriori-Algorithmus in Python

Detaillierte Erklärung des Apriori-Algorithmus in Python

PHPz
PHPzOriginal
2023-06-10 08:03:134782Durchsuche

Der Apriori-Algorithmus ist eine gängige Methode zum Assoziationsregel-Mining im Bereich Data Mining und wird häufig in Business Intelligence, Marketing und anderen Bereichen eingesetzt. Als allgemeine Programmiersprache bietet Python auch mehrere Bibliotheken von Drittanbietern zur Implementierung des Apriori-Algorithmus. In diesem Artikel werden das Prinzip, die Implementierung und die Anwendung des Apriori-Algorithmus in Python ausführlich vorgestellt.

1. Prinzip des Apriori-Algorithmus

Bevor wir das Prinzip des Apriori-Algorithmus vorstellen, lernen wir zunächst die beiden Konzepte beim Assoziationsregel-Mining kennen: häufige Itemsets und Unterstützung.

Häufiges Elementset: Bezieht sich auf eine Reihe von Elementen, die häufig zusammen in einem bestimmten Datensatz vorkommen.

Unterstützung: Die Häufigkeit, mit der ein Artikelsatz in allen Transaktionen erscheint, wird als Unterstützung bezeichnet.

Beispielsweise liegt in den Transaktionsdaten eines Supermarkts die Häufigkeit der Kombination {Milch, Kuchen} bei allen Transaktionen bei 10 %. Dann beträgt die Unterstützung für diese Kombination 10 %.

Der Apriori-Algorithmus basiert auf dem Konzept häufiger Elementmengen und untersucht die Korrelation zwischen Elementen, indem er häufige Elementmengen Schicht für Schicht durchsucht. Die Idee ist wie folgt:

  1. Häufige Item-Sets von unten nach oben abbauen, beginnend mit einzelnen Item-Sets (d. h. einzeln gekauften Artikeln).
  2. Nur wenn die Unterstützung eines Artikelsets den voreingestellten Mindestunterstützungsschwellenwert erreicht, kann es als häufiges Artikelset betrachtet werden.
  3. Erstellen Sie einen starken Assoziationsregelsatz basierend auf häufigen Itemsets. Als starke Assoziationsregeln werden Regeln bezeichnet, bei denen die Verbindung zwischen dem Bedingungselement und dem Ergebniselement in der Assoziationsregel sehr eng ist.

Im Einzelnen ist der Implementierungsprozess des Apriori-Algorithmus wie folgt:

  1. Zählen Sie alle Elemente und erhalten Sie die Unterstützungsanzahl eines einzelnen Elementsatzes.
  2. Für jede einzelne Artikelgruppe, deren Unterstützung den Mindestunterstützungsschwellenwert erreicht, können sie als häufige Artikelgruppen betrachtet werden.
  3. Generieren Sie für jede häufige Elementmenge alle nicht leeren Teilmengen und berechnen Sie die Unterstützung jeder Teilmenge durch Zählen während des Generierungsprozesses.
  4. Wenn die Unterstützung der aktuell generierten Teilmenge den Mindestunterstützungsschwellenwert erreicht, wird die Teilmenge als häufiges Elementset gespeichert.
  5. Erstellen Sie einen starken Assoziationsregelsatz basierend auf häufigen Itemsets. Für eine häufige Itemmenge können Sie eine Teilmenge als Bedingung und den verbleibenden Teil als Ergebnis auswählen und deren Konfidenz berechnen. Wenn die Konfidenz den Mindestkonfidenzschwellenwert erreicht, wird die Assoziationsregel als starke Regel gespeichert.
  6. Führen Sie die Schritte 3 bis 5 iterativ durch, bis keine neuen häufigen Itemsets oder strengen Regeln mehr vorhanden sind.

Es ist zu beachten, dass die zeitliche Komplexität des Apriori-Algorithmus sehr hoch ist, da für jede nicht leere Teilmenge eine Unterstützungszählung erforderlich ist. Um den Rechenaufwand zu reduzieren, können einige Optimierungstechniken eingesetzt werden, beispielsweise die Verwendung von Hash-Tabellen und die Reduzierung von Kandidaten.

2. Python implementiert den Apriori-Algorithmus

Es gibt mehrere Bibliotheken von Drittanbietern in Python, die den Apriori-Algorithmus implementieren können, wie z. B. mlxtend, Orange usw. Im Folgenden wird mlxtend als Beispiel verwendet, um die Implementierungsschritte des Apriori-Algorithmus vorzustellen.

  1. MLxtend-Bibliothek installieren

MLxtend mit pip installieren:

pip install mlxtend
  1. Erforderliche Bibliotheken importieren

Numpy-Bibliothek und mlxtend-Bibliothek importieren:

import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
  1. Daten vorbereiten

Generieren Sie einen einfachen Transaktionsdatensatz, der 4 Transaktionen enthält Datensätze, jeder Datensatz besteht aus einigen Elementen:

dataset = [['牛奶', '面包', '啤酒', '尿布'],
           ['牛奶', '面包', '啤酒', '尿布'],
           ['面包', '啤酒', '尿布', '饼干'],
           ['牛奶', '尿布', '啤酒', '饼干']]
  1. Konvertieren Sie die Daten in eine boolesche Tabelle

Verwenden Sie TransactionEncoder, um die Daten in eine boolesche Tabelle zu konvertieren. In diesem Schritt werden häufige Elementsätze aus dem Transaktionsdatensatz extrahiert

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)

    Mining häufiger Itemsets
Verwenden Sie die Apriori-Funktion, um häufige Itemsets aus booleschen Tabellen zu minen:

frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

Durch Festlegen des Parameters min_support können Sie die Mindestunterstützung häufiger Itemsets steuern. Im obigen Code ist die Mindestunterstützung auf 0,5 festgelegt.

    Erstellen Sie einen starken Assoziationsregelsatz.
Basierend auf häufigen Elementsätzen verwenden Sie die Funktion „assoziation_rules“, um einen starken Assoziationsregelsatz zu erstellen:

rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

Durch Festlegen des Metrikparameters können Sie steuern, welche Metrik zur Bewertung der Qualität verwendet wird der Vereinsregeln. Im obigen Code wird die Konfidenz als Bewertungsmetrik verwendet und der minimale Konfidenzschwellenwert ist auf 0,7 festgelegt.

3. Anwendungsszenarien des Apriori-Algorithmus

Der Apriori-Algorithmus kann auf viele Bereiche angewendet werden, wie z. B. Marketing, Empfehlungssysteme, Analyse sozialer Netzwerke usw. Im Folgenden wird am Beispiel einer E-Commerce-Plattform die Anwendung des Apriori-Algorithmus bei der Produktempfehlung demonstriert.

E-Commerce-Plattformen zeichnen normalerweise die Transaktionsdatensätze der Benutzer auf und verwenden diese Aufzeichnungen, um Produkte zu empfehlen, an denen Benutzer interessiert sein könnten. Durch den Apriori-Algorithmus können hochfrequente Produktkombinationen ermittelt werden. Beispielsweise besteht eine hohe Wahrscheinlichkeit, dass Personen, die die Produkte A, B und C kaufen, Produkt D kaufen. Basierend auf diesen Assoziationsregeln kann die E-Commerce-Plattform den Nutzern entsprechende Produkte empfehlen, um die Transaktionsrate und das Einkaufserlebnis der Nutzer zu verbessern.

4. Fazit

Der Apriori-Algorithmus ist eine gängige Assoziationsregel-Mining-Methode. Es gibt auch mehrere Bibliotheken von Drittanbietern, die diesen Algorithmus implementieren können. Durch diese Bibliotheken können häufige Elementmengen und Assoziationsregeln leicht ermittelt werden, um Datenanalysen und Geschäftsentscheidungen zu unterstützen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Apriori-Algorithmus in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn