ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Αναγνώριση Προτύπων Εργασία 2η Clustering Κιντσάκης Αθανάσιος 6667 Μόσχογλου Στυλιανός 6978 18 Ιανουαρίου, 2013 thanos_kintsakis@hotmail.com stelios@moschoglou.com
Περιεχόμενα Περιγραφή του προβλήματος... 3 Οργάνωση του συνόλου των δεδομένων... 3 Κατασκευή των attributes... 3 Clustering... 4 Summer... 4 Hierarchical... 4 SOM... 10 Kmeans... 13 Autumn... 16 Hierarchical... 16 SOM... 19 Kmeans... 21 Winter... 23 Hierarchical... 23 SOM... 26 Kmeans... 28 Spring... 30 Hierarchical... 30 SOM... 33 Kmeans... 35 2
Περιγραφή του προβλήματος Στα πλαίσια της εργασίας αυτής κληθήκαμε να ομαδοποιήσουμε μια σειρά καταστημάτων ε- νός εμπορικού κέντρο με κριτήριο την ενεργειακή τους κατανάλωση. Μας δόθηκε ένα σύνολο δεδομένων που περιείχε την ενεργειακή κατανάλωση ανά ώρα κάθε καταστήματος για έναν αριθμό συνεχόμενων ημερών (υπερβαίνει ελαφρώς το ένα έτος). Ο τρόπος που εργαστήκαμε ήταν αρχικά να τροποποιήσουμε τον τρόπο οργάνωσης των δεδομένων, στη συνέχεια από τα δεδομένα αυτά δημιουργήσαμε έναν αριθμό από attributes για κάθε κατάστημα και τέλος με βάση τα attributes αυτά έγινε το clustering. Το clustering έγινε με βάση τις τεχνικές kmeans,smo,hierarchical. Οργάνωση του συνόλου των δεδομένων Αρχικά ανοίξαμε στο WEKA το.csv το αρχείο και αφαιρέσαμε την ημερομηνία. Επίσης στο excel αφαιρέσαμε τα ονόματα στην πρώτη γραμμή. Στη συνέχεια εισάγαμε τα δεδομένα στο matlab. Τα δεδομένα δίνονται οργανωμένα ανά ημέρα. Χωρίζουμε τις ημέρες λοιπόν στις 4 εποχές και έτσι έχουμε 4 πίνακες, έναν για κάθε εποχή. Η συνάρτηση store_wise τα οργανώνει τα δεδομένα κάθε εποχής ανά κατάστημα, δηλαδή έ- χουμε πχ την κατανάλωση του πρώτου καταστήματος για κάθε μέρα, ακολουθεί του δεύτερου κτλ.. Καταλήγουμε λοιπόν με 4 πίνακες, έναν για κάθε εποχή, οι οποίοι είναι οργανωμένοι ανά κατάστημα. Κατασκευή των attributes Για να κατασκευάσουμε τα attributes βάση των οποίων θα γίνει το clustering αρχικά χωρίσαμε την ημερήσια ωριαία κατανάλωση κάθε καταστήματος σε 3 χρονικές 8ώρες ζώνες. Στο σύνολο των ημερών της εποχής, βρήκαμε για κάθε μια από τις 3 8ώρες ζώνες τις ημέρας το average, max και sum. Καταλήγουμε λοιπόν με έναν πίνακα όπου έχουμε για κάθε κατάστημα το average, max και sum κάθε τρίωρου όλων των ημερών της εποχής. Ο πίνακας έχει σαν γραμμές τα καταστήματα και σαν στήλες τα average, max και sum κάθε τρίωρου, τα οποία είναι 9 σε αριθμό και αποτελούν τα attributes βάση των οποίων θα γίνει clustering. Έχουμε έναν τέτοιον πίνακα για κάθε εποχή. 3
Clustering Summer Αρχικά εντοπίζουμε πως τα μαγαζιά 6,28,35,40,41,42,45,47 έχουν μηδενική κατανάλωση σε όλη την διάρκεια της εποχής. Οπότε αμέσως αποβάλλονται από το σετ. Hierarchical Πραγματοποιούμε Ιεραρχικό Clustering με αριθμό clusters ίσο με 8. Προκύπτουν 4
Παρατηρούμε πως ο κόκκινος και ο καφέ έχουν πολύ αυξημένη κατανάλωση σε σχέση με τους υπολοίπους και μάλιστα αυτή εμφανίζεται και στα 3 οκτάωρα, σε όλη δηλαδή την διάρκεια της ημέρας. Τους μαρκάρουμε λοιπόν ως πολύ καλούς πελάτες και τους απομακρύνουμε από το σετ. Οι πελάτες αυτοί είναι ο 2 και ο 14. Αφού τους απομακρύνουμε λοιπόν ξανατρέχουμε τον αλγόριθμο Clustering ξεκινώντας από χαμηλό αριθμό clusters και σταδιακά αυξάνοντας. Αρχικά τρέχουμε για 4. Προκύπτουν 5
Παρατηρούμε πως το μουσταρδί cluster (no comment για το χρώμα το matlab τα διαλέγει από το pallet) αποτελεί τους χαμηλής ισχύος καταναλωτές και με καταναλωτική συμπεριφορά που χαρακτηρίζεται από ελάχιστη κατανάλωση τις ώρες 1-8. Η κατανάλωση τους λαμβάνει χώρα τις ώρες 9-16 και 17-24. Στη συνέχεια το καφέ cluster έχει αυξημένη κατανάλωση και ως προς τους 3 άξονες (τα 3 ο- κτάωρα) σε σχέση με το μουσταρδί. Στο καφέ cluster έχουμε παρόμοια καταναλωτική συμπεριφορά με το μουσταρδί αν και έχουμε και κάποιες περιπτώσεις αυξημένης βραδινής κατανάλωσης. Το σκούρο μπλε και το γαλάζιο cluster αποτελούν καταστήματα με αρκετά αυξημένη κατανάλωση σε σχέση με τα καφέ και μουσταρδί. Τα δύο clusters αυτά έχουν από 2 στοιχεία το καθένα, βλέπουμε όμως πως και στις 2 περιπτώσεις το ένα από τα δύο διαφέρει πολύ ως προς το άλλο στην βραδινή κατανάλωση τις ώρες 1-8. Αν μας ενδιαφέρει πολύ να γίνει η διαφοροποίηση αυτή αυξάνουμε τον αριθμό των clusters σε 6 και ξανατρέχουμε τον αλγόριθμο από όπου προκύπτουν και τα παρακάτω αποτελέσματα. 6
Τα clusters πορτοκαλί και καφέ αντιστοιχούν στα προηγούμενα μουσταρδί και καφέ. Δεν έ- χουμε να αναφέρουμε κάτι περαιτέρω για αυτά, ισχύουν τα προηγούμενα. Τα υπόλοιπα 4 clusters αποτελούν σημεία με κοινό την αυξημένη κατανάλωση αλλά πιο συγκεκριμένα Ο ανοιχτό μπλε έχει γενικά μέτρια αυξημένη κατανάλωση με peak τις βραδινές ώρες (1-8). Ο σκούρο μπλε έχει γενικά μέτρια αυξημένη κατανάλωση αλλά κυρίως τις ώρες 9-16 και 17-24 Ο γαλάζιος έχει αρκετά αυξημένη κατανάλωση κυρίως τις ώρες 9-16 και 17-24 Ο κίτρινος έχει αρκετά αυξημένη κατανάλωση κυρίως τις βραδινές 1-8 ώρες. Οι συντελεστές αποτίμησης της ποιότητας για το κάθε cluster είναι Cohesion 1.0e+10 * 0 0 0 0 2.4121 7
4.4964 Mean Cohesion 1.1514e+10 Separation 1.0e+12 * 2.9809 1.2479 6.1134 4.4915 1.0893 0.6696 Mean Separation 2.7654e+12 Silhouette 1.0000 1.0000 1.0000 1.0000 0.8026 0.6938 Mean Silhouette 0.9161 Παρατηρήσεις Οι εικόνες είναι σε bitmap. Η ποιότητα τους είναι πολύ καλή και με αρκετά μεγάλο zoom φαίνονται καθαρά οι διαφορές. Επειδή είναι 3d plot χρειάζονται rotate για να φανούν επαρκώς οι διαφορές. Για το λόγο αυτό αν χρειαστεί μπορούμε να σας δείξουμε τα matlab figures που επιδέχονται rotate. Για clusters του ενός σημείου το cohesion το θέτουμε 0 και αντίστοιχα τον συντελεστή silhouette 1. 8
Αφού καταλήξουμε λοιπόν πειραματικά στον βέλτιστο αριθμό clusters τρέχουμε στη συνέχεια και τους υπόλοιπους αλγορίθμους και συγκρίνουμε τα αποτελέσματα. 9
SOM Cohesion 1.0e+11 * 5.3409 10
0 0 0.4496 0.1004 0.0798 Seperation 1.0e+12 * 5.4313 2.9809 1.2479 0.6696 0.6178 0.8269 Silhouette 0.1213 1.0000 1.0000 0.4046 0.6438 0.7430 mean cohesion 9.9512e+10 11
mean separation 1.9624e+12 mean silhouette 0.6521 12
Kmeans cohesion 1.0e+11 * 0.0654 0.1900 0.0334 13
0.0876 5.8349 2.3161 seperation 1.0e+12 * 0.7345 0.6155 0.7033 0.5441 4.7477 0.7919 silhouette 0.4334 0.5974 0.6712 0.4915 0.7010 0.0227 mean cohesion 1.4212e+11 mean separation 1.3562e+12 mean silhouette 0.4862 14
Καταλήγουμε πως το καλύτερο οπτικά αλλά και βάση των μετρικών αξιολόγησης clustering παράγει ο ιεραρχικός αλγόριθμος. Ακολουθεί ο SOM και τελευταίος έρχεται ο kmeans. Για τις υπόλοιπες εποχές εργαστήκαμε με τον ίδιο τρόπο. Συνοψίζουμε τα βήματα Αφαιρούμε τα καταστήματα με μηδενική κατανάλωση Μαρκάρουμε τα καταστήματα με πολύ υψηλή κατανάλωση ως high profile καταναλωτές και τους αφαιρούμε από το σετ. Πραγματοποιούμε πειραματικές δοκιμές με χρήση ενός αλγορίθμου (συνήθως του ιεραρχικού) για να βρούμε τον βέλτιστο αριθμό clusters βάση του οποίου έχουμε το ο- πτικά καλύτερο αλλά και χρήσιμο (να μπορούν να βγουν συμπεράσματα) αποτέλεσμα. Αφού βρούμε τον βέλτιστο αριθμό clusters εκτελούμε για αυτόν και τους υπόλοιπους αλγορίθμους και συγκρίνουμε τα αποτελέσματα. Η λογική είναι ακριβώς ίδια για τις υπόλοιπες εποχές. Παρακάτω παραθέτουμε για τις υπόλοιπες εποχές μόνο τα αποτελέσματα της παραπάνω διαδικασίας. 15
Autumn Μηδενική κατανάλωση έχουν οι 28,35,40,41,42,45,47 High profile καταναλωτής ο 14 και πάλι Ακολουθεί clustering με 5 ομάδες Hierarchical 16
all_cohesion 1.0e+11 * 0 0.5270 2.7752 4.7465 0.0733 all_seperation 1.0e+12 * 0.9875 0.9954 2.1383 5.0348 0.9014 all_silhouette 1.0000 0.4287 0.5312 0.4587 0.9511 mean cohesion 1.6244e+11 mean separation 2.0115e+12 17
mean silhouette 0.6739 18
SOM cohesion 1.0e+11 * 4.7465 0 19
2.7752 0.3779 0.2169 seperation 1.0e+12 * 5.0348 0.9875 2.1383 0.7089 1.0847 silhouette 0.4587 1.0000 0.5312 0.6908 0.7962 mean cohesion 1.6233e+11 mean separation 1.9908e+12 mean silhouette 0.6954 20
Kmeans cohesion 1.0e+11 * 0.1173 5.0937 5.9889 21
0.1867 0.0548 seperation 1.0e+12 * 0.9691 3.9637 1.0853 0.7363 0.4996 silhouette 0.8448 0.5765 0.2125 0.6486 0.9429 mean cohesion 2.2883e+11 mean separation 1.4508e+12 mean silhouette 0.5600 22
Winter Μηδενική κατανάλωση οι 28,35,40,41,42,45,47 High profile καταναλωτής ο 14 Ακολουθεί clustering με 5 ομάδες Hierarchical 23
cohesion 1.0e+11 * 3.4423 5.5410 0 0.3877 0.1126 seperation 1.0e+12 * 1.9192 4.2859 0.9353 0.6578 0.7709 silhouette 24
0.3246 0.3010 1.0000 0.5642 0.8999 mean cohesion 1.8967e+11 mean separation 1.7138e+12 mean silhouette 0.6179 25
SOM cohesion 1.0e+11 * 5.5410 0 3.4423 26
0.3498 0.1847 seperation 1.0e+12 * 4.2859 0.9353 1.9192 0.5773 0.8390 silhouette 0.3010 1.0000 0.3246 0.6396 0.7997 mean cohesion 1.9036e+11 mean separation 1.7113e+12 mean silhouette 0.6130 27
Kmeans cohesion 1.0e+11 * 0.1126 0.1285 0.1785 28
5.8375 4.8625 seperation 1.0e+12 * 0.7709 0.4069 0.5659 1.0685 3.8227 silhouette 0.8377 0.7847 0.6097 0.1335 0.6253 mean cohesion 2.2239e+11 mean separation 1.3270e+12 mean silhouette 0.5448 29
Spring Μηδενική Κατανάλωση οι 28,35,40,41,42,45,47 High profile καταναλωτής ο 14 Ακολουθεί clustering με 5 ομάδες Hierarchical 30
cohesion 1.0e+11 * 0 2.3416 1.1584 0.3698 0.0964 seperation 1.0e+12 * 3.2585 3.3193 0.7475 0.5446 0.6988 silhouette 1.0000 0.4243 0.7081 0.5420 0.9175 mean cohesion 7.9324e+10 mean separation 1.7137e+12 31
mean silhouette 0.7184 32
SOM cohesion 1.0e+11 * 3.5149 1.1584 0.1606 33
0.1485 0.0964 seperation 1.0e+12 * 3.4000 0.7475 0.3633 0.4697 0.6988 silhouette 0.6715 0.3339 0.7160 0.6787 0.8647 mean cohesion 1.0158e+11 mean separation 1.1359e+12 mean silhouette 0.6530 34
Kmeans cohesion 1.0e+11 * 0.1516 3.5149 35
0.0869 0.0650 1.3450 seperation 1.0e+12 * 0.4455 3.4000 0.5600 0.5443 0.5813 silhouette 0.7571 0.7677 0.4784 0.6234 0.2106 mean cohesion 1.0327e+11 mean separation 1.1062e+12 mean silhouette 0.5674 36
Γενικότερα το καλύτερο clustering έκανε ο ιεραρχικός αλγόριθμος, ακολουθεί ο SOM με μικρή διαφορά και τελευταίος ο kmeans. Τέλος παραθέτουμε και την μέση κατανάλωση όλων των καταστημάτων ανά εποχή Summer 728,7367 Autumn 583.8262 Winter 504.8358 Spring 436.8885 Ευχαριστούμε θερμά τον κ. Ανδρέα Συμεωνίδη που ήταν και είναι πάντα διαθέσιμος σε ο- ποιαδήποτε απορία έχουμε. Κιντσάκης Αθανάσιος Μόσχογλου Στυλιανός 37