Soweit ich die Entwicklung von Algorithmen zur Lösung des FPM-Problems (Frequent Pattern Mining) kenne, gibt es auf dem Weg der Verbesserungen einige Hauptkontrollpunkte. Erstens wurde der Apriori- Algorithmus 1993 von Agrawal et al. zusammen mit der Formalisierung des Problems. Der Algorithmus konnte Strip-Off einige Sätze aus den 2^n - 1
Sätzen (Powerset) durch ein Gitter unter Verwendung der Daten zu erhalten. Ein Nachteil des Ansatzes war die Notwendigkeit, die Datenbank erneut zu lesen, um die Häufigkeit jedes erweiterten Satzes zu berechnen.
Später, im Jahr 1997, stellten Zaki et al. schlug den Algorithmus Eclat vor , der die resultierende Frequenz jedes Satzes in das Gitter einfügte . Dazu wurde an jedem Knoten des Gitters der Satz von Transaktions-IDs hinzugefügt, die die Elemente vom Stamm zum verwiesenen Knoten enthielten. Der Hauptbeitrag besteht darin, dass nicht der gesamte Datensatz erneut gelesen werden muss, um die Häufigkeit jedes Satzes zu ermitteln. Der für die Erstellung einer solchen Datenstruktur erforderliche Speicher kann jedoch die Größe des Datensatzes selbst überschreiten.
Im Jahr 2000 haben Han et al. schlugen einen Algorithmus namens FPGrowth zusammen mit einer Präfixbaum -Datenstruktur namens FPTree vor. Der Algorithmus war in der Lage, eine signifikante Datenkomprimierung bereitzustellen und gleichzeitig zu gewährleisten, dass nur häufige Elementmengen (ohne Generierung von Kandidatenelementmengen) erhalten werden. Dies erfolgte hauptsächlich durch Sortieren der Elemente jeder Transaktion in absteigender Reihenfolge, so dass die häufigsten Elemente diejenigen mit den geringsten Wiederholungen in der Baumdatenstruktur sind. Da nur die Frequenz steigt , während den Baum in der Tiefe durchquert, ist der Algorithmus in der Lage zu strippen-off nicht-häufige itemsets.
Bearbeiten :
Soweit ich weiß, kann dies als ein Algorithmus auf dem neuesten Stand der Technik angesehen werden, aber ich würde gerne mehr über andere vorgeschlagene Lösungen erfahren. Welche anderen Algorithmen für FPM gelten als "State-of-the-Art"? Was ist die Intuition / der Hauptbeitrag solcher Algorithmen?
Wird der FPGrowth-Algorithmus beim häufigen Pattern-Mining immer noch als "Stand der Technik" angesehen? Wenn nicht, welche Algorithmen können häufige Objektmengen effizienter aus großen Datenmengen extrahieren?