ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Αποθήκες και Εξόρυξη Δεδομένων 4 Ο Εργαστήριο WEKA (Association Rules) Στουγιάννου Ελευθερία estoug@unipi.gr
-2- Κανόνες Συσχέτισης (Association Rules) Εύρεση συσχετίσεων μεταξύ των διαφόρων χαρακτηριστικών των δεδομένων. Κανόνες συσχέτισης Έστω I ένα σύνολο από αντικείμενα (items) Ένας κανόνας συσχέτισης έχει τη μορφή X => Y όπου X,Y I και X Y = ø Το X ονομάζεται head (κεφαλή) ή LHS (left-hand side) ή antecedent (προηγούμενο) του κανόνα. Το Y ονομάζεται body (σώμα) ή RHS (right-hand side) ή consequent (επακόλουθο) του κανόνα. Ένας κανόνας σχετίζεται με διάφορα μέτρα ποιότητας όπως: H υποστήριξη (support) του κανόνα ορίζεται ως το ποσοστό των δοσοληψιών που περιέχουν τα αντικείμενα (X Y), δηλ. και το Χ και το Y. ή αλλιώς η πιθανότητα P(X Y) Η εμπιστοσύνη (confidence) του κανόνα ορίζει πόσες από τις δοσοληψίες (ποσοστό) που περιέχουν το X περιέχουν και το Υ. ή αλλιώς, η εξαρτημένη πιθανότητα P(X Y Χ) = P(X Y)/P(X). (Η Εμπιστοσύνη μετράει την Αξιοπιστία του Κανόνων Συσχέτισης)
-3- Διαφορές με τη μάθηση ταξινόμησης Οι Κανόνες Συσχέτισης: Μπορούν να αναδείξουν τη συσχέτιση είτε να προβλέψουν την τιμή οποιουδήποτε χαρακτηριστικού και όχι μόνο της τάξης. Συνδέουν πιθανόν περισσότερα από ένα χαρακτηριστικά κάθε φορά. Επομένως, προκύπτουν πολλοί περισσότεροι κανόνες συσχέτισης από ότι κανόνες ταξινόμησης. Πρόβλημα: αχανής αριθμός πιθανών συσχετίσεων. Απαιτείται η θέσπιση περιορισμών (κριτηρίων), ώστε να αναδειχθούν μόνο οι σημαντικότερες των προβλεπτικών συσχετίσεων μόνο εκείνες με υψηλή υποστήριξη (support) και υψηλή εμπιστοσύνη (confidence).
-4- Μορφή Κανόνων Συσχέτισης Έχουν μορφή: If temperature = cool then humidity = normal If windy = false and play = no then outlook = sunny and humidity = high Συσχετίζουν τις τιμές των διαφόρων attributes μεταξύ τους.
-5- WEKA Explorer: Finding Associations @weka->associate->assosiator Το WEKA περιέχει μεταξύ άλλων τον Apriori αλγόριθμο για την εύρεση κανόνων συσχέτισης. Δουλεύει μόνο με διακριτά δεδομένα (ΟΧΙ Αριθμητικά). Μπορεί να προσδιορίσει στατιστικές εξαρτήσεις μεταξύ των ομάδων των χαρακτηριστικών: Π.χ Γάλα, βούτυρο ψωμί, αυγά (με confidence 0.9 και support 0,5) Ο αλγόριθμος Apriori μπορεί να υπολογίσει όλους τους κανόνες που έχουν ένα δοθέν minimum support και υπερβαίνουν ένα δοθέν επίπεδο confidence.
-6- WEKA Explorer: Κανόνες Συσχέτισης Επιλογή Αλγορίθμου
-7- WEKA Explorer: Κανόνες Συσχέτισης Καθορισμός Παραμέτρων Αλγορίθμου
-8- WEKA Apriori: Παράμετροι car: εάν είναι true, εξάγονται οι κανόνες συσχέτισης κλάσης (Class Association Rules) αντί των (γενικών) κανόνων συσχέτισης, σύμφωνα με την τιμή του χαρακτηριστικού classindex που ακολουθεί. Εάν το classindex είναι -1, τότε η κλάση είναι το τελευταίο γνώρισμα. lowerboundminsupport: η ελάχιστη τιμή που μπορεί να πάρει το μέτρο της υποστήριξης (support) ενός κανόνα. metrictype: μετρικές που χρησιμοποιούνται για την αξιολόγηση του κανόνα. Confidence είναι το μόνο χρησιμοποιήσιμο αν το car=true Lift Lift(A,B) = c(a,b)/p(b) Leverage Leverage(A=>B) = P(A,B) / P(A)P(B) Conviction Conviction(A=>B) = P(A)P(not(B))/P(A,not(B)) minmetric: ελάχιστη τιμή για τo επιλεγμένο ακριβώς πιο πάνω χρησιμοποιούμενο μετρικό (Confidence, Lift, Leverage-Conviction). numrules: μέγιστος αριθμός των κανόνων που πρέπει να επιστραφεί. outputitemsets: αν είναι true, το σύστημα επιστρέφει τα συχνά στοιχειοσύνολα (itemsets). delta Συντελεστής μείωσης του ελάχιστου ορίου του μέτρου της υποστήριξης (support). upperboundminsupport σε σχέση με lowerboundminsupport. Οι επαναλήψεις σταματούν όταν φτάσετε στο κάτω όριο της υποστήριξης (support) ή όταν δημιουργηθεί ο απαιτούμενος αριθμός κανόνων.
-9- Αλγόριθμος Apriori (1/2) Εκτελεί τόσο αριθμό περασμάτων όσο (το πολύ) το πλήθος των διαφορετικών αντικειμένων. Ιδιότητα Τερματισμού Υποσυνόλου: Κάθε υποσύνολο ενός συχνού συνολοστοιχείου είναι επίσης συχνό. Σε κάθε διαδοχική προσπέλαση χρησιμοποιούνται τα (συχνά) συνολοστοιχεία του προηγούμενου περάσματος, με στόχο να δημιουργηθούν καινούργια συνολοστοιχεία.
-10- Αλγόριθμος Apriori (2/2) k = 1 Γενικός Αλγόριθμος Δημιούργησε όλα τα συχνά στοιχειοσύνολα μήκους 1 Repeat until δεν δημιουργούνται νέα στοιχειοσύνολα Δημιούργησε υποψήφια στοιχειοσύνολα μήκους (k+1) από τα συχνά στοιχειοσύνολα μήκους k Prune τα υποψήφια στοιχειοσύνολα που περιέχουν υποσύνολα μήκους k που δεν είναι συχνά Υπολόγισε την υποστήριξη (support) κάθε υποψηφίου στοιχειοσύνολου διαβάζοντας από τη βάση δεδομένων Σβήσε τα υποψήφια στοιχειοσύνολα που δεν είναι συχνά, αφήνοντας μόνο τα συχνά.
-11- Αλγόριθμος Apriori (3/3) Χωρισμός του προβλήματος σε δύο υποπροβλήματα: Εύρεση όλων των συχνών στοιχειοσυνόλων (Frequent Itemset Generation) Εύρεση όλων των στοιχειοσυνόλων με υποστήριξη minsup Δημιουργία Κανόνων (Rule Generation) Για κάθε στοιχειοσύνολο, δημιούργησε κανόνες με μεγάλη υποστήριξη, όπου κάθε κανόνας είναι μια δυαδική διαμέριση του συχνού στοιχειοσυνόλου.
-12- Παράδειγμα Apriori (1/4) Γενικά: Support: Αριθμός υποδειγμάτων που υποστηρίζει ο κανόνας. Confidence: Πόσες από τις προβλέψεις ήταν επιτυχείς. C i : Υποψήφια i-itemsets. L i : Σύνολο (συχνών) frequent i-itemsets. items: π.χ. 1, 2, 3 κτλ. itemsets: π.χ. {1, 2}, {3,4,5} κτλ. Frequent itemsets: support>=minsupport Κανόνες Συσχέτισης: confidence>=minconfidence
-13- Παράδειγμα Apriori (2/4) Database D TID Items 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5 Scan D itemset sup. {1} 2 {2} 3 {3} 3 {4} 1 {5} 3 C 1 L 1 itemset sup {1 2} 1 {1 3} 2 {1 5} 1 {2 3} 2 {2 5} 3 {3 5} 2 C 2 C 2 L 2 itemset sup Scan D {1 3} 2 {2 3} 2 {2 5} 3 {3 5} 2 C 3 itemset Scan D L 3 {2 3 5} itemset sup {2 3 5} 2 itemset sup. {1} 2 {2} 3 {3} 3 {5} 3 itemset {1 2} {1 3} {1 5} {2 3} {2 5} {3 5}
-14- Παράδειγμα Apriori (3/4) Θέτω: minsupport =0,3. Database D TID Items 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5 C 1 {1} => sup=2/4=0,5=50% {2} => sup=3/4=0,75=75% {3} => sup=3/4=0,75=75% {4} => sup=1/4=0,25=25% Απορρίπτεται {5} => sup=3/4=0,75=75% L 1 C 2 {1,2} => sup=1/4=0,25=25% Απορρίπτεται {1,3} => sup=2/4=0,50=50% {1,5} => sup=1/4=0,25=25% Απορρίπτεται {2,3} => sup=2/4=0,50=50% 0,25<0,3 0,25<0,3 {2,5} => sup=3/4=0,75=75% {3,5} => sup=2/4=0,50=50%
-15- Παράδειγμα Apriori (4/4) L 2 C 3 {2,3,5} => sup=2 /4=0,50=50% 0,5>0,3 L 3 Association Rules Θέτω: minconfidence=0,9 Ελέγχω τους πιθανούς συνδυασμούς από τα (L 1, L 2,) L 3, έτσι ώστε να παράγω κανόνες που το confidence τους δεν θα είναι μικρότερο από το minconfidence.
-16- Παράδειγμα Apriori στο Weka (1/2) Δημιουργήστε το κατάλληλο αρχείο.arff ή.csv που να εκφράζει το παραπάνω παράδειγμα, δηλ. να έχει ως δεδομένα τα: [1,3,4], [2,3,5], [1,2,3,5], [2,5]. 12345.csv TID Items 100 1 3 4 200 2 3 5 300 1 2 3 5 400 2 5 12345.arff
-17- Παράδειγμα Apriori στο Weka (2/2)
-18- Weka Associate: Άσκηση Apriori (1/8) Δίνεται Β.Δ. με 4 transactions. Ποιοί κανόνες συσχέτισης από αυτά μπορούν να παραχθούν όταν minimum support (coverage) είναι 60% και το minimum confidence (accuracy) είναι 80%; ΣΧΕΔΙΑΣΜΟΣ ΛΥΣΗΣ. Πίνακας Δυαδικής αναπαράστασης δεδομένων:
-19- Weka Associate: Άσκηση Apriori (2/8) ΛΥΣΗ: ΒΗΜΑ 1 Εύρεση των itemsets. Ξεκινάμε βρίσκοντας τα itemsets που περιέχουν 1 item. Ο αριθμός εμφάνισής τους και η τιμή της υποστήριξης (support) για κάθε itemset εμφανίζονται μετά από το κάθε itemset. Για να έχουμε minimum support 60%, το κάθε item πρέπει να εμφανίζεται τουλάχιστον σε 3 transactions. ΛΥΣΗ: ΒΗΜΑ 2 Εύρεση των itemsets που περιέχουν 2 items. Επιλέγουμε τα item sets από το προηγούμενο βήμα που το support είναι 60% ή περισσότερο.
-20- Weka Associate: Άσκηση Apriori (3/8) ΛΥΣΗ: ΒΗΜΑ 2 (συνέχεια) ΛΥΣΗ: ΒΗΜΑ 3 Εύρεση των itemsets που περιέχουν 3 items. Επιλέγουμε τα item sets από το προηγούμενο βήμα που το support είναι 60% ή περισσότερο. ΛΥΣΗ: ΒΗΜΑ 4 Σχεδιάζουμε τους κανόνες και υπολογίζουμε το confidence (c) τους. Επιλέγουμε τα item sets από το προηγούμενο βήμα που το support είναι 60% ή περισσότερο.
-21- Weka Associate: Άσκηση Apriori (4/8) ΛΥΣΗ: ΒΗΜΑ 4 (συνέχεια) Αρχικοί Κανόνες: Κανόνες: Τελικοί Οι κανόνες με 75% confidence απορρίπτονται, 75%<80%
-22- Weka Associate: Άσκηση Apriori (5/8) ΛΥΣΗ WEKA: Βγαίνουν τα ίδια αποτελέσματα και οι ίδιοι κανόνες στο Weka, με αυτά που υπολογίσαμε πριν, χειρονακτικά; Δημιουργία.arff ή.cvs αρχείου και φόρτωσή του στο Weka.
-23- Weka Associate: Άσκηση Apriori (6/8)
-24- Weka Associate: Άσκηση Apriori (7/8) Επιλέγονται μόνο όσα είναι True. ΣΥΜΠΕΡΑΣΜΑ: Τελικά, παράγονται στο weka τα ίδια αποτελέσματα, τα ίδια itemsets και οι ίδιοι κανόνες με αυτούς που υπολογίσαμε χειρονακτικά, σε προηγούμενες διαφάνειες.
-25- Weka Associate: Άσκηση Apriori (8/8) Εκτός από τα support, confidence υπάρχουν και άλλα μέτρα που μπορούν να περιγράψουν τους κανόνες συσχέτισης που παρήχθησαν: Υπολογίστε τις παραμέτρους lift, leverage and conviction για τους κανόνες που παρήχθησαν. Lift(A,B) = c(a,b)/p(b) Leverage(A=>B) = P(A,B) / P(A)P(B) Conviction(A=>B) = P(A)P(negation(B))/P(A, negation(b)) Υπολογισμοί για κάθε Κανόνα To Leverage παίρνει τις τιμές στο διάστημα [-1, 1]. Οι τιμές κάτω από το 0 δείχνουν ισχυρή ανεξαρτησία LHS, και RHS. Lift->1, τα RHS, LHS είναι ανεξάρτητα. Lift ->0, o κανόνας δεν είναι σημαντικός. Lift ->, ενδεχομένως ο κανόνας είναι ενδιαφέρων. Conviction =1 -> A,B δεν σχετίζονται, αν ισχύουν.
-26- WEKA Association Rules: Παράδειγμα 1 Επιλέξτε και φορτώστε το αρχείο weather.nominal.arff. Επιλέξτε και τρέξτε τον Apriori αλγόριθμο. Πειραματιστείτε με τις παραμέτρους του αλγορίθμου. Αποθηκεύστε τα αποτελέσματα. Δοκιμάστε άλλους αλγόριθμους κανόνων συσχέτισης. Δοκιμάστε να τρέξετε τον αλγόριθμο με άλλα datasets.
-27- WEKA Association Rules: Apriori Εκτέλεση Αλγορίθμου για το weather.nominal.arff. Όπως φαίνεται, δεν υπάρχουν αριθμητικές τιμές για να κάνουμε προεπεξεργασία. Properties
-28- Δείγμα Εκτέλεσης του Αλγορίθμου
-29- Ερμηνεία Αποτελεσμάτων Εκτέλεσης Αλγορίθμου (1/2) Default Values: Number of Rules => 10 Minimum Support (delta factor) => 0.05 Minimum Confidence => 0.9 Rule Support: Η αναλογία των παραδειγμάτων που καλύπτονται από την αριστερή (LHS) και από τη δεξιά (RHS) πλευρά του κανόνα. Confidence: Η αναλογία των παραδειγμάτων που καλύπτονται από την αριστερή (LHS), ενώ επιπλέον έχουν καλυφθεί από τη δεξιά (RHS) πλευρά του κανόνα. Με τα default settings του Apriori: Δημιουργούνται 10 Κανόνες ξεκινώντας με Minimum Support 100% (upperboundminsupport). Επαναληπτικά μειώνεται το Support με το delta factor μέχρι να φτάσει το ελάχιστο μημηδενικό Support (lowerboundminsupport) ή να δημιουργηθεί ο απαιτούμενος αριθμός των κανόνων με το ελάχιστο Confidence.
-30- Ερμηνεία Αποτελεσμάτων Εκτέλεσης Αλγορίθμου (2/2) ΕΞΟΔΟΣ WEKA: Minimum support: 0.15 Δείχνει την ελάχιστη υποστήριξη (Support) που μπορεί να φτάσει ένα itemset για να δημιουργηθούν 10 Κανόνες με την ελάχιστή τιμή που έχει οριστεί για το μέτρο εμπιστοσύνης (Confidence), στο παράδειγμά μας έχει πάρει την τιμή 0.9. Τα μεγέθη των itemsets που δημιουργούνται εμφανίζονται: Π.Χ. Υπάρχουν 6 four item sets που έχουν το απαιτούμενο minimum Support (L(4):6). Υπάρχουν 39 three item sets που έχουν το απαιτούμενο minimum Support (L(3):39). Εξ ορισμού: Οι Κανόνες ταξινομούνται και εμφανίζονται στην έξοδο του Weka σύμφωνα με την τιμή που παίρνει το μέτρο της εμπιστοσύνης (Confidence), και σε περίπτωση ίδιας τιμής της εμπιστοσύνης, ξεχωρίζονται οι κανόνες με βάση την τιμή της υποστήριξης (support). Best rules found: Ο αριθμός που προηγείται του συμβόλου ==>, υποδεικνύει τον αριθμό των περιπτώσεων που καλύπτουν το αριστερό κριτήριο (LHS) του κανόνα. Ο αριθμός που έπεται του συμβόλου ==> και του κανόνα, υποδεικνύει τον αριθμό των περιπτώσεων που καλύπτουν το δεξιό κριτήριο (RHS) του κανόνα. Η τιμή στην παρένθεση είναι η τιμή της εμπιστοσύνης του κανόνα (Rule Confidence).
-31- WEKA Association Rules: Αποθήκευση Κανόνων
-32- WEKA Association Rules: Παράδειγμα 2 Επιλέξτε και φορτώστε το αρχείο bank.arff. Επιλέξτε και τρεξτε τον Apriori αλγόριθμο. Πειραματιστείτε με τις παραμέτρους του αλγορίθμου. Αποθηκεύστε τα αποτελέσματα. Δοκιμάστε άλλους αλγόριθμους κανόνων συσχέτισης. Δοκιμάστε να τρέξετε τον αλγόριθμο με άλλα datasets.
-33- WEKA Association Rules: Εισαγωγή Αρχείου Είναι το αρχείο σε κατάλληλη μορφή, για να δουλέψει σωστά ο αλγόριθμός Apriori;
-34- WEKA Association Rules: Associate Γιατί δεν είναι ενεργό; --Χρειάζεται Προ-επεξεργασία!!!
-35- WEKA Association Rules: Preprocess I 1 ος Τρόπος: Apriori => Μόνο Nominal τιμές. Επιστρέφω στην καρτέλα Preprocess => Κάνω Discritize (για να μετατρέψω τις αριθμητικές τιμές σε ονομαστικές διακριτές τιμές.)
-36- WEKA Association Rules: Παραγωγή Κανόνων μετά από Descritize (1/2) Θέτω αριθμό Κανόνων 10, και βαθμό Εμπιστοσύνης 0.9 Ταξινομημένοι Κανόνες σε φθίνουσα σειρά, μέχρι το επιτρεπτό 0.9.
-37- WEKA Association Rules: Παραγωγή Κανόνων μετά από Descritize (2/2) Αλλάζω τον αριθμό των Κανόνων σε 15, αντί 10. Μου λείπει ένας Κανόνας. Γιατί ;;; Ταξινομημένοι Κανόνες σε φθίνουσα σειρά, μέχρι το επιτρεπτό 0.9.
-38- WEKA Association Rules: Preprocess II 2 ος Τρόπος: Apriori => Μόνο Nominal τιμές. Επιστρέφω στην καρτέλα Preprocess => Κάνω Remove (για να αφαιρέσω τα attributes με τις αριθμητικές τιμές.)
-39- WEKA Association Rules: Παραγωγή Κανόνων μετά από Remove Attr.
-40- WEKA Association Rules: Παράδειγμα 3 Ένα επιπλέον παράδειγμα για να πειραματιστείτε μόνοι σας: Επιλέξτε και φορτώστε το αρχείο market_basket.arff. Επιλέξτε και τρέξτε τον Apriori αλγόριθμο, με minsupport=0.05, minmetric=0.7, metrictype=confidence. Βρείτε ενδιαφέροντες κανόνες που εξηγούν τη συμπεριφορά των καταναλωτών. Πειραματιστείτε με τις παραμέτρους του αλγορίθμου. Αποθηκεύστε τα αποτελέσματα. Δοκιμάστε άλλους αλγόριθμους κανόνων συσχέτισης. Δοκιμάστε να τρέξετε τον αλγόριθμο με άλλα datasets.