Apriori-Algorithmus im Klartext?


9

Ich habe einen Wiki-Artikel über Apriori gelesen. Ich habe Probleme beim Verstehen des Pflaumen- und Join-Schritts. Kann mir jemand erklären, wie der Apriori-Algorithmus in einfachen Worten funktioniert (so dass Anfänger wie ich ihn leicht verstehen können)?

Es ist gut, wenn jemand den damit verbundenen schrittweisen Prozess erklärt.


Sie könnten an meiner Python-Implementierung interessiert sein .
Martin Thoma

Antworten:


11

Der Wikipedia-Artikel ist nicht besonders beeindruckend. Diese Folien sind möglicherweise hilfreicher: 1 , 2 , 3 .

Auf jeder Ebene haben Sie Item-Sets, die häufig sind (ausreichende Unterstützung haben). kk

Auf der nächsten Ebene müssen die zu berücksichtigenden + -Elemente die Eigenschaft haben, dass jede ihrer Teilmengen häufig sein muss (ausreichende Unterstützung). Dies ist die Apriori-Eigenschaft : Jede Teilmenge der häufigen Elementmenge muss häufig sein.k1

Wenn Sie also auf Stufe 2 wissen, dass die Mengen , , und die einzigen Mengen mit ausreichender Unterstützung sind, dann Auf Stufe 3 verbinden Sie diese miteinander, um , , und zu erzeugen Sie müssen jedoch nur weiter berücksichtigen : Die anderen haben jeweils Teilmengen mit unzureichender Unterstützung (z. B. oder ).{1,2}{1,3}{1,5}{3,5}{1,2,3}{1,2,5}{1,3,5}{2,3,5}{1,3,5}{2,3}{2,5}


2

Der Apriori-Algorithmus ist ein Assoziationsregel-Mining-Algorithmus, der beim Data Mining verwendet wird. Es wird verwendet, um die häufige Artikelmenge unter der angegebenen Anzahl von Transaktionen zu finden.

Es besteht im Wesentlichen aus zwei Schritten

  1. Self-Join
  2. Beschneidung

Wenn Sie diese Schritte k-mal wiederholen, wobei k die Anzahl der Elemente ist, erhalten Sie in der letzten Iteration häufige Elementmengen, die k Elemente enthalten.

Hier finden Sie eine sehr einfache Erklärung mit einem detaillierten Beispiel: http://nikhilvithlani.blogspot.com/2012/03/apriori-algorithm-for-data-mining-made.html .

Es hat eine einfache Erklärung ohne komplizierte Gleichungen.


2
Ich habe diesen Beitrag hinterlassen , da es normalerweise besser ist, eine Zusammenfassung der wichtigsten Punkte bereitzustellen, die Sie hervorheben möchten, als ohne weitere Erklärungen auf einen Blog zu verlinken. Darüber hinaus besteht der Zweck dieser Website darin, eine Sammlung sachkundiger Antworten auf bestimmte Fragen mit minimalen Abhängigkeiten von baumelnden oder kurzlebigen Links zu erstellen. Wenn Sie also nicht garantieren können, dass der obige Link in 10 Jahren noch gültig ist, möchte ich Sie nachdrücklich ermutigen, seine wichtigsten Punkte in der vorliegenden Antwort zusammenzufassen.
Chl

1

Apriori in einfachem Englisch.

Apriori verwendet einen iterativen Ansatz, der als stufenweise Suche bekannt ist, bei dem k-Itemsets verwendet werden, um (k + 1) -Element-Sets zu untersuchen . Zunächst wird der Satz häufiger 1-Item-Sets gefunden, indem die Datenbank gescannt wird, um die Anzahl für jedes Item zu akkumulieren, und die Items gesammelt werden, die die minimale Unterstützung erfüllen. Die resultierende Menge wird als L1 bezeichnet . Als nächstes wird L1 verwendet, um L2 zu finden , die Menge von häufigen 2-Itemsets , die verwendet wird, um L3 zu finden, und so weiter, bis keine häufigen k-Itemsets mehr gefunden werden können. Das Finden jedes Lk erfordert einen vollständigen Scan der Datenbank.

Bei der letzten Iteration erhalten Sie viele k-Itemsets, die im Grunde als Assoziationsregeln bezeichnet werden . So wählen Sie interessante Regeln aus der Menge aller möglichen Regeln verschiedene Einschränkungsmaßnahmen wie Unterstützung und das Vertrauen angewendet wird.

Begriffe und Terminologien

  • 1-Itemsets bedeutet {a}, {b}, {c}
  • 2-Itemsets bedeuten {a, b}, {d, d}, {a, c}
  • K-Itemsets bedeutet {i1, i2, i3, ... ik}, {j1, j2, j3, .... jk}

Join-Schritt: Dies bedeutet, dass 1-Itemset sich selbst mit sich selbst verbindet, um 2-Itemsets zu generieren.

Bereinigungsschritt: Hier wird die aus dem Join resultierende Menge mit dem minimalen Unterstützungsschwellenwert gefiltert.

Kardinalitätssatz: Ergebnissatz aus dem Prune-Schritt.

Unterstützung = Anzahl der Transaktionen mit 'a' und 'b' / Gesamtzahl der Transaktionen.

Unterstützung => supp (a, b) => p (a U b)

Zuversichtlich = Anzahl der Transaktionen mit 'a' und 'b' / Anzahl der Transaktionen mit 'a'.

Zuversichtlich => con (a, b) ==> P (b | a) nichts als bedingte Wahrscheinlichkeit.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.