„Apriori-Algorithmus“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Interwiki und Kategorien
Zeile 135: Zeile 135:


Die erzeugten Regeln erfüllen alle <math>minsupp</math> und <math>minconf</math>.
Die erzeugten Regeln erfüllen alle <math>minsupp</math> und <math>minconf</math>.

== Literatur ==
{{Literatur
| Autor=Jean-Marc Adamo
| Titel=Data Mining for Association Rules and Sequential Patterns: Sequential and Parallel Algorithms
| Verlag=Springer, Berlin
| Jahr=2001
| ISBN=978-0-3879-5048-8
| Ort=New York
| Originalsprache=en
}}


== Weblinks ==
== Weblinks ==

Version vom 16. September 2008, 18:35 Uhr

Der Apriori-Algorithmus ist ein Verfahren zur Assoziationsanalyse, einem Bereich des Datamining. Er dient der Auffindung von sinvollen und nützlichen Zusammenhängen in transaktionsbasierten Datenbasen, die in Form von sogenannten Assoziationsregeln dargestellt werden. Eine häufige Anwendung des Apriori-Algorithmus ist die Warenkorbanalyse. Items sind hierbei angebotene Produkte und ein Einkauf stellt eine Transaktion dar, welche die gekauften Items enthält. Der Algorithmus bestimmt nun Korrelationen der Form:

Wenn Shampoo und Rasierwasser gekauft wurden, wurde in 90% der Fälle auch Rasierschaum gekauft.

Eine passende Datenbasis besteht aus einer Tabellen von Transaktionen (Zeilen) in denen beliebige binäre Items (Spalten) zusammengefasst werden. Der Apriori-Algorithmus findet Zusammenhänge zwischen Mengen von Items die in einem großen Teil der Transaktionen vorkommen. Die ausgegebenen Assoziationsregeln haben die Form , wobei und Mengen von Items sind. Eine solche Regel beschreibt, dass in einem großen Teil der Transaktionen die Itemmenge A vorkommt und in diesen Transaktion die Itemmenge B ebenfalls häufig ist.

Voraussetzungen

Der Apriori-Algorithmus wird bei Datenbasen einer bestimmten Form angewendet. Die Form der Datenbasis muss wie folgt vorliegen:

  • ist eine Menge von möglichen Items
  • ist die Datenbasis, bestehend aus Transaktionen
  • eine Transaktion fasst eine Menge von Items zusammen

Typischerweise wird eine Menge von mehr als 500.000 Transaktionen auf einer sehr großen Item-Basis analysiert. Die Darstellung der Datenbasis erfolgt in einer de-normalisierten Datenbanktabelle, welche für jedes Mögliche Item eine Spalte besitzt. Die enthaltenen Zeilen stellen jeweils eine Transaktion dar, wobei in der Transaktion enthaltene Items mit einer 1, nicht enthaltene mit einer 0 gekennzeichnet werden. Eine Transaktion lässt sich somit auch als Vektor mit Dimensionen betrachten.

Eine Assotiationsregel ist von der Form

wobei gilt

Bewertung von Regeln

Assotiationsregeln werden mit zwei propabilistischen Messwerten bewertet: Support und Konfidenz. Der Apriori-Algorithmus erwartet als Eingabe unter anderem die Werte minsupp und minconf, welche den minimalen Support und die minimale Konfidenz einer Regel darstellen, damit sie berücksichtigt werden.

Support

Der Support einer Itemmenge ist die Warscheinlichkeit dass diese Itemmenge in einer Transaktion vorkommt.

Sei Itemmenge.

.

Der Support einer Assotiationsregel , mit und , ist definiert als

Der Support einer Regel gibt also die relative Häufigkeit an, mit der die Regel in der Datenbasis vorkommt. Meist ist ein hoher Support wünschenswert, um Aussagen über Mehrheiten zu finden.

Konfidenz

Sei eine Assotiationsregel, mit und .

Die Konfidenz einer Regel entspricht der Wahrscheinlichkeit der Konklusion unter Bedingung der Prämisse:

also

Die Konfidenz misst also die relative Häufigkeit des Vorkommens der Konklusion unter Bedingung der Prämisse. Auch für die Konfidenz ist ein hoher Wert wünschenswert.

Der Algorithmus

Der Apriori-Algorithmus erhält als Eingaben

  • Die Datenbasis
  • Den Minimal-Support
  • Die minimale Konfidenz

und gibt eine Menge von Assitiationsregeln aus, die sowohl als auch erfüllen.

Der Algorithmus arbeitet in zwei Schritten welche beide einen gemeinsamen Schritt Apriori-Gen verwenden:

1. Findung häufiger Mengen 2. Erzeugung von Assotiationsregeln

Findung häufiger Itemmengen

Die Suche nach häufiger Itemmengen startet mit 1-elementigen Mengen und wird iterativ mit n-elementigen Mengen fortgeführt, bis keine Itemmengen mit genügendem Support mehr gefunden werden. Dabei wird in jeder Iteration eine Menge von Kandidatenmengen mittels Apriori-Gen erzeugt und jede Menge auf die -Eigenschaft hin überprüft. Können keine neuen Mengen mehr gefunden werden, stoppt der Algorithmus und gibt die gefundenen Mengen aus.

  1. Berechne alle 1-elementigen Itemmengen mit Support > : .
  2. Für .
    1. Berechne Menge von Kandidaten aus mittels Apriori-Gen.
    2. Berechne den Tatsächlichen Support von allen Mengen aus .
    3. Nimm die Mengen mit genügend Support in auf.
    4. Ist , brich ab.
  3. Gib zurück.

Die Zurückgegebene Menge enthält alle häufigen Itemmengen.

Apriori-Gen

Die Sub-Routine Apriori-Gen wird sowohl bei der berechnung häufiger Mengen, als auch bei der Generierung von Assiotiationsregeln verwendet. Anstatt für alle möglichen Itemmengen den Support direkt zu Berechnen, wird durch Apriori-Gen auf Basis von bereits gefundenen häufigen Mengen eine Menge von Kandidaten zur weiteren Überprüfung generiert.

Die Routine erhält als eingabe eine Menge von häufigen -Itemmengen () und gibt eine Menge von -Itemmengen () als mögliche Kandidaten zurück. Sie basiert auf dem Prinzip, dass alle Teilmengen einer häufigen Itemmenge häufig sind, alle Obermengen einer nicht-häufigen Itemmenge aber auch nicht-häufig. Unnötige Support-Berechnungen werden so vermieden.

  1. Generiere -Itemmengen durch Verschmelzung von je zwei -Itemmengen, die je Items gemein haben und füge sie hinzu.
  2. Überprüfe für jede Menge in , ob alle -Teilmengen in enthalten sind. Falls nicht, entferne aus .

Beispiel

Die Eingabe zu Apriori-Gen sei:

Schritt 1 der Apriori-Gen-Routine berechnet nun die folgende Kandidaten Menge:

Schritt 2 entfernt die Mengen und wieder aus , da und nicht in nicht enthalten sind. Beide Mengen sind also nicht häufig und Ihre Obermengen müssen nicht berücksichtigt werden.

Das Ergebnis von Apriori-Gen ist also

Generierung von Assotiationsregeln

Nur Itemmengen die bereits in sich häufig sind, müssen für diesen Schritt des Algorithmus berücksichtigt werden. Solche Itemmengen wurden von Schritt 1 des Apriori-Algoroithmus berechnet. Die von Schritt 1 verwendete Routine Apriori-Gen wird bei der Generierung von Assotiationsregeln erneut verwendet.

Für jede gefundene häufige Itemmenge wird versucht Assotiationsregeln zu erzeugen. Dabei wird mit möglichst kurzen (1-elementigen) Konklusionen begonnen, welche iterativ vergrößért werden. Der folgende Pseudocode wird für jede gefundene Itemmenge ausgeführt:

  1. Berechne Assotiationsregeln der Form mit und mit .
  2. Erzeuge mit Itemmengen bestehend aus je einer gefundenen Konklusion.
    1. Erzeuge durch Apriori-Gen.
    2. Für jede Konklusion überprüfe von . Falls nicht erfüllt ist, entferne aus .
    3. Wenn , brich ab.
  3. Gib zurück.

Die erzeugten Regeln erfüllen alle und .

Literatur

Jean-Marc Adamo: Data Mining for Association Rules and Sequential Patterns: Sequential and Parallel Algorithms. Springer, Berlin, New York 2001, ISBN 978-0-387-95048-8.