Weiter zum Inhalt

Apriori-Algorithmus erklärt: Schritt-für-Schritt-Anleitung mit Python-Implementierung

Erfahre, wie der Apriori-Algorithmus funktioniert, welche Kernkonzepte dahinterstecken und wie du ihn wirkungsvoll für Datenanalyse und Entscheidungen nutzt.
Aktualisiert 22. Apr. 2026

Association Rule Mining ist für Unternehmen unverzichtbar geworden, um Kundenverhalten und Kaufmuster zu verstehen. Diese Technik identifiziert Artikel, die häufig zusammen gekauft werden, und hilft so, Platzierungen, Promotions und Empfehlungen zu optimieren. Solche Analysen verbessern die Geschäftsstrategie, indem sie Trends sichtbar machen, die in Transaktionsdaten verborgen sind.

Der Apriori-Algorithmus ist eine der beliebtesten Methoden, um solche Assoziationsregeln zu entdecken – dank seiner Einfachheit und praxistauglichen Ergebnisse. Im Gegensatz zu komplexeren Ansätzen ist Apriori leicht nachvollziehbar, ideal für Einsteiger und zugleich in realen Anwendungen effektiv. 

Dieser Artikel erklärt den Apriori-Algorithmus, veranschaulicht seinen Ablauf mit klaren Beispielen und zeigt, wie du ihn effektiv einsetzt. Wenn du Machine-Learning-Konzepte praktisch erproben willst, schau dir unseren  Machine Learning Scientist in Python-Lernpfad an. 

Was ist der Apriori-Algorithmus?

Wie du in unserem Tutorial zu Association Rule Mining in Python erfährst, ist Apriori ein Algorithmus, der häufige Itemsets aus Transaktionsdatenbanken extrahiert und daraus Assoziationsregeln generiert. Er beruht auf dem Prinzip: Wenn ein Itemset häufig ist, sind alle seine Teilmengen ebenfalls häufig. Diese Annahme reduziert die Zahl zu prüfender Itemsets und macht den Prozess effizient.

Itemsets und Transaktionen

Ein Datensatz für Apriori besteht typischerweise aus Transaktionen, wobei jede Transaktion eine Zusammenstellung gemeinsam gekaufter Artikel ist. Verkaufsdaten eines Supermarkts könnten zum Beispiel folgende Transaktionen enthalten:

  • Milch, Brot, Butter
  • Milch, Windeln, Bier, Brot
  • Windeln, Bier, Butter

Jede dieser Transaktionen steht für einen Warenkorb, der in einem Einkauf gekauft wurde. Unser Market Basket Analysis in Python-Kurs geht detaillierter auf die praktische Anwendung in Python ein. 

Understanding Transaction Datasets Apriori

Support, Confidence und Lift

Association Rule Mining basiert auf drei zentralen Kennzahlen:

Support: Die Häufigkeit, mit der ein Item im Datensatz vorkommt. Berechnet als:

Confidence: Die Wahrscheinlichkeit, dass Artikel B gekauft wird, wenn Artikel A gekauft wird. Gegeben durch:

Lift: Die Stärke einer Regel. Misst, wie viel wahrscheinlicher B gekauft wird, wenn A gekauft wird, verglichen mit einem unabhängigen Kauf:

Ein Lift-Wert größer als 1 deutet auf eine starke positive Assoziation zwischen Artikeln hin.

So funktioniert der Apriori-Algorithmus

Schauen wir uns nun an, wie der Apriori-Algorithmus arbeitet.

How the Apriori algorithm works

Schritt-für-Schritt-Ablauf

  1. Kandidaten-Itemsets erzeugen: Der Algorithmus beginnt mit einzelnen Items und zählt deren Vorkommen, um häufige Items zu bestimmen.
  2. Auf Mindest-Support beschneiden: Itemsets, deren Support unter dem Schwellwert liegt, werden entfernt.
  3. Häufige Itemsets generieren: Aus häufigen kleineren Itemsets werden größere kombiniert, bis keine weiteren häufigen Itemsets mehr entstehen.
  4. Assoziationsregeln ableiten: Regeln werden anhand von Confidence und Lift extrahiert, um sinnvolle Zusammenhänge zu finden.

Beispiel-Durchlauf

Betrachte einen Datensatz mit folgenden Transaktionen:

  1. Milch, Brot
  2. Milch, Butter
  3. Milch, Brot, Butter
  4. Brot, Butter

Mit einem Mindest-Support von 50% identifiziert der Algorithmus häufige Itemsets und extrahiert Regeln wie:

  • Milch → Brot: Confidence: 66,7%
  • Brot → Butter: Confidence: 66,7%

Solche Regeln helfen Unternehmen, Kaufverhalten zu verstehen und Bestände zu optimieren.

Den Apriori-Algorithmus in Python implementieren

In diesem Abschnitt lernst du, wie du den Apriori-Algorithmus in Python umsetzt.

Umgebung einrichten

Um Apriori in Python zu nutzen, installiere die benötigten Bibliotheken:

pip install mlxtend pandas

Daten laden und vorbereiten

Als Nächstes lädst du die Pakete und bereitest die Daten auf:

import pandas as pd
from mlxtend.frequent_patterns import apriori, association_rules

# Expanded dataset
data = {
    'Milk': [1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
    'Bread': [1, 0, 1, 1, 1, 0, 1, 0, 1, 1],
    'Butter': [0, 1, 1, 1, 1, 1, 0, 1, 1, 0],
    'Eggs': [1, 0, 0, 1, 1, 1, 1, 0, 0, 1],
    'Cheese': [0, 1, 1, 0, 1, 1, 0, 1, 0, 1],
    'Diaper': [0, 1, 0, 1, 0, 1, 1, 1, 0, 0],
    'Beer': [1, 0, 1, 0, 1, 0, 1, 0, 1, 1]
}
df = pd.DataFrame(data)

Den Apriori-Algorithmus anwenden

Nun wendest du den Algorithmus an.

# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

Anschließend erhalten wir die Assoziationsregeln:

# Generating frequent itemsets
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

# Generating association rules
rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.6)
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])
 antecedents consequents  support  confidence      lift
0    (Butter)      (Milk)      0.5    0.714286  1.190476
1      (Milk)    (Butter)      0.5    0.833333  1.190476
2     (Bread)      (Eggs)      0.5    0.714286  1.190476
3      (Eggs)     (Bread)      0.5    0.833333  1.190476
4     (Bread)      (Beer)      0.6    0.857143  1.428571
5      (Beer)     (Bread)      0.6    1.000000  1.428571
6    (Butter)    (Cheese)      0.5    0.714286  1.190476
7    (Cheese)    (Butter)      0.5    0.833333  1.190476

Die Support-Werte (0,5 bis 0,6) zeigen, dass diese Zusammenhänge in 50–60% aller Transaktionen auftreten.

Die Confidence-Werte (0,71 bis 1,0) zeigen die Verlässlichkeit der Regeln. Einige wie Bier → Brot sind sicher (100% Confidence).

Die Lift-Werte (~1,2 bis 1,4) deuten auf moderate, aber aussagekräftige Zusammenhänge hin: Diese Artikelpaare treten etwas häufiger gemeinsam auf, als es der Zufall erwarten ließe.

Ergebnisse interpretieren

Um die erzeugten Assoziationsregeln besser zu verstehen, können wir sie mit Matplotlib visualisieren. Ein Scatterplot zeigt Confidence im Verhältnis zum Lift, während ein Netzwerkdiagramm den Support verschiedener Item-Kombinationen sichtbar macht.

import matplotlib.pyplot as plt
import networkx as nx
# Scatter plot of confidence vs lift
plt.figure(figsize=(8,6))
plt.scatter(rules['confidence'], rules['lift'], alpha=0.7, color='b')
plt.xlabel('Confidence')
plt.ylabel('Lift')
plt.title('Confidence vs Lift in Association Rules')
plt.grid()
plt.show()
# Visualizing association rules as a network graph
G = nx.DiGraph()
for _, row in rules.iterrows():
    G.add_edge(tuple(row['antecedents']), tuple(row['consequents']), weight=row['confidence'])
plt.figure(figsize=(10, 6))
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color='lightblue', edge_color='gray', node_size=3000, font_size=10)
edge_labels = {(tuple(row['antecedents']), tuple(row['consequents'])): f"{row['confidence']:.2f}" 
               for _, row in rules.iterrows()}
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)

plt.title("Association Rules Network")
plt.show()

Der Scatterplot hilft, Regeln mit starken Zusammenhängen zu erkennen, während das Netzwerkdiagramm visualisiert, wie einzelne Artikel miteinander verbunden sind. Diese Insights unterstützen Entscheidungen in Handel, Empfehlungen und Betrugserkennung.

Scatter Plot (Confidence vs Lift)

Der Scatterplot zeigt die Beziehung zwischen Confidence und Lift für die generierten Assoziationsregeln. Zentrale Beobachtungen:

  • Die Punkte verteilen sich in einem Confidence-Bereich von 0,7 bis 1,0.
  • Die Lift-Werte liegen überwiegend zwischen 1,19 und 1,43, was auf sinnvolle, aber nicht extrem starke Regeln hinweist.
  • Eine Confidence von 1,0 bei einem Lift von 1,43 (Bier → Brot) bedeutet: Sobald Bier gekauft wird, ist Brot stets in der Transaktion enthalten – eine sehr verlässliche Regel.

Association Rules Network

Das Netzwerkdiagramm stellt die Verbindungen zwischen verschiedenen Artikeln visuell dar:

  • Milch und Butter sind stark assoziiert – wer das eine kauft, nimmt häufig das andere mit.
  • Brot und Eier zeigen ein ähnliches Muster – ein gängiges Kaufverhalten.
  • Bier und Brot weisen die höchste Confidence (1,0) auf: In allen Transaktionen mit Bier ist Brot enthalten.

Anwendungsfälle des Apriori-Algorithmus

Unternehmen setzen den Apriori-Algorithmus breit ein, um unterschiedliche Probleme zu lösen. Hier sind typische Beispiele. 

Market-Basket-Analyse

Händler analysieren mit Apriori Kaufmuster, um Produkte so anzuordnen, dass kombinierte Käufe gefördert werden. Tauchen etwa Brot und Butter häufig zusammen auf, könnten sie im Laden nah beieinander platziert werden, um den Absatz zu steigern. Mehr zur Market-Basket-Analyse erfährst du in unserem Tutorial zur Market-Basket-Analyse mit R

Empfehlungssysteme

Online-Plattformen nutzen Apriori, um Produkte basierend auf früheren Käufen vorzuschlagen. Kauft jemand einen Laptop, könnten passende Zubehörteile wie Maus oder Tastatur empfohlen werden.

Anomalieerkennung

Bei der Betrugserkennung identifiziert Apriori ungewöhnliche Transaktionen, indem sie mit erwarteten Mustern verglichen werden. Weicht eine Kreditkartentransaktion stark von etablierten Regeln ab, kann dies eine Sicherheitsprüfung auslösen. In der Anomalieerkennung wird Apriori zwar nicht direkt genutzt, um Anomalien zu finden, es kann jedoch seltene oder unerwartete Item-Kombinationen aufdecken, die deutlich von gängigen Kaufmustern abweichen.

Applications of the Apriori algorithm

Vorteile und Grenzen

Der Einsatz des Apriori-Algorithmus bringt mehrere Vor- und Nachteile mit sich, wie du unten siehst. 

Vorteile

Apriori ist leicht zu verstehen und effektiv darin, häufige Itemsets in strukturierten Datensätzen zu entdecken. Er wird in Branchen wie Handel und Gesundheitswesen breit zur Mustererkennung eingesetzt.

Grenzen

Bei sehr großen Datensätzen wird der Algorithmus langsam, da er viele Kandidaten-Itemsets erzeugt. In Daten mit hohem Volumen bieten alternative Methoden wie FP-Growth eine bessere Performance.

Advantages and limitations of Apriori Algorithm

Fazit

Apriori zählt weiterhin zu den nützlichsten Techniken, um Zusammenhänge in Daten aufzuspüren. Trotz gewisser Rechenaufwände liefert er wertvolle Einsichten, mit denen Unternehmen Kundenerlebnisse verbessern und den Umsatz steigern.

Auch wenn er für sehr große Datensätze nicht der schnellste Ansatz ist, bleibt er ein zentrales Werkzeug im Data Mining, in der Analytics und im Machine Learning. Wenn du tiefer einsteigen willst, entdecke Machine Learning mit Python und arbeite darauf hin, Machine Learning Scientist zu werden – mit unserem Machine Learning Scientist in Python-Lernpfad. 

Apriori-Algorithmus: FAQs

Wofür wird der Apriori-Algorithmus verwendet?

Der Apriori-Algorithmus wird im Data Mining eingesetzt, um häufige Itemsets zu identifizieren und daraus Assoziationsregeln in großen Datensätzen abzuleiten. Typische Einsatzfelder sind Market-Basket-Analysen, Empfehlungssysteme und Betrugserkennung.

Wie funktioniert der Apriori-Algorithmus?

Apriori identifiziert zunächst häufig vorkommende einzelne Items in einem Datensatz und bildet darauf aufbauend größere Itemsets. Itemsets, die einen Mindest-Support nicht erreichen, werden verworfen. Anschließend werden Assoziationsregeln mithilfe der Kennzahlen Confidence und Lift abgeleitet.

Was sind Support, Confidence und Lift bei Apriori?

Support: Die Häufigkeit eines Itemsets im Datensatz.

Confidence: Die Wahrscheinlichkeit, dass ein Item in einer Transaktion auftritt, wenn ein anderes Item vorhanden ist.

Lift: Die Stärke der Assoziation, also ob Items häufiger gemeinsam gekauft werden, als zu erwarten wäre.

Was sind die Grenzen des Apriori-Algorithmus?

Apriori kann bei großen Datensätzen langsam sein, da sehr viele Kandidaten-Itemsets entstehen. Zudem tut sich der Ansatz mit dichten Datensätzen schwer, in denen viele Items häufig gemeinsam auftreten. Der FP-Growth-Algorithmus ist in solchen Fällen oft performanter.

Worin besteht der Unterschied zwischen Apriori und FP-Growth?

Apriori erzeugt Kandidaten-Itemsets und prüft ihren Support iterativ, was rechnerisch aufwendig ist. FP-Growth nutzt dagegen eine Baumstruktur, reduziert so die Anzahl der Kandidaten und ist bei großen Datensätzen schneller.

Themen

Top-DataCamp-Kurse

Lernpfad

Grundlagen des maschinellen Lernens in Python

16 Std.
Lerne die Kunst des maschinellen Lernens und werde zum Meister der Vorhersage, der Mustererkennung und der Anfänge des Deep und Reinforcement Learning.
Details anzeigen
Kurs starten
Mehr anzeigen
Verwandt

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

Tutorial

Wie man Listen in Python aufteilt: Einfache Beispiele und fortgeschrittene Methoden

Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Allan Ouko's photo

Allan Ouko

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

Tutorial

Wie sortiert man ein Wörterbuch in Python nach Werten?

Lerne effiziente Methoden, um ein Wörterbuch in Python nach Werten zu sortieren. Lerne, wie du Sachen aufsteigend oder absteigend sortieren kannst, und hol dir ein paar coole Tipps zum Sortieren von Schlüsseln.
Neetika Khandelwal's photo

Neetika Khandelwal

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

Tutorial

Loop-Schleifen in Python-Tutorial

Lerne, wie du For-Schleifen in Python umsetzt, um eine Sequenz oder die Zeilen und Spalten eines Pandas-DataFrame zu durchlaufen.
Aditya Sharma's photo

Aditya Sharma

Mehr anzeigenMehr anzeigen