Ο Αλγόριθμος FP-Growth

Σχετικά έγγραφα
Ανάλυση Συσχέτισης IΙ

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων:

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

Κανόνες Συσχέτισης IΙ

Lecture Notes for Chapter 6. Introduction to Data Mining

Κανόνες Συσχέτισης IIΙ

Οι διαφάνειες στηρίζονται στο P.-N. Tan, M.Steinbach, V. Kumar, «Introduction to Data Mining», Addison Wesley, 2006

TID Items. Τ = {t 1, t 2,.., t N } ένα σύνολο από δοσοληψίες, όπου κάθε t i είναι ένα στοιχειοσύνολο

Οι διαφάνειες στηρίζονται στο P.-N. Tan, M.Steinbach, V. Kumar, «Introduction to Data Mining», Addison Wesley, 2006

Αποθήκες Δεδομένων και Εξόρυξη Δεδομένων

Κανόνες Συσχέτισης IΙ Σύντομη Ανακεφαλαίωση

5.2 ΑΠΛΟΠΟΙΗΣΗ ΜΕ ΤΗΝ ΜΕΘΟΔΟ ΚΑΤΑΤΑΞΗΣ ΣΕ ΠΙΝΑΚΑ

Κανόνες Συσχέτισης IΙ Σύντομη Ανακεφαλαίωση

Κεφάλαιο 7: Εξόρυξη Συχνών Στοιχειοσυνόλων και Κανόνων Συσχέτισης

!! " &' ': " /.., c #$% & - & ' ()",..., * +,.. * ' + * - - * ()",...(.

ΗΥ360 Αρχεία και Βάσεις Δεδομένων

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κλείσιμο Συνόλου Γνωρισμάτων

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών. Ένα στοιχείο γράφεται ως, όπου κάθε.

Data mining Εξόρυξη εδοµένων. o Association rules mining o Classification o Clustering o Text Mining o Web Mining

Π Α Ν Ε Π Ι Σ Τ Η Μ Ι O Π Ε Ι Ρ Α Ι Ω Σ

Κανόνες Συσχέτισης Ι. Εισαγωγή. Εισαγωγή. Ορισμοί. Ορισμοί. Ορισμοί. Market-Basket transactions (Το καλάθι της νοικοκυράς!)

Αρχεία και Βάσεις Δεδομένων

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Βιοπληροφορική. Ενότητα 11: Κατασκευή φυλογενετικών δέντρων part II

Συναρτησιακές Εξαρτήσεις 7ο Φροντιστήριο. Βάρσος Κωνσταντίνος

Αλγόριθμοι και Πολυπλοκότητα

Ατομική Διπλωματική Εργασία ΜΕΘΟΔΟΙ ΠΡΟΤΑΣΙΑΚΗΣ ΙΚΑΝΟΠΟΙΗΣΙΜΟΤΗΤΑΣ ΣΕ ΓΕΝΙΚΕΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ ΕΠΙΧΕΙΡΗΜΑΤΟΛΟΓΙΑΣ. Νίκη Κουππή ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Δομές Δεδομένων και Αλγόριθμοι

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Αρχεία και Βάσεις Δεδομένων Φροντιστήριο Κανονικές Μορφές

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

2η ΔΙΑΛΕΞΗ Συναρτησιακές εξαρτήσεις

Θέματα Εφαρμογών Βάσεων Δεδομένων: Ιδιωτικότητα Δεδομένων

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Βιοπληροφορική. Ενότητα 10: Κατασκευή φυλογενετικών δέντρων

Asocijativna analiza

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Ασκήσεις ανακεφαλαίωσης στο μάθημα Τεχνητή Νοημοσύνη

DIGITAL DESIGN WITH AN INTRODUCTION TO THE VERILOG HDL Fifth Edition

ΤΕΧΝΟΛΟΓΙΕΣ ΠΟΛΥΜΕΣΩΝ

Κωδικοποίηση Πηγής. Δρ. Α. Πολίτης

Ψηφιακά Συστήματα. 5. Απλοποίηση με χάρτες Karnaugh

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Αλγόριθμοι εύρεσης ελάχιστων γεννητικών δέντρων (MST)

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 5 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Παρατηρήσεις στα ϑέµατα

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

HY437 Αλγόριθμοι CAD

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 4 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Βάσεις Δεδομένων Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασμός Βάσεων Δεδομένων και Κανονικοποίηση

Δομές Δεδομένων & Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΗΥ360 Αρχεία και Βάσεις εδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2

Θεωρία τησ Πληροφορίασ (Θ) ΔΙΔΑΚΩΝ: Δρ. Αναςτάςιοσ Πολίτησ

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Κεφάλαιο 10 Ψηφιακά Λεξικά

Some new generalized topologies via hereditary classes. Key Words:hereditary generalized topological space, A κ(h,µ)-sets, κµ -topology.

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Διδάσκων: Παναγιώτης Ανδρέου

ΓΕΝΙΚΟ ΛΥΚΕΙΟ Λ. ΑΙΔΗΨΟΥ ΣΧΟΛ. ΕΤΟΣ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΠΕΡΙΟΔΟΥ ΜΑΪΟΥ ΙΟΥΝΙΟΥ ΓΕΩΜΕΤΡΙΑ Α ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική

Αλγόριθμοι Εξόρυξης δεδομένων για χειρισμό πολλαπλών υποστηρίξεων και αρνητικών συσχετίσεων

Πολλαπλασιασμός: αλγόριθμος

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

Λύση (από: Τσιαλιαμάνης Αναγνωστόπουλος Πέτρος) (α) Το trie του λεξιλογίου είναι

Ταχεία Ταξινόμηση Quick-Sort

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής. Εξόρυξη Γνώσης από εδοµένα (Data Mining) Εξόρυξη Κανόνων Συσχετίσεων. Γιάννης Θεοδωρίδης

Πανεπιστημιο Πατρων Πολυτεχνικη Σχολη

2. Η πιθανότητα της αριθμήσιμης ένωσης ξένων μεταξύ τους ενδεχομένων είναι το άθροισμα των πιθανοτήτων των ενδεχομένων.

Βάσεις εδοµένων. Συναρτησιακές Εξαρτήσεις (Functional Dependencies) Σχεδιασµός Βάσεων εδοµένων και. Κανονικοποίηση.

Αρχεία και Βάσεις Δεδομένων

an:3 are:6 a:10

(Γραμμικές) Αναδρομικές Σχέσεις

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

C D C D C D C D A B

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Επίλυση Προβλημάτων 1

Θέματα Μεταγλωττιστών

ΕΠΙΤΡΟΠΗ ΔΙΑΓΩΝΙΣΜΩΝ 31 η Ελληνική Μαθηματική Ολυμπιάδα "Ο Αρχιμήδης" 22 Φεβρουαρίου 2014

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Εισαγωγή στους Η/Υ. Ενότητα 2α: Χάρτης Karnaugh (Βοηθητικό υλικό)

Αλγόριθμοι ταξινόμησης

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Δομές Δεδομένων & Αλγόριθμοι

Transcript:

Ο Αλγόριθμος FP-Growth

Με λίγα λόγια: Ο αλγόριθμος χρησιμοποιεί μια συμπιεσμένη αναπαράσταση της βάσης των συναλλαγών με τη μορφή ενός FP-δέντρου Το δέντρο μοιάζει με προθεματικό δέντρο - prefix tree (trie) Ο αλγόριθμος κατασκευής διαβάζει μια συναλλαγή τη φορά, απεικονίζει τη συναλλαγή σε ένα μονοπάτι του FP-δέντρου Μερικά μονοπάτια μπορεί να επικαλύπτονται: όσο περισσότερα μονοπάτια επικαλύπτονται, τόσο καλύτερη συμπίεση Μόλις κατασκευαστεί το FP-δέντρο, ο αλγόριθμος χρησιμοποιεί μια αναδρομική διαίρει-και-βασίλευε (divide-and-conquer) προσέγγιση για την εξόρυξη των συχνών στοιχειοσυνόλων

Κατασκευή FP-δέντρου TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} To FP-δέντρο είναι ένα προθεματικό δέντρο Επειδή έχουμε σύνολα, κάπως πρέπει να τα διατάξουμε ώστε να βρίσκουμε προθέματα Δηλαδή δε μπορεί το ένα σύνολο να είναι {Α, Β} και το άλλο {Β, C, A} γιατί χάνουμε το κοινό πρόθεμα ΑΒ (ή ΒΑ) Άρα τα στοιχεία σε κάθε σύνολο πρέπει να ακολουθούν κάποια διάταξη, έστω τη λεξικογραφική (θα δούμε αργότερα αν κάτι άλλο συμφέρει καλύτερα) Αρχικά, το δέντρο κενό

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου Διάβασμα TID=1: B:1 A:1 Κάθε κόμβος έχει μια ετικέτα: ποιο στοιχείο και τη συχνότητα εμφάνισης (υποστήριξη) πόσες δοσοληψίες φτάνουν σε αυτόν Ετικέτα κόμβου <ΣΤΟΙΧΕΙΟ: ΥΠΟΣΤΗΡΙΞΗ>

Κατασκευή FP-δέντρου Αλγόριθμος FP-Growth TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Διάβασμα TID=1: Διάβασμα TID=2: B:1 A:1 B:1 Κάθε κόμβος ετικέτα, ποιο στοιχείο και τη συχνότητα εμφάνισης (υποστήριξη) πόσες συναλλαγές φτάνουν σε αυτόν Επίσης, δείκτες μεταξύ των κόμβων που αναφέρονται στο ίδιο στοιχείο

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου Διάβασμα TID=1, 2: Πίνακας Δεικτών B:1 A:1 B:1 Επίσης, κρατάμε πίνακα δεικτών για να βοηθήσουν στον υπολογισμό των συχνών στοιχειοσυνόλων Item A B C D E Pointer

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου Διάβασμα TID=1, 2: Διάβασμα TID=3 Πίνακας Δεικτών B:1 A:1 B:1 Item A B C D E Pointer

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου Διάβασμα TID=1, 2: Διάβασμα TID=3 Πίνακας Δεικτών Item A B C D E Pointer B:1 A:2 E:1 B:1

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου Διάβασμα TID=1, 2: Διάβασμα TID=3 Πίνακας Δεικτών Item A B C D E Pointer B:1 A:2 E:1 B:1

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Κατασκευή FP-δέντρου A:7 B:5 B:3 C:3 Πίνακας Δεικτών Item A B C D E Pointer C:3 E:1 E:1 E:1

Μέγεθος FP-δέντρου Κάθε συναλλαγή αντιστοιχεί σε ένα μονοπάτι από τη ρίζα Το μέγεθος του δέντρου συνήθως μικρότερο των δεδομένων, αν υπάρχουν κοινά προθέματα Αν όλες οι συναλλαγές τα ίδια στοιχεία, μόνο ένα κλαδί Αν όλες διαφορετικές, ο χώρος μεγαλύτερος (γιατί αποθηκεύεται περισσότερη πληροφορία, όπως δείκτες μεταξύ των κόμβων αλλά και συχνότητες εμφάνισης)

Κατασκευή FP-δέντρου TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Αλγόριθμος FP-Growth Το τελικό δέντρο, εξαρτάται από τη διάταξη: άλλη διάταξη -> άλλα προθέματα (Συνήθως) μικρότερο δέντρο, αν όχι λεξικογραφικά, αλλά με βάση τη συχνότητα εμφάνισης -> Αρχικά, διαβάζουμε όλα τα δεδομένα μια φορά ώστε να υπολογιστεί ο μετρητής υποστήριξης κάθε στοιχείου, και διατάσουμε τα στοιχεία με βάση αυτό Επίσης, αγνοούμε όσα στοιχεία είναι μη συχνά Για τo παράδειγμα, σ(α)=7, σ(β)=8, σ(c)=7, σ(d)=5, σ(ε)=3 Άρα, Β,Α,C,D,E διάταξη TID Items 1 {Β,Α} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {Β,Α,C} 6 {Β,Α,C,D} 7 {B,C} 8 {Β,Α,C} 9 {Β,Α,D} 10 {B,C,E}

Αλγόριθμος εύρεσης συχνών στοιχειοσυνόλων Είσοδος: FP-δέντρο Έξοδος: Συχνά στοιχειοσύνολα και η υποστήριξη τους Μέθοδος: Διαίρει-και-Βασίλευε o Χωρίζουμε τα στοιχειοσύνολα σε αυτά που τελειώνουν σε E, D, C, B, A o Μετά αυτά που τελειώνουν σε E σε αυτά σε DE, CE, BE, AE κοκ

Αλγόριθμος εύρεσης συχνών στοιχειοσυνόλων Όλα τα στοιχειοσύνολα Ε D C B A DE CE BE AE CD BD AD BC AC AB CDE BDE ADE BCE ACE ABE BCD ACD ABD ABC ACDE BCDE ABDE ABCE ABCD ABCDE Όλα τα δυνατά στοιχειοσύνολα!

Αλγόριθμος εύρεσης συχνών στοιχειοσυνόλων Όλα τα στοιχειοσύνολα συχνό; Ε D C B A DE CE BE AE CD BD AD BC AC AB συχνό; συχνό; CDE BDE ADE BCE ACE ABE BCD ACD ABD ABC ACDE BCDE ABDE ABCE ABCD συχνό; ABCDE Όλα τα δυνατά στοιχειοσύνολα!

Αλγόριθμος εύρεσης συχνών στοιχειοσυνόλων Όλα τα στοιχειοσύνολα συχνό; Ε D C B A DE CE BE AE CD BD AD BC AC AB συχνό; CDE BDE ADE BCE ACE ABE BCD ACD ABD ABC συχνό; συχνό; ACDE BCDE ABDE ABCE ABCD συχνό; ABCDE Όλα τα δυνατά στοιχειοσύνολα!

Αλγόριθμος εύρεσης συχνών στοιχειοσυνόλων Όλα τα στοιχειοσύνολα συχνό; Ε D C B A DE CE BE AE CD BD AD BC AC AB συχνό; συχνό; CDE BDE ADE BCE ACE ABE BCD ACD ABD ABC ACDE BCDE ABDE ABCE ABCD ABCDE Όλα τα δυνατά στοιχειοσύνολα! Στο δέντρο μπορεί να υπάρχουν λιγότερα!

TID Items 1 {A,B} 2 {B,C,D} 3 {A,C,D,E} 4 {A,D,E} 5 {A,B,C} 6 {A,B,C,D} 7 {B,C} 8 {A,B,C} 9 {A,B,D} 10 {B,C,E} Αλγόριθμος FP-Growth Χρήση FP-δέντρου για εύρεση συχνών στοιχειοσυνόλων A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 Πως; E:1 E:1 Bottom-up traversal του δέντρου Αυτά που τελειώνουν σε E, μετά αυτά που τελειώνουν σε D, C, B και τέλος Α suffix-based classes (επίθεμα κατάληξη)

Υποπρόβλημα: Βρες συχνά στοιχειοσύνολα που τελειώνουν σε E A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1 Θα δούμε στη συνέχεια πως υπολογίζεται η υποστήριξη για τα πιθανά στοιχειοσύνολα

Για το D A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1

Για το C A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1

Για το B A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1

Για το Α A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1

Συνοπτικά Σε κάθε βήμα, για το suffix (επίθεμα) Χ Φάση 1 Κατασκευάζουμε το προθεματικό δέντρο για το Χ και υπολογίζουμε την υποστήριξη χρησιμοποιώντας τον πίνακα Φάση 2 Αν είναι συχνό, κατασκευάζουμε το υπο-συνθήκη δέντρο για το Χ, σε βήματα επανα-υπολογισμός υποστήριξης περικοπή κόμβων με μικρή υποστήριξη περικοπή φύλλων

Φάση 1 κατασκευή προθεματικού δέντρου Όλα τα μονοπάτια που περιέχουν το E Προθεματικά (prefix paths) Μονοπάτια A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1 Προθεματικά μονοπάτια του Ε: {E}, {D,E}, {C,D,E}, {A,D,Ε}, {A,C,D,E}, {C,E}, {B,C,E}

Φάση 1 Όλα τα μονοπάτια που περιέχουν το E Προθεματικά (prefix paths) Μονοπάτια A:7 B:3 C:3 E:1 E:1 E:1 Προθεματικά μονοπάτια του Ε: {E}, {D,E}, {C,D,E}, {A,D,Ε}, {A,C,D,E}, {C,E}, {B,C,E}

Έστω minsup = 2 Αλγόριθμος FP-Growth Βρες την υποστήριξη του {E} Πως; Ακολούθησε τους συνδέσμους αθροίζοντας 1+1+1=3>2 Οπότε {Ε} συχνό A:7 B:3 C:3 E:1 E:1 E:1 {E} συχνό άρα προχωράμε για DE, CE, BE, AE

{E} συχνό άρα προχωράμε για DE, CE, BE, AE Φάση 2 Μετατροπή των προθεματικών δέντρων σε FP-δέντρο υπό συνθήκες (conditional FP-tree) Δύο αλλαγές (1) Αλλαγή των μετρητών (2) Περικοπή A:7 B:3 C:3 E:1 E:1 E:1

Αλλαγή μετρητών Οι μετρητές σε κάποιους κόμβους περιλαμβάνουν συναλλαγές που δεν έχουν το Ε Πχ στο ->B->C->E μετράμε και την {B, C} A:7 B:3 C:3 E:1 E:1 E:1

A:7 B:3 C:3 E:1 E:1 E:1

A:7 B:3 E:1 E:1 E:1

A:7 B:1 E:1 E:1 E:1

A:7 B:1 E:1 E:1 E:1

A:7 B:1 E:1 E:1 E:1

A:2 B:1 E:1 E:1 E:1

A:2 B:1 E:1 E:1 E:1

Περικοπή (truncate) Σβήσε τους κόμβους του Ε A:2 B:1 E:1 E:1 E:1

Περικοπή (truncate) Σβήσε τους κόμβους του Ε A:2 B:1 E:1 E:1 E:1

Περικοπή (truncate) Σβήσε τους κόμβους του Ε A:2 B:1

Πιθανή περαιτέρω περικοπή Κάποια στοιχεία μπορεί να έχουν υποστήριξη μικρότερη της ελάχιστης Πχ το Β -> περικοπή A:2 B:1 Αυτό σημαίνει ότι το Β εμφανίζεται μαζί με το E λιγότερο από minsup φορές

A:2 B:1

A:2

Υπο-συνθήκη FP-δέντρο για το Ε Ο αλγόριθμος επαναλαμβάνεται για το {D, E}, {C, E}, {A, E} A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το D (DE) Προθεματικά (prefix paths) Μονοπάτια A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το D (DE) Προθεματικά (prefix paths) Μονοπάτια A:2

Βρες την υποστήριξη του {D, E} Πως; Ακολούθησε τους συνδέσμους αθροίζοντας 1+1=2 2 Οπότε {D, Ε} συχνό A:2

Φάση 2 Κατασκεύασε το υπο-συνθήκη FP-δέντρο για το {D, E} 1. Αλλαγή υποστήριξης 2. Περικοπές κόμβων A:2

1. Αλλαγή υποστήριξης A:2

2. Περικοπές κόμβων A:2

2. Περικοπές κόμβων A:2

2. Περικοπές κόμβων A:2 Μικρή υποστήριξη

Τελικό υπο-συνθήκη FP-δέντρο για το {D, E} A:2 Υποστήριξη του Α είναι minsup -> {Α, D, E} συχνό Αφού μόνο έναν κόμβο, επιστροφή στο επόμενο υποπρόβλημα

Υπο-συνθήκη FP-δέντρο για το Ε Ο αλγόριθμος επαναλαμβάνεται για το {D, E}, {C, E}, {A, E} A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το C (CE) Προθεματικά (prefix paths) Μονοπάτια A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το C (CE) Προθεματικά (prefix paths) Μονοπάτια A:2

Βρες την υποστήριξη του {C, E} Πως; Ακολούθησε τους συνδέσμους αθροίζοντας 1+1=2 2 Οπότε {C, Ε} συχνό A:2

Κατασκεύασε το υπο-συνθήκη FP-δέντρο για το {C, E} 1. Αλλαγή υποστήριξης 2. Περικοπές κόμβων A:2

1. Αλλαγή υποστήριξης A:1

2. Περικοπή Κόμβων A:1

2. Περικοπή Κόμβων A:1

2. Περικοπή Κόμβων A:1

2. Περικοπή Κόμβων Άρα, επιστροφή στο επόμενο υποπρόβλημα

Υπο-συνθήκη FP-δέντρο για το Ε Ο αλγόριθμος επαναλαμβάνεται για το {D, E}, {C, E}, {A, E} A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το Α (AE) Προθεματικά (prefix paths) Μονοπάτια A:2

Φάση 1 Όλα τα μονοπάτια που περιέχουν το Α (AE) Προθεματικά (prefix paths) Μονοπάτια A:2

Βρες την υποστήριξη του {Α, E} Οπότε {Α, Ε} συχνό Δε χρειάζεται να φτιάξουμε υπο-συνθήκη FP-δέντρο για το {Α, Ε} A:2

Άρα για το Ε Έχουμε τα εξής συχνά στοιχειοσύνολα {Ε} {D, E} {A, D, E} {C, E} {A, E} Συνεχίζουμε για το D

Για το D A:7 B:3 B:5 C:3 Header table Item A B C D E Pointer C:3 E:1 E:1 E:1

Φάση 1 Όλα τα προθεματικά μονοπάτια που περιέχουν το D Υποστήριξη 5>2 -> άρα συχνό A:7 Αλγόριθμος FP-Growth B:3 Μετατροπή του προθεματικού δέντρου σε FP-δέντρο υπό συνθήκη B:5 C:3 C:3

1. Αλλαγή υποστήριξης A:7 B:3 B:5 C:3

1. Αλλαγή υποστήριξης A:7 B:3 B:2 C:3

1. Αλλαγή υποστήριξης A:3 B:3 B:2 C:3

1. Αλλαγή υποστήριξης A:3 B:3 B:2

1. Αλλαγή υποστήριξης A:3 B:1 B:2

2. Περικοπή Κόμβων A:3 B:1 B:2

2. Περικοπή Κόμβων A:3 B:1 B:2

Προθεματικά δέντρα και υποσυνθήκη δέντρα Για τα ΑD, ΒD και CD κοκ A:3 B:1 B:2

Παρατηρήσεις Παράδειγμα τεχνικής διαίρει-και-βασίλευε Σε κάθε αναδρομικό βήμα, λύνεται και ένα υπο-πρόβλημα: Κατασκευάζεται το προθεματικό δέντρο Υπολογίζεται η νέα υποστήριξη για τους κόμβους του Περικόβονται οι κόμβοι με μικρή υποστήριξη Επειδή τα υποπροβλήματα είναι ξένα μεταξύ τους, δεν δημιουργούνται τα ίδια συχνά στοιχειοσύνολα δυο φορές Ο υπολογισμός της υποστήριξης είναι αποδοτικός γίνεται ταυτόχρονα με τη δημιουργία των συχνών στοιχειοσυνόλων

Παρατηρήσεις Η απόδοση του FP-Growth εξαρτάται από τον παράγοντα συμπίεσης του συνόλου των δεδομένων (compaction factor) Αν τα τελικά δέντρα είναι «θαμνώδη» (bushy) τότε δε δουλεύει καλά, αυξάνεται ο αριθμός των υποπροβλημάτων (οι αναδρομικές κλήσεις)