Data mining Εξόρυξη εδοµένων o Association rules mining o Classification o Clustering o Text Mining o Web Mining
ιάγραµµα της παρουσίασης Association rule Frequent itemset mining Γνωστοί Αλγόριθµοι Βελτιώσεις των γνωστών αλγορίθµων 7/6/2012 2
Κανόνες Συσχέτισης ίνεταιµίαβάσηδεδοµένων D µεεγγραφές. Κάθε εγγραφή αποτελείται από διάφορα αντικείµενα. Γιαπαράδειγµα {ψωµί, γάλα, καφές} Κανόνας συσχέτισης (association rule) είναι µία συνεπαγωγή της µορφής A->B όπου A και B είναι σύνολα από αντικείµενα για παράδειγµα {ψωµί, γάλα} -> {ζάχαρη, καφές} Support ενός συνόλου αντικειµένων Α: το πλήθος των εγγραφών της D που περιέχουν το σύνολο αντικειµένων για παράδειγµα τα στοιχεία του συνόλου Α. 7/6/2012 3
Έγκυροι κανόνες Support του κανόνα A->B: το support του AUB Confidence του A->B: το κλάσµα των εγγραφών στη βάση δεδοµένων D που περιέχουν την ένωση AUB ως προς αυτές που περιέχουν το A. εδοµένης µιας database D ενδιαφερόµαστε να παράγουµε έγκυρους κανόνες δηλαδή κανόνες πουέχουν support and confidence πάνωαπό κάποιαδεδοµένα thresholds t 1, t 2. 7/6/2012 4
Παράδειγµα Support ή Frequency του {a, h} = 3 Α = { a, h}, B = {g} Support του A-> B = 2 Confidence του A-> B = 2/3 7/6/2012 5
Συχνά σύνολα αντικειµένων Εάν το support της ένωσης AUB είναι πάνω από κάποιο threshold, τότε το support του A είναι σίγουρα πάνω από αυτό το threshold Έτσι η παραγωγή όλων των itemsets µε support >t κάνει απλό τον υπολογισµό του confidence του A->B Τα itemsets αυτά ονοµάζονται large or frequent Πρόβληµα εύρεσης έγκυρων κανόνων ανάγεται στο πρόβληµα εύρεσης συχνών συνόλων αντικειµένων 7/6/2012 6
Εφαρµογές του προβλήµατος Market Basket Baskets Καλάθια του S.M. Items τα αντικείµενα που αγοράζει κανείς Αξιοποίηση της πληροφορίας: Ποιά αντικείµενα αγοράζονται ταυτόχρονα (µεγιστοποίηση κέρδους) Κείµενα λέξεις Basketsκείµενα Itemsλέξεις Αξιοποίηση της πληροφορίας: Λέξεις που εµφανίζονται συχνά ταυτόχρονα δηλώνουν κείµενα µε το ίδιο περιεχόµενο Σελίδεςστο Web Baskets web pages Items σελίδες που κάνουν link σε αυτές Αξιοποίηση της πληροφορίας: Σελίδες µε παρόµοια links είναιγύρωαπότοίδιοθέµα 7/6/2012 7
Γνωστές στρατηγικές για την εξόρυξη των frequent itemsets With candidate generation (e.g. A-priori) [Agrawal, Srikant 94] Without candidate generation (e.g. FP-growth) [Han, Pei, Yin 00] 7/6/2012 8
Candidate generation Παραγωγή frequent itemsets επίπεδοανά επίπεδο και υπολογισµός συχνότητας εµφάνισης π.χ. I={a,b,c,d}σύνολοδιακριτώναντικειµένων της D Επίπεδο 1: {a},{b},{c},{d} Επίπεδο 2: {a,b}, {a,c}, {a,d}, {b,c}, {b,d}, {c,d} Επίπεδο 3: {a,b,c}, {a,b,d}, {a,c,d}, {b,c,d} Επίπεδο 4: {a,b,c,d} 7/6/2012 9
Απλοϊκός αλγόριθµος Παραγωγή όλων των υποσυνόλων. ιάσχιση της βάσης δεδοµένων και ενηµέρωση των συχνοτήτων των υποσυνόλων που εµφανίζονται. ιαγραφή των non-frequent. 7/6/2012 10
Προβλήµατα και µέθοδοι επίλυσής τους Μεγάλο πλήθος εγγραφών (χρονοβόρα η διαδικασία προσπέλασής τους) Χρησιµοποίηση δοµών αποθήκευσης της βάσης δεδοµένων Μεγάλο πλήθος αντικειµένων (πάρα πολλοί συνδυασµοί) Υιοθέτηση τεχνικών µείωσης του εκθετικού πλήθουςυποσυνόλων (2 n ) 7/6/2012 11
Βασικήιδέατου A-priori Monotonicity property: ΈστωΣ: σύνολοαντικειµένωνµε n στοιχείακαι J: J=Pow(Σ)µε 2 n -1 στοιχεία. Μίασυνάρτηση f είναι µονότονη ή upward closed εάν Η συνάρτηση f είναι αντι-µονότονη ή downward closed εάν Η συνάρτηση frequency (ή support) είναι αντι-µονότονη Ένα (k+1)-itemset µπορεί να είναι frequent µόνο αν όλα τα υποσύνολά του µε k items είναι frequent 7/6/2012 12
Αλγόριθµος A-priori [Agrawal, Srikant 94] k-βήµα: Παραγωγή λίστας των υποψηφίων k+1- itemsets απότηλίστατωνσυχνών k-itemsets Για κάθε itemset στην k list διάσχιση της υπόλοιπης λίστας ώστε να βρεθούν όλα τα itemsets που διαφέρουν ως προς το τελευταίο item. Παράγεται ένα νέο itemset µε k+1 items για κάθε δύο τέτοια itemsets. Αναζήτηση στην υπόλοιπη λίστα όλων των υποσύνολωντουνέου itemset. Αν υπάρχουν το itemset προστίθεται στη λίστα των υποψηφίων (k+1) frequent itemsets καιπρέπεινα υπολογιστεί η συχνότητά του για να αποφανθούµε αν είναι frequent. 7/6/2012 13
Παράδειγµα εκτέλεσης του a-priori Έστωηλίσταµετα frequent 3-itemsets {a,b,d}, {a,b,f}, {a,d,f}, {b,c,f}, {b,c,g}, {b,c,k}, {b,d,f}, {b,d,l}, και {c,d,f} {a,b,d}, {a,b,f} => {a,b,d,f} Υποσύνολα: {a,b,d} {a,b,f} {a,d,f} {b,d,f} {a,b,d,f}είναι candidate frequent {a,b,d}, {a,d,f} => {} {b,c,f}, {b,c,g} => {b,c,f,g} Υποσύνολα: {b,c,f}, {b,c,g}, {b,f,g}, {c,f,g} {b,c,f,g}δενείναι candidate frequent 7/6/2012 14
Aλγόριθµος FP-growth [Han, Pei, Yin 00] Αποθήκευση της βάσης δεδοµένων στη δοµή FPtreeµε 2 διασχίσεις Υπολογισµός των συχνοτήτων όλων των singletons(1-itemsets) Αφαίρεση των non-frequent items και επαναδιάταξη των εγγραφών µε φθίνουσα σειρά συχνότητας των items Τοποθέτηση των εγγραφών στο δέντρο Εξόρυξη των συχνών συνόλων αντικειµένων χωρίς candidate generation 7/6/2012 15
Κατώφλι συχνότητας 3 f, b, p f : 5 b : 2 p : 1 7/6/2012 16
FP-growth Οαλγόριθµοςξεκινάαπότο item µετην µικρότερη συχνότητα. Φτιάχνει το υποδέντρο µε τα µονοπάτια που καταλήγουν σε αυτό. Στο νέο δέντρο ενηµερώνει συχνότητες και βρίσκει όλα τα frequent 2-itemsets. Συνεχίζει µε τα δέντρα που προκύπτουν για καθένα από αυτά τα δισύνολα Σε κάθε τέτοιο δέντρο προσπαθεί να φτιάξει τρισύνολα κ.λπ. 7/6/2012 17
Παράδειγµα Threshold 3 f : 2 c : 2 a : 2 Οαλγόριθµοςξεκινάµετο p 2 µονοπάτια έχουν p Ενηµέρωση συχνοτήτων Υπολογισµός συχνοτήτων items Συχνότο c Άρα το cp είναι συχνό. 7/6/2012 18
Παράδειγµα Επόµενο item m f : 3 Μονοπάτια του νέου υποδέντρου f,c,a και f,c,a,b Ενηµέρωση συχνοτήτων Υπολογισµός συχνοτήτων των items Συχνάτα f, c, a Άρα 3 συχνά 2-itemsets τα (f,m), (c,m), (a,m) Ξεκινώ µε το (a,m) και φτιάχνω υποδέντρο µε µονοπάτια που καταλήγουν σεαυτό. (στοπ.χ. Είναι µόνοτο (f,c) 7/6/2012 19
Improving the Efficiency of Apriori Hash based technique Πρώτη διάσχιση της βάσης εδοµένων Υπολογισµός των frequent 1-itemsets Για κάθε transaction υπολόγισε όλα τα 2- itemsets Χρησιµοποίησε την hash function & τοποθέτησέτα στο hash table ιαγραφή των non-frequent buckets Transaction reduction Αν µία transaction δεν περιέχει frequent itemsets διέγραψέ τη (k+1 itemsets are non frequent) 7/6/2012 20
Παράδειγµα TID 100 200 300 400 500 600 700 800 900 List of items I1,I2,I5 I2, I4 I2,I3 I1,I2,I4 I1, I3 I2,I3 I1,I3 I1,I2,I3,I5 I1,I2,I3 7/6/2012 21
Παράδειγµα hash function ((order x) 10 + (order y) mod7 Bucket address 0 1 2 3 4 5 6 Bucket contents I1, I4 I1, I5 I2, I3 I2, I4 I2, I5 I1, I2 I1, I3 I3, I5 I1, I5 I2, I3 I2, I4 I2, I5 I1, I2 I1, I3 I2, I3 I1, I2 I1, I3 I2, I3 I1, I2 I1, I3 Bucket count 2 2 4 2 2 4 4 7/6/2012 22
Prefix Tree Prefix Tree Εισαγωγή του {a,b,e,f,g} abefg 7/6/2012 23
Prefix Tree Prefix Tree Υπολογισµός Της συχνότητας του {c,g} 7/6/2012 24
Prefix Tree Υπολογισµός Της συχνότητας του {c,g} 7/6/2012 25
Interesting rules Database 10000 transactions 6000 buy computer games 7500 buy videos 4000 buy both Support 40%, Confidence 4000/6000=66% Computers and videos are not correlated Correlation = P(AUB)/(P(A)P(B)) 7/6/2012 26
Συναφή προβλήµατα Παραλληλοποίηση των αλγορίθµων Πρόβληµα: ανταλλαγή µηνυµάτων ανά επίπεδο υναµικές βάσεις εδοµένων Πρόβληµα: χώρος στη µνήµη για τα µη συχνά itemsets που πιθανόν να προκύψουν συχνά. 7/6/2012 27