ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ / ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «ΕΝΤΟΠΙΣΜΟΣ ΑΚΡΟΤΑΤΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΕ ΡΟΕΣ ΔΕΔΟΜΕΝΩΝ» (Outlier detection in data streams) Πίσκας Γεώργιος ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΟΥΝΑΡΗΣ ΑΝΑΣΤΑΣΙΟΣ Θεσσαλονίκη, Ιούνιος 2014 ii ΠΕΡΙΛΗΨΗ Η πτυχιακή αυτή εργασία ασχολείται με την εξόρυξη δεδομένων και πιο συγκεκριμένα, με τον εντοπισμό ανωμαλιών σε ροές δεδομένων. Η επεξεργασία απεριόριστων ροών είναι εκ φύσεως ένα δύσκολο εγχείρημα και θεωρείται μεγάλη πρόκληση στην ερευνητική κοινότητα. Συστήματα όπως το Massive Online Analysis (MOA), το οποίο εξειδικεύεται σε τεχνικές εξόρυξης δεδομένων σε ροές, παρέχουν συλλογές εργαλείων για την δοκιμασία τεχνικών υπό περιορισμούς. Στα πλαίσια της διατριβής αυτής, επεκτάθηκε η εργαλειοθήκη του MOA προσθέτοντας τον αλγόριθμο AnyOut στη συλλογή, ο οποίος είναι ένας αλγόριθμος εύρεσης ακροτάτων παρατηρήσεων σε ροές. Παράλληλα, προστέθηκε η δυνατότητα εφαρμογής μετρικών αξιολόγησης στη λειτουργία της ανάλυσης ανωμαλιών και έγιναν οι απαραίτητες τροποποιήσεις στο γραφικό περιβάλλον. Η εργασία ξεκινάει με την επεξήγηση του απαραίτητου τεχνικού υποβάθρου και τον ορισμό των εννοιών του προβλήματος. Στη συνέχεια περιγράφεται λεπτομερώς το εργαλείο MOA και οι προσθήκες που πραγματοποιήθηκαν. Τέλος, παρατίθενται πιθανά θέματα και ζητήματα στον τομέα της εξόρυξης δεδομένων, τα οποία ίσως απασχολήσουν μελλοντικά την ερευνητική κοινότητα. iii ABSTRACT This thesis deals with the field of data mining and more specifically, with outlier detection in data streams. Processing infinitely large data streams is inherently a difficult task and is considered to be a major challenge by the research community. Frameworks suck as Massive Online Analysis (MOA), which specializes in stream data mining techniques, offer various toolkits for testing purposes under simulated restrictions. In the context of this thesis, AnyOut was added to the algorithm collection of MOA. AnyOut is an online outlier detection algorithm that is applied on data streams. Moreover, a new evaluation measure system was implemented for the outlier analysis functionality of MOA, including several modifications to the graphical user interface that were made for visualization purposes. The thesis begins with the explanation of the necessary technical background and the definition of the relevant terminology. Then, MOA framework as well as our contribution is described in detail. Finally, possible data mining topics and issues are listed that may be addressed in the future by the research community. iv ΕΥΧΑΡΙΣΤΙΕΣ Ολοκληρώνοντας τις προπτυχιακές σπουδές μου παράλληλα με την παρούσα διπλωματική εργασία, θα ήθελα πρώτα από όλους να ευχαριστήσω θερμά τον πατέρα μου Βασίλη, την μητέρα μου Ζωή και βεβαίως τον μεγαλύτερο αδερφό μου Δημήτρη. Η υποστήριξη, η συμπαράσταση και η καθοδήγηση που μου προσέφεραν ήταν και είναι καθοριστική για την ορθή εξέλιξη της ακαδημαϊκής μου πορείας και όχι μόνο. Αμέριστη ήταν επίσης η στήριξη του επιβλέποντος της εργασίας μου, επίκουρου καθηγητή κ. Γούναρη Αναστάσιου, τον οποίο οφείλω να ευχαριστήσω. Η συνεργασία μας ήταν άψογη, ενώ οι συμβουλές του κ. Γούναρη με βοήθησαν να ολοκληρώσω επιτυχώς την εργασία αυτή αλλά και τις σπουδές μου. Τέλος ευχαριστώ τους φίλους μου, τους συμφοιτητές μου και τους καθηγητές μου, για την βοήθεια και τις γνώσεις που μου προσέφεραν όλα αυτά τα χρόνια. v vi ΠΕΡΙΕΧΟΜΕΝΑ Περίληψη ...................................................................................................................... iii Abstract ......................................................................................................................... iv Ευχαριστίες .................................................................................................................... v Κεφάλαιο 1: Εισαγωγή ................................................................................................... 1 1.1 Στόχος της διατριβής ........................................................................................... 2 1.2 Περίληψη αποτελεσμάτων .................................................................................. 2 1.3 Δομή της πτυχιακής ............................................................................................. 3 Κεφάλαιο 2: Εντοπισμός Ακροτάτων Τιμών .................................................................. 5 2.1 Εισαγωγή .............................................................................................................. 6 2.2 Ορισμός ................................................................................................................ 6 2.3 Δεδομένα ............................................................................................................. 7 2.4 Προκλήσεις .......................................................................................................... 8 2.5 Μοντέλα εντοπισμού ακροτάτων τιμών ............................................................. 9 2.5.1 Ανάλυση ακραίων τιμών ............................................................................. 10 2.5.2 Στατιστικό μοντέλο ..................................................................................... 10 2.5.3 Μοντέλα βασισμένα στην εγγύτητα........................................................... 11 Κεφάλαιο 3: Εντοπισμός Ακροτάτων σε Ροές Δεδομένων .......................................... 13 3.1 Διαφορές και προκλήσεις .................................................................................. 14 3.2 Η προσέγγιση Anytime ...................................................................................... 15 3.3 Ο αλγόριθμος AnyOut........................................................................................ 16 3.3.1 Περιγραφή .................................................................................................. 16 3.3.2 Λειτουργία .................................................................................................. 16 3.3.3 Βαθμολόγηση ανωμαλίας .......................................................................... 17 3.3.4 Βαθμολόγηση βεβαιότητας ........................................................................ 18 Κεφάλαιο 4: Massive Online Analysis (MOA) .............................................................. 20 4.1 Εισαγωγή ............................................................................................................ 21 4.2 Γραφικό περιβάλλον .......................................................................................... 22 4.3 Συσταδοποίηση στο MOA .................................................................................. 24 4.3.1 Αλγόριθμοι .................................................................................................. 25 4.3.2 Γραφικό περιβάλλον ................................................................................... 26 4.4 Εντοπισμός ακροτάτων στο MOA ...................................................................... 27 vii 4.4.1 Αλγόριθμοι .................................................................................................. 28 4.4.2 Γραφικό περιβάλλον ................................................................................... 29 4.5 Βιβλιογραφική επισκόπηση ............................................................................... 32 Κεφάλαιο 5: Επεκτάσεις του MOA .............................................................................. 33 5.1 Εισαγωγή ............................................................................................................ 34 5.2 Υλοποίηση του αλγορίθμου AnyOut ................................................................. 34 5.2.1 Η κλάση AnyOutCore .................................................................................. 35 5.2.1.1 Δομές και μεταβλητές.......................................................................... 35 5.2.1.2 Παραμετροποίηση και επιλογές .......................................................... 36 5.2.1.3 Βασικότερες μέθοδοι ........................................................................... 38 5.2.2 Η κλάση AnyOut .......................................................................................... 40 5.2.2.1 Πορεία εκτέλεσης ................................................................................ 40 5.2.2.2 Πληροφορίες και στατιστικά ............................................................... 41 5.2.3 Βοηθητικές κλάσεις .................................................................................... 43 5.3 Υλοποίηση των μετρικών αξιολόγησης ............................................................. 44 5.3.1 Δομή κλάσεων............................................................................................. 44 5.3.2 Μετρικές Αξιολόγησης ................................................................................ 45 5.3.3 Ενσωμάτωση στο MOA ............................................................................... 46 5.4 Λοιπές συνεισφορές .......................................................................................... 49 Κεφάλαιο 6 Συμπεράσματα ......................................................................................... 50 6.1 Σύνοψη και αποτελέσματα ................................................................................ 51 6.2 Μελλοντική έρευνα ........................................................................................... 51 Βιβλιογραφία ............................................................................................................... 53 viii ix ΚΕΦΑΛΑΙΟ 1 Εισαγωγή 1 1.1 Στόχος της διατριβής Τα τελευταία χρόνια, η ραγδαία ανάπτυξη της τεχνολογίας αύξησε τον ρυθμό παραγωγής δεδομένων σε ανεπανάληπτα επίπεδα. Η αφθονία συστημάτων συλλογής δεδομένων όπως τα δίκτυα αισθητήρων, οι φορητές και λοιπές συσκευές και γενικά η καταγραφή και ανάλυση συμβάντων, μεταφορών δεδομένων και συναλλαγών δημιούργησε μια ατέρμονη ροή απροσδιόριστης χωρητικότητας. Όμως, το ασύλληπτο μέγεθος των δεδομένων καθιστά τις σημερινές υπολογιστικές και αποθηκευτικές δυνατότητες ανίκανες να επεξεργαστούν και να αναλύσουν ολόκληρη την συλλογή δεδομένων. Στο άμεσο μέλλον προβλέπεται πως η παραγωγή δεδομένων θα κλιμακώνεται ακόμα ταχύτερα, ιδιαίτερα όταν εδραιωθούν και εξαπλωθούν οι εφαρμογές τύπου Internet of Things [8], δηλαδή όταν η πλειοψηφία αντικειμένων στο περιβάλλον που ζούμε είναι διασυνδεδεμένα και η επικοινωνία αποκτήσει νέο νόημα και νέες διαστάσεις. Ο ερευνητικός τομέας ο οποίος ασχολείται με τις την αντιμετώπιση των παραπάνω προκλήσεων είναι η εξόρυξη δεδομένων. Το ερευνητικό έργο και οι τελευταίες εξελίξεις πάνω στον τομέα αυτό αποτελούν τον ακρογωνιαίο λίθο των περισσότερων μοντέρνων προσεγγίσεων και συστημάτων ανάλυσης δεδομένων. Πρωταρχικός στόχος της διατριβής αυτής είναι η ενασχόληση με την υπάρχουσα τεχνολογία εξόρυξης δεδομένων και πιο συγκεκριμένα, η επικέντρωση γύρω από τις σημερινές state-of-the-art τεχνικές ανάλυσης ανωμαλιών σε ροές. Ο εντοπισμός ακρότατων παρατηρήσεων σε ροές δεδομένων αποτελεί μια περίπλοκη διαδικασία, καθώς πρέπει να αντιμετωπιστούν επιτυχώς πολλαπλά και αλληλοσυγκρουόμενα προβλήματα. Λόγω του περιορισμένου αποθηκευτικού χώρου, είναι αδύνατο να αποθηκευτεί ολόκληρη η ροή δεδομένων ώστε να αναλυθεί εκ των υστέρων. Επίσης, λόγω της περιορισμένης υπολογιστικής ικανότητας, είναι πολλές φορές δύσκολο να παραχθεί ακριβές αποτέλεσμα, ιδιαίτερα υπό συνθήκες στις οποίες απαιτείται άμεση απόκριση. Ας σημειωθεί πως η άμεση απόκριση είναι ένα από τα σημαντικότερα προσόντα ενός αλγορίθμου επεξεργασίας ροών, καθώς πολλές φορές μπορεί από το αποτέλεσμα του αλγορίθμου να εξαρτάται μια κρίσιμη απόφαση, όπως για παράδειγμα συμβαίνει σε εφαρμογές ιατρικής. Οι αλγόριθμοι οι οποίοι εγγυώνται άμεσα αποτελέσματα ανά πάσα στιγμή και ανεξαρτήτως του διαθέσιμου χρονικού διαστήματος επεξεργασίας μεμονωμένων παρατηρήσεων, ονομάζονται Anytime [6] και μελετώνται εις βάθος στα πλαίσια της εργασίας αυτής. 1.2 Περίληψη αποτελεσμάτων Ένα από τα σύγχρονα εργαλεία εξόρυξης σε ροές δεομένων είναι το λεγόμενο Massive Online Analysis ή MOA [10]. Το εργαλείο αυτό κατασκευάστηκε με σκοπό να καλύψει το κενό που υπήρχε σχετικά με τη σύγκριση αλγορίθμων κοινού πεδίου εφαρμογής και, μέχρι σήμερα επεκτείνεται με περισσότερες δυνατότητες και νέους αλγορίθμους. Το εστιακό σημείο της διατριβής ήταν η επέκταση του εργαλείου αυτού, προσθέτοντας στη συλλογή αλγορίθμων ανάλυσης ανωμαλιών τον αλγόριθμο 2 AnyOut [7]. Παράλληλα, προστέθηκε μια νέα λειτουργία στο εργαλείο, η οποία επιτρέπει τη χρήση μετρικών αξιολόγησης πάνω στην προαναφερθείσα λειτουργία. Ο νέος αλγόριθμος AnyOut αποτελεί μια τεχνική εντοπισμού ακροτάτων τιμών βασισμένη στη μέθοδο της συσταδοποίησης. Χρησιμοποιώντας μια ιεραρχική δομή συστάδων η οποία είναι οργανωμένη σε μια δενδρική αναπαράσταση, καταφέρνει να καλύψει τα προαπαιτούμενα χαρακτηριστικά ενός Anytime αλγορίθμου. Όταν ένα νέο αντικείμενο βρίσκεται υπό επεξεργασία, διασχίζεται η δενδρική δομή συστάδων και σταδιακά υπολογίζεται μια βαθμολογία ανωμαλίας για αυτό. Επειδή η εμβάθυνση διακόπτεται όταν ένα νέο αντικείμενο της ροής εμφανιστεί, ο χρόνος επεξεργασίας είναι αυστηρά περιορισμένος. Η τεχνική αυτή επιτρέπει την προσεγγιστική αξιολόγηση των αντικειμένων της ροής και ταυτόχρονα την παροχή αποτελεσμάτων σε πραγματικό χρόνο. Η λειτουργία ανακάλυψης ανωμαλιών στο εργαλείο MOA εμπλουτίστηκε επίσης με την δυνατότητα χρήσης μετρικών αξιολόγησης. Υλοποιήθηκε όλη η απαραίτητη προγραμματιστική υποδομή για την υποστήριξη των μετρικών με γνώμονα την αποδοτικότητα, την απλότητα του κώδικα αλλά και την εύκολη επεκτασιμότητα. Επιπλέον, έγιναν οι απαραίτητες αλλαγές στο γραφικό περιβάλλον του εργαλείου έτσι ώστε ο χρήστης να έχει τη δυνατότητα να επιλέγει τις μετρικές προς εφαρμογή που επιθυμεί, και προστέθηκαν επίσης οι αντίστοιχες περιοχές οπτικοποίησης και γραφικής αναπαράστασης των υπολογισμένων αποτελεσμάτων. 1.3 Δομή της πτυχιακής Η πορεία του κειμένου οργανώνεται στα επόμενα πέντε κεφάλαια. Το πρώτο κεφάλαιο αποτελεί την εισαγωγή, ενώ μετά το πέρας του τελευταίου κεφαλαίου αναγράφονται οι αναφορές. Το δεύτερο κεφάλαιο περιγράφει την σημερινή κατάσταση του προβλήματος της ανακάλυψης ακροτάτων παρατηρήσεων. Αρχικά, δίνονται οι ορισμοί σχετικά με την έννοια του ακροτάτου και της φύσης των δεδομένων προς επεξεργασία. Ακολουθεί μια συνοπτική περιγραφή των πιθανών προκλήσεων που μπορεί να αντιμετωπίσει μια τεχνική και τέλος περιγράφονται τα βασικότερα μοντέλα σχεδιασμού και ανάπτυξης τεχνικών εντοπισμού ακροτάτων τιμών. Το τρίτο κεφάλαιο εξειδικεύει το προηγούμενο, ξεκινώντας με μια εισαγωγή στο πρόβλημα εντοπισμού ανωμαλιών σε ροές δεδομένων και αναφέροντας τις διαφορές και τις νέες προκλήσεις που παρατηρούνται. Στη συνέχεια, ορίζεται η αλγοριθμική προσέγγιση Anytime και περιγράφεται εκτενώς η λειτουργία του αλγορίθμου AnyOut. Δίνεται έμφαση στην δενδρική δομή ClusTree στην οποία βασίζεται η λειτουργία του, καθώς και στον τρόπο βαθμολόγησης των αντικειμένων. Το τέταρτο κεφάλαιο αφορά το εργαλείο Massive Online Analysis (MOA). Αρχικά, αναλύονται οι στόχοι που εξυπηρετεί, η αρχιτεκτονική του και τέλός 3 περιγράφεται η γραφική διεπαφή του. Στη συνέχεια δίνεται έμφαση στις λειτουργίες της συσταδοποίησης και ανάλυσης ανωμαλιών τις οποίες προσφέρει, καθώς αποτελούν τα εστιακά σημεία της διατριβής. Περιγράφεται συνοπτικά η λειτουργία των διαθέσιμων αλγορίθμων και επεξηγείται η οπτικοποίηση των αποτελεσμάτων. Το πέμπτο και κυριότερο κεφάλαιο αναφέρεται στη συνεισφορά της εργασίας αυτής στο εργαλείο MOA. Γίνεται εκτενής αναφορά τεχνικής φύσεως στην υλοποίηση του αλγορίθμου AnyOut και στα συστατικά του μέρη, όπως είναι τα πεδία κλάσεων, οι παραμετροποιήσιμες επιλογές και οι βασικότερες μέθοδοι. Εξ’ ίσου λεπτομερώς περιγράφεται και η υλοποίηση των μετρικών αξιολόγησης, καθώς η λειτουργία αυτή δεν υπήρχε και ενσωματώθηκε στο εργαλείο εκ του μηδενός. Τέλος, αναφέρονται συνοπτικά λοιπές συνεισφορές που έγιναν κατά τη διάρκεια της κατασκευής. Το έκτο και τελευταίο κεφάλαιο αποτελεί μια σύνοψη των προηγούμενων ζητημάτων και συνεισφορών. Η εργασία αυτή κλείνει με την παράθεση μερικών ιδεών και θεμάτων, πάνω στα οποία πιθανώς να επικεντρωθεί το μελλοντικό ερευνητικό έργο της εξόρυξης δεδομένων. 4 ΚΕΦΑΛΑΙΟ 2 Εντοπισμός Ακροτάτων Τιμών 5 2.1 Εισαγωγή Οι ακρότατες τιμές (outliers) ανέκαθεν αποτελούσαν θορυβώδη δεδομένα στον τομέα της στατιστικής. Σήμερα όμως, ο εντοπισμός και η ερμηνεία τους έχει εξελιχθεί σε ένα σημαντικό ερευνητικό και πρακτικό πρόβλημα το οποίο ερευνάται από πολλούς διαφορετικούς κλάδους. Έχει πλέον αναπτυχθεί ποικιλία τεχνικών εντοπισμού ακροτάτων τιμών, τόσο εξειδικευμένες σε συγκεκριμένα προβλήματα όσο και γενικής φύσεως. Βέβαια, οι τεχνικές και τα αποτελέσματα τους δεν είναι εύκολα στην χρήση και στην ερμηνεία και, ως εκ τούτου, ο συγκεκριμένος κλάδος της εξόρυξης δεδομένων παρουσιάζει μεγάλο ενδιαφέρον και ενεργή ερευνητική κοινότητα. Ο εντοπισμός ακροτάτων τιμών (outlier detection) στοχεύει στην εύρεση προτύπων στα δεδομένα τα οποία δεν συμφωνούν με την τυπική «συμπεριφορά» του συνόλου δεδομένων. Η κρισιμότητα των ακροτάτων παρατηρήσεων έγκειται στο γεγονός ότι μπορούν να ερμηνευθούν σε χρήσιμη πληροφορία σε ποικιλία εφαρμογών. Για παράδειγμα, εκτεταμένη χρήση εντοπισμού ακροτάτων γίνεται στους παρακάτω τομείς: Ανακάλυψη πιθανής απάτης (fraud detection) όσον αφορά τραπεζικές συναλλαγές, μέσω παρατήρησης αγοραστικών προτύπων και συνηθειών. Προστασία κρίσιμων συστημάτων από ασυνήθιστες εξωτερικές παρεμβάσεις ή ενδογενή προβλήματα. Παρακολούθηση κίνησης δεδομένων σε δίκτυα υπολογιστών και ανακάλυψη πιθανής μετάδοσης ευαίσθητων δεδομένων σε μη εξουσιοδοτημένο δέκτη. Στρατιωτικές επεμβάσεις και παρακολούθηση εχθρικών κινήσεων, με στόχο την πρόληψη τρομοκρατικών ή/και εγκληματικών πράξεων. 2.2 Ορισμός Σύμφωνα με τον Hawkins [20] ο ορισμός των ακροτάτων παρατηρήσεων είναι ο εξής: «Μια ακρότατη τιμή είναι μια παρατήρηση η οποία έχει τόσο μεγάλη απόκλιση από τις υπόλοιπες παρατηρήσεις που προκαλεί την υποψία ότι παράχθηκε από έναν διαφορετικό μηχανισμό.» Στατιστικά, ο παραπάνω ορισμός σημαίνει πως οι τυπικές, όμοιες παρατηρήσεις κατασκευάζονται μέσω μιας προκαθορισμένης γεννήτριας (π.χ. Γκαουσιανή διαδικασία) ενώ οι ακρότατες τιμές αποκλίνουν από αυτή. Στο Σχήμα 2.1 παρουσιάζεται μια οπτική επεξήγηση του παραπάνω ορισμού. Σημειώνεται πως τα σημεία ο1 και ο2 καθώς και η συστάδα Ο3 είναι ακρότατες παρατηρήσεις, καθώς διαφέρουν σημαντικά από τις συστάδες Ν1 και Ν2, οι οποίες αποτελούνται από τις λεγόμενες τυπικές παρατηρήσεις. 6 Σχήμα 2.1 Παράδειγμα ακροτάτων σε δύο διαστάσεις [29]. Η ανακάλυψη ακροτάτων τιμών συσχετίζεται με το πρόβλημα της αφαίρεσης θορύβου (noise removal), αλλά διακρίνεται από αυτό στο γεγονός ότι ο θόρυβος είναι εξ’ ορισμού ανεπιθύμητος ενώ μια ακρότατη παρατήρηση μπορεί να μεταφραστεί σε πολύτιμη πληροφορία. Ο ανεπιθύμητος θόρυβος ορίζεται ως ένα φαινόμενο των δεδομένων το οποίο δεν παρουσιάζει ενδιαφέρον στον αναλυτή, αλλά αντιθέτως μπορεί να μειώσει την ποιότητα του συνόλου δεδομένων και, ως εκ τούτου, γεννιέται η ανάγκη να αφαιρεθεί προτού εφαρμοστεί κάποια τεχνική εξόρυξης. Ένας ακόμα τομέας που σχετίζεται με την ανακάλυψη ακροτάτων τιμών είναι η ανακάλυψη νέων προτύπων (novelty detection), ο οποίος στοχεύει στον εντοπισμό τους και στην ενσωμάτωσή τους στο μοντέλο των υπαρχόντων προτύπων. Τέλος, άμεση σχέση έχει και ο τομέας της συσταδοποίησης (clustering), από όπου εμπνεύστηκαν ή βασίζονται πολυάριθμες τεχνικές εύρεσης ακροτάτων τιμών. 2.3 Δεδομένα Τα δεδομένα εισόδου είναι μια συλλογή αντικειμένων (objects) ή, διατυπωμένα διαφορετικά, οντότητες, εγγραφές, σημεία, διανύσματα, γεγονότα, παρατηρήσεις και λοιπά. Τα αντικείμενα, με τη σειρά τους, αποτελούνται από ένα σύνολο μεταβλητών ιδιοτήτων (attributes) που τα χαρακτηρίζουν. Ο αριθμός των ιδιοτήτων καθορίζει την διαστασιμότητα (dimensionality) του συνόλου δεδομένων. Οι ιδιότητες περιγράφονται από ένα προκαθορισμένο τύπο δεδομένων, δηλαδή για παράδειγμα δέχονται συνεχείς, διακριτές ή δυαδικές τιμές. Επιπλέον, είναι ανεξάρτητες ως προς τον τύπο μεταξύ τους, με την έννοια ότι δεν είναι απαραίτητο όλες οι ιδιότητες ενός αντικειμένου να είναι του ίδιου τύπου. Οι τύποι δεδομένων των ιδιοτήτων είναι αυτοί που δημιουργούν την ανάγκη σχεδίασης διαφορετικών μοντέλων εξόρυξης δεδομένων. Για παράδειγμα, όταν η ανακάλυψη ακροτάτων τιμών γίνεται με στατιστικές μεθόδους, η επεξεργασία 7 διακριτών τιμών διαφέρει σημαντικά από την επεξεργασία συνεχών. Επίσης, σε τεχνικές που χρησιμοποιείται η απόσταση για τον καθορισμό ή μη ενός αντικειμένου ως ακρότατο, η μετρική απόστασης (distance measure) που θα εφαρμοστεί εξαρτάται από την φύση των δεδομένων. Σπανίως, και κατά κύριο λόγο μόνο σε παραγόμενα δεδομένα, υφίστανται μεταδεδομένα (metadata, labels) τα οποία χαρακτηρίζουν τα αντικείμενα ως φυσιολογικά ή ανώμαλα. Βέβαια, η ύπαρξη μεταδεδομένων είναι σχεδόν απίθανη σε περιπτώσεις φυσικά παραγόμενων δεδομένων, ενώ ο μη αυτόματος χαρακτηρισμός των δεδομένων από ειδικούς στο πεδίο έχει απαγορευτικούς περιορισμούς. Τέλος, ένα σύνολο δεδομένων αποτελείται από αντικείμενα τα οποία είτε είναι ανεξάρτητα είτε αλληλεξαρτώμενα. Μερικά παραδείγματα αλληλεξαρτώμενων αντικειμένων παρατηρούνται σε σειριακά δεδομένα (π.χ. χρονοσειρές), χωρικά δεδομένα, δεδομένα με γραφική αναπαράσταση και ροές δεδομένων. Τέλος, υπάρχουν περιπτώσεις που το σύνολο δεδομένων χαρακτηρίζεται από συνδυασμό δύο ή παραπάνω χαρακτηριστικών, όπως είναι τα χωροχρονικά (spatiotemporal) δεδομένα τα οποία συνήθως περιγράφουν την τοπολογική διαφοροποίηση των δεδομένων στο χρόνο. Τα δεδομένα εξόδου ανήκουν σε μια από τις δύο παρακάτω κατηγορίες: Ακρότατες παρατηρήσεις με βαθμολόγηση ή με δυαδικό χαρακτηρισμό. Στη πρώτη περίπτωση, η τεχνική εντοπισμού υπολογίζει και αναθέτει μια βαθμολογία σε κάθε αντικείμενο του συνόλου δεδομένων, η οποία αντικατοπτρίζει τον βαθμό «ανωμαλίας» του αντικειμένου αυτού. Από την άλλη, ο δυαδικός χαρακτηρισμός είναι απλούστερος και σημαίνει πως ένα αντικείμενο είτε χαρακτηρίζεται ώς ανώμαλο είτε ώς φυσιολογικό, χωρίς βαθμολόγηση. 2.4 Προκλήσεις Όπως ορίσθηκε προηγουμένως, οι ακρότατες τιμές είναι είτε μεμονωμένες παρατηρήσεις είτε πρότυπα, τα οποία παρουσιάζουν απόκλιση από την τυπική συμπεριφορά των δεδομένων. Είναι όμως πολύ δύσκολο να ορισθεί με ακρίβεια το τι σημαίνει τυπική συμπεριφορά σε κάθε διαφορετική περίπτωση. Παρακάτω παρατίθενται μερικές από τις πιο συνηθισμένες προκλήσεις που αντιμετωπίζονται κατά την σχεδίαση τεχνικών εύρεσης ακροτάτων τιμών: Η εύρεση και απαρίθμηση κάθε «τυπικής συμπεριφοράς» παρατηρήσεων για κάθε ανεξάρτητο πρόβλημα είναι απαγορευτική με βάση το υπολογιστικό κόστος, ιδιαίτερα σε πολυδιάστατα δεδομένα, και έτσι είναι απαραίτητο να εφαρμοστούν προσεγγιστικές μέθοδοι για τον προσδιορισμό της. Συνήθως, και ιδιαίτερα σε ροές δεδομένων, η έννοια της τυπικής συμπεριφοράς των παρατηρήσεων αλλάζει ή εξελίσσεται και μπορεί να λάβει τελείως διαφορετική μορφή με την πάροδο του χρόνου. 8 Σε οριακές περιπτώσεις όπου μια παρατήρηση βρίσκεται κοντά στο σύνορο μεταξύ του συνόλου παρατηρήσεων της τυπικής κατανομής και ακρότατης τιμής, δεν είναι πάντοτε εφικτό να προσδιοριστεί σωστά η «ταυτότητά» της. Η έλλειψη μεταδεδομένων για την εκπαίδευση αλγορίθμων ή επαλήθευση των αποτελεσμάτων αποτελεί σοβαρό περιορισμό, καθώς σχεδόν όλα τα σύνολα δεδομένων στον πραγματικό κόσμο δεν περιγράφονται από προκαθορισμένες κλάσεις. Πολλές φορές, παράλληλα με τις ακρότατες τιμές παραβρίσκεται και πραγματικός, ανεπιθύμητος θόρυβος ο οποίος μοιάζει με αυτές και είναι δύσκολο να αναγνωριστεί και να αφαιρεθεί. Η διαφορετική ερμηνεία της έννοιας «ακρότατη τιμή» σε κάθε ξεχωριστό τομέα δυσχεραίνει την εφαρμογή τεχνικών αποκλειστικών για ένα σκοπό σε άλλους τομείς. Για παράδειγμα, στην ιατρική μια μικρή απόκλιση θερμοκρασίας σώματος μπορεί να θεωρηθεί ακρότατη τιμή, ενώ μια ισάξια μεταβολή στο πεδίο των μετοχών μπορεί να θεωρηθεί φυσιολογική. Λόγω των παραπάνω προκλήσεων και περιορισμών, το πρόβλημα κατασκευής τεχνικών εξόρυξης ακροτάτων τιμών είναι εκ φύσεως δύσκολο. Στη πραγματικότητα, είναι πιθανόν ακατόρθωτο να σχεδιαστεί μια μέθοδος που να είναι ανεξάρτητη από την φύση των δεδομένων, την ύπαρξη ή μη μεταδεδομένων, τον τύπο ακρότατης παρατήρησης που αναμένεται και λοιπά. Συνήθως οι παραπάνω παράγοντες είναι προκαθορισμένοι από τον τομέα του προβλήματος προς εφαρμογή και στη συνέχεια αναπτύσσονται τεχνικές εντοπισμού ακροτάτων τιμών που βασίζονται σε αυτές τις μεταβλητές. 2.5 Μοντέλα εντοπισμού ακροτάτων τιμών Στον τομέα αυτό της εξόρυξης δεδομένων έχει αναπτυχθεί ποικιλία μεθόδων εντοπισμού ακροτάτων τιμών, οι οποίες μπορούν να κατηγοριοποιηθούν με βάση το μοντέλο στο οποίο βασίζεται η λειτουργία τους. Τα μοντέλα είναι σχεδιασμένα και διαφοροποιούνται μεταξύ τους με βάση τους περιορισμούς που προαναφέρθηκαν, δηλαδή επηρεάζονται από τη φύση των δεδομένων εισόδου, την διαστασιμότητα και το πλήθος τους, την παρουσία μεταδεδομένων και λοιπά. Σημαντικό ρόλο στην λειτουργία ενός μοντέλου εντοπισμού κατέχει η ευκολία ερμηνείας των αποτελεσμάτων που παράγονται. Είναι εξαιρετικά σημαντικό για τον αναλυτή δεδομένων να γνωρίζει γιατί ένα αντικείμενο είναι ακρότατο αλλά και μέσω ποιας διαδικασίας το μοντέλο κατέληξε σε αυτό το συμπέρασμα. Έτσι, ο αναλυτής θα είναι σε θέση να αντιληφθεί εάν το αποτέλεσμα είναι εύστοχο, ή εάν θα χρειαστεί να εφαρμοστούν τεχνικές προεπεξεργασίας ή και μετασχηματισμού των δεδομένων προτού ενεργήσει το μοντέλο εντοπισμού πάνω στο σύνολο δεδομένων. Συνήθως, τα μοντέλα εντοπισμού ακροτάτων τιμών που λειτουργούν εξ’ ολοκλήρου με τις ιδιότητες των αντικειμένων χωρίς εφαρμογή μετασχηματισμών, παράγουν αποτελέσματα τα οποία είναι ευκολότερα στην κατανόηση, αλλά υπάρχουν 9 περιπτώσεις που ένας μετασχηματισμός μπορεί να είναι ευεργετικός, με την έννοια ότι μπορεί να οξύνει την διαφοροποίηση μεταξύ τυπικών και ανώμαλων παρατηρήσεων. Από την άλλη όμως, οι μετασχηματισμοί των δεδομένων εισόδου προσθέτουν ερμηνευτική πολυπλοκότητα η οποία δυσχεραίνει την ανάλυση, και γι’ αυτό είναι σημαντικό ο αναλυτής να εφαρμόσει το κατάλληλο μοντέλο σε κάθε σύνολο δεδομένων, έτσι ώστε να αποφύγει περιττούς μετασχηματισμούς. 2.5.1 Ανάλυση ακραίων τιμών Η πιο βασική μέθοδος εύρεσης ακροτάτων είναι η λεγόμενη ανάλυση ακραίων τιμών [28] (extreme value analysis) και εφαρμόζεται κυρίως σε μονοδιάστατα δεδομένα. Η μέθοδος αυτή είναι εμπνευσμένη από τη στατιστική και ουσιαστικά μελετά τις τιμές εκείνες οι οποίες είναι είτε πολύ μεγάλες είτε πολύ μικρές, δηλαδή ανήκουν οριακά στο σύνολο δεδομένων. Στην περίπτωση αυτή, μια παρατήρηση είναι οριακή εάν ανήκει στην «ουρά» της στατιστικής κατανομής που περιγράφει τα δεδομένα. Η περιοχή αυτή της στατιστικής είναι εκτενώς μελετημένη και έτσι ο καθορισμός της κατανομής αλλά και η εύρεση της ουράς θεωρούνται τετριμμένες διαδικασίες. Η ανάλυση ακραίων τιμών δεν πρέπει, όμως, να συγχέεται με την έννοια της εύρεσης ακροτάτων τιμών. Για παράδειγμα, στο σύνολο δεδομένων {1, 2, 2, 50, 99, 99, 100} θεωρείται πως οι τιμές 1 και 100 είναι ακραίες τιμές, ενώ οι τιμές 2, 50 και 99 είναι φυσιολογικές, δηλαδή δεν ανήκουν στην ουρά της κατανομής. Η τιμή 50 είναι η διάμεσος, άρα προφανώς δεν είναι ακραία τιμή. Αντιθέτως, από την οπτική γωνία της εύρεσης ακροτάτων τιμών, η τιμή 50 είναι αυτή η οποία εγείρει τις μεγαλύτερες υποψίες όσον αφορά τον χαρακτηρισμό της ως ακρότατη παρατήρηση, αφού οι υπόλοιπες σχηματίζουν δύο συστάδες των τριών παρατηρήσεων. Σύμφωνα με το παράδειγμα της προηγούμενης παραγράφου, καταλήγουμε στο συμπέρασμα πως η ανάλυση ακραίων τιμών πρέπει να εφαρμοστεί σε συνδυασμό με άλλες τεχνικές ώστε να λάβουμε ακριβέστερα αποτελέσματα. Συνήθως, χρησιμοποιείται ως το τελευταίο βήμα στην εύρεση ακροτάτων τιμών και όχι πάνω στα δεδομένα εισόδου, αλλά πάνω στα βαθμολογημένα αποτελέσματα. Σε πολλές περιπτώσεις όπου το αποτέλεσμα είναι ένα διάνυσμα τιμών οι οποίες αντιστοιχούν στις παρατηρήσεις, μπορεί να εφαρμοστεί φιλτράρισμα αυτών με το μοντέλο ανάλυσης ακραίων τιμών ώστε να εξαχθούν οι πιο έντονες ακρότατες παρατηρήσεις. 2.5.2 Στατιστικό μοντέλο Μια εναλλακτική προσέγγιση είναι η χρήση εργαλείων της στατιστικής. Στο μοντέλο αυτό, επιλέγεται και χρησιμοποιείται μια στατιστική κατανομή έτσι ώστε να περιγράφει όσο το δυνατόν καλύτερα τα δεδομένα. Συνεπώς, η μεγαλύτερη δυσκολία του μοντέλου αυτού είναι η σωστή επιλογή της κατανομής, τόσο όσον αφορά το υπολογιστικό κόστος εάν προσπαθήσουμε να βρούμε την «καλύτερη» κατανομή, όσο και όσον αφορά το βαθμό προσέγγισης των δεδομένων από αυτή. Βέβαια, το αποτέλεσμα μιας επιτυχημένης εφαρμογής ενός τέτοιου μοντέλου είναι 10 μεγάλης αξίας, καθώς αποδίδει βαθμολόγηση στα αντικείμενα του συνόλου δεδομένων σύμφωνα με το βαθμό συμμετοχής τους ή μη σε μια κατανομή. Δεν παρέχει, λοιπόν, έναν απόλυτο δυαδικό χαρακτηρισμό αλλά δίνει τη δυνατότητα στον αναλυτή να αποφασίσει το κατώφλι βαθμολογίας για τις ακρότατες τιμές. Επιπλέον, αξίζει να σημειωθεί πως στο παραπάνω βαθμολογημένο αποτέλεσμα μπορεί να εφαρμοστεί η τεχνική ανάλυσης ακραίων τιμών που προαναφέρθηκε. Ένα σοβαρό μειονέκτημα του στατιστικού μοντέλου είναι ότι προϋποθέτει την εύρεση της κατάλληλης κατανομής για το εκάστοτε σύνολο δεδομένων, ή και συνδυασμό πολλών κατανομών για πιο σύνθετα μοντέλα. Αυτό είναι συνήθως ευκολότερο σε τεχνητά δεδομένα, παρά σε δεδομένα του πραγματικού κόσμου, τα οποία περιέχουν και μεγάλο βαθμό θορύβου. Επίσης, εύκολα κανείς μπορεί να «πέσει στην παγίδα» του φαινόμενου της υπερπροσαρμογής (overfitting) κατά τη διάρκεια της προσέγγισης των δεδομένων από τις κατανομές, με αποτέλεσμα τα ανώμαλα δεδομένα να αποκρύπτονται εντός των φυσιολογικών παρατηρήσεων. Τέλος, όταν πρέπει να χρησιμοποιηθούν πολλές παράμετροι για την περιγραφή των δεδομένων, η ερμηνευτική πολυπλοκότητα αυξάνεται με συνέπεια να γίνεται δυσνόητο το αποτέλεσμα του μοντέλου. 2.5.3 Μοντέλα βασισμένα στην εγγύτητα Οι τεχνικές που βασίζονται στην αξιολόγηση της εγγύτητας των αντικειμένων του συνόλου δεδομένων στοχεύουν στο να εντοπίσουν τις παρατηρήσεις εκείνες οι οποίες είναι περισσότερο απομονωμένες. Συγκεκριμένα, υπάρχουν τρείς βασικές μέθοδοι για να επιτευχθεί αυτό. Η τεχνική της συσταδοποίησης (clustering), η χρήση της έννοιας της πυκνότητας και της έννοιας των πλησιέστερων γειτόνων. Οι τεχνικές της συσταδοποίησης και της πυκνότητας είναι παρόμοιες στη λειτουργία, αλλά διαφοροποιούνται στο γεγονός ότι η πρώτη ενεργεί πάνω στα δεδομένα ως σημεία ενώ η δεύτερη χρησιμοποιεί την έννοια του χώρου μεταξύ αυτών. Όταν χρησιμοποιείται η συσταδοποίηση για τον εντοπισμό ακροτάτων τιμών, το πρώτο βήμα είναι να χρησιμοποιηθεί ένας αλγόριθμος συσταδοποίησης για την εύρεση των στενά συνδεδεμένων περιοχών στα δεδομένα, δηλαδή των συστάδων. Στη συνέχεια εφαρμόζεται μια κατάλληλη μετρική η οποία υπολογίζει τον βαθμό συμμετοχής των αντικειμένων στις σχηματισμένες συστάδες. Για παράδειγμα, έστω ότι χρησιμοποιήθηκε ο αλγόριθμος k-means [26] για τον σχηματισμό δύο σφαιρικών συστάδων σε τεχνητά δεδομένα με μικρό ποσοστό ανώμαλων παρατηρήσεων. Μια κατάλληλη μετρική για την διαδικασία της βαθμολόγησης θα ήταν η χρήση της απόστασης ενός σημείου από το κέντρο της κοντινότερης σε αυτό συστάδα. Βέβαια, ένα μειονέκτημα της μεθόδου αυτής είναι ότι πολλοί αλγόριθμοι συσταδοποίησης έχουν τη δυνατότητα να εντοπίσουν συστάδες συγκεκριμένου σχήματος ή προκαθορισμένο αριθμό συστάδων και επίσης εξαρτώνται σε μεγάλο βαθμό από την επιλογή της μετρικής απόστασης. Για παράδειγμα, ο αλγόριθμος K-means είναι σε θέση να εντοπίζει K σε αριθμό σφαιρικές συστάδες, χρησιμοποιώντας μια προκαθορισμένη μετρική απόστασης που επηρεάζει σημαντικά το αποτέλεσμα. 11 Στην περίπτωση των μεθόδων που βασίζονται στην πυκνότητα των δεδομένων, υπολογίζεται μια βαθμολογία για κάθε αντικείμενο σύμφωνα με την πυκνότητά του σε σχέση με τα γειτονικά. Έτσι λοιπόν, για να έχει νόημα η παραπάνω τεχνική βαθμολόγησης, η πυκνότητα ενός φυσιολογικού αντικειμένου είναι παρόμοια με αυτή των γειτονικών του, ενώ η πυκνότητα ενός ανώμαλου αντικειμένου διαφέρει αρκετά από αυτή των γειτονικών του. Ένα σημαντικό πλεονέκτημα αυτής της τεχνικής είναι πως μπορεί να εντοπίσει ακρότατες τιμές σε δεδομένα με ποικιλία σχημάτων και πυκνοτήτων. Τέλος, επειδή η έννοια της πυκνότητας είναι διαισθητικά ευνόητη αλλά και επειδή υπάρχει βαθμολόγηση των δεδομένων εξόδου, η ερμηνεία των αποτελεσμάτων είναι μια εύκολη διαδικασία. Στις μεθόδους πλησιέστερων γειτόνων [14], υπολογίζεται ο αριθμός των γειτόνων κάθε αντικειμένου εντός μιας απόστασης R από αυτό. Εάν εντοπιστούν τουλάχιστον k γείτονες στην παρατήρηση υπό εξέταση, τότε θεωρείται φυσιολογική. Στην αντίθετη περίπτωση, χαρακτηρίζεται ως ακρότατη τιμή. Επιλέγοντας μια σχετικά μικρή τιμή του k > 1, μικρές ομάδες κοντινών παρατηρήσεων οι οποίες όμως έχουν μεγάλη απόσταση από τα υπόλοιπα δεδομένα θα είναι σε θέση να εντοπιστούν και να χαρακτηριστούν ακρότατες. Βέβαια, η μέθοδος αυτή μπορεί να εκτοξεύσει το υπολογιστικό κόστος, καθώς πρέπει να υπολογιστεί μεγάλος αριθμός αποστάσεων για κάθε αντικείμενο στο σύνολο δεδομένων. Τέλος, είναι προφανές πως στις μεθόδους που βασίζονται στην απόσταση, καθοριστικό ρόλο παίζει η επιλογή της κατάλληλης μετρικής απόστασης και ως εκ τούτου πρέπει να γίνει σωστή προεπιλογή. 12 ΚΕΦΑΛΑΙΟ 3 Εντοπισμός Ακροτάτων σε Ροές Δεδομένων 13 3.1 Διαφορές και προκλήσεις Σε πληθώρα σύγχρονων εφαρμογών όπως για παράδειγμα στις τηλεπικοινωνίες, στον εντοπισμός απατών, στα δίκτυα αισθητήρων και γενικά σε πολλά πληροφοριακά συστήματα, το σύνολο δεδομένων δεν είναι στατικό αλλά συνεχώς προστίθενται νέα αντικείμενα σε αυτό. Στο πλαίσιο αυτό, ο αναλυτής καλείται να εφαρμόσει τεχνικές εξόρυξης και να εξάγει από την ροή δεδομένων τις σημαντικότερες παρατηρήσεις – συμπεριλαμβανομένων και των ανώμαλων – υπό την πίεση υπολογιστικών, χρονικών και άλλων περιορισμών. Μια ροή δεδομένων είναι μια συνεχής, απεριόριστη εισροή παρατηρήσεων όπου στην τυπική περίπτωση, τα νεότερα δεδομένα είναι και τα σημαντικότερα, καθώς υφίσταται η έννοια της παλαίωσης με την πάροδο του χρόνου. Αυτό συμβαίνει επειδή τα χαρακτηριστικά των δεδομένων μπορούν να αλλάξουν δραστικά και με μη προβλέψιμο τρόπο, αλλάζοντας δηλαδή την τυπική, φυσιολογική συμπεριφορά. Συνεπώς, ένα αντικείμενο το οποίο ίσως θεωρήθηκε ανώμαλο, στη συνέχεια να ενταχθεί στο σύνολο των φυσιολογικών παρατηρήσεων λόγω ραγδαίων εξελίξεων στη ροή δεδομένων. Τέλος, επειδή η ο όγκος τον δεδομένων είναι απεριόριστος, η εξόρυξη σε ροές δεδομένων εκτελείται πάνω σε ένα υποσύνολο της ροής, το οποίο καλείται μετακινούμενο παράθυρο (sliding window) και, προφανώς, περιέχει ένα μικρό αλλά πρόσφατο ποσοστό παρατηρήσεων του συνόλου. Οι εφαρμογές εξόρυξης σε ροές κάνουν εντονότερη την παρουσία της περιορισμένης μνήμης σε αντίθεση με το απεριόριστο μέγεθος της ροής. Επίσης, η διαδικασία εντοπισμού ακροτάτων σε ροές υπόκειται και σε χρονικούς περιορισμούς, καθώς οι περισσότερες εφαρμογές απαιτούν επεξηγηματικά αποτελέσματα σε πραγματικό χρόνο. Παράλληλα, εφ’ όσον είναι αδύνατο να υφίσταται αρκετά μεγάλη προσωρινή μνήμη έτσι ώστε να αποθηκευτεί ολόκληρη η ροή, τα δεδομένα αναπόφευκτα ανανεώνονται συνεχώς και οι παρατηρήσεις κάποια στιγμή εξασθενούν και διαγράφονται. Τέλος, ο χαρακτηρισμός ως ακρότατης τιμής ή μη κάθε μεμονωμένης παρατήρησης πρέπει να είναι υψηλής αποδοτικότητας προς αποφυγή υπολογιστικής συμφόρησης (bottleneck). Οι μέθοδοι εντοπισμού ακροτάτων σε ροές δεδομένων είναι παρόμοιες με εκείνες που εφαρμόζονται σε στατικά δεδομένα, με την έννοια ότι βασίζονται σε κοινά πρότυπα λειτουργίας αλλά έχουν την εξής διαφοροποίηση. Όταν μια μέθοδος εφαρμόζεται σε στατικά δεδομένα, γίνεται επεξεργασία ολόκληρου του συνόλου δεδομένων και εξάγεται το αποτέλεσμα του εντοπισμού. Το προηγούμενο αποτέλεσμα δεν μεταβάλλεται, αφού τα δεδομένα παραμένουν στατικά. Σε περίπτωση όμως που γίνει έστω και μια μικρή αλλαγή στα δεδομένα, η διαδικασία θα πρέπει να επαναληφθεί εξ αρχής, γεγονός που εκτοξεύει το υπολογιστικό κόστος. Αντιθέτως, όταν μια μέθοδος εφαρμόζεται σε ροή δεδομένων, ο αλγόριθμος λειτουργεί σε τοπικό επίπεδο με την έννοια ότι όταν ένα νέο αντικείμενο εισάγεται στο σύνολο δεδομένων, δεν θα γίνει ολική επεξεργασία αλλά μόνο τοπική και συγκεκριμένα στην τοποθεσία όπου συνέβη η αλλαγή. Η λύση αυτή όμως δεν αποτελεί πανάκεια, καθώς παραμένει υπολογιστικά ακριβή και συνήθως απαιτεί 14 προεπεξεργασμένη πληροφορία για να είναι αποτελεσματική, όπως για παράδειγμα καταλόγους (indices). 3.2 Η προσέγγιση Anytime Λόγω των απαιτήσεων σε ταχύτητα και αποδοτικότητα των σημερινών εφαρμογών, η επεξεργασία των ροών γίνεται με έναν σειριακό τρόπο τη στιγμή που τα δεδομένα φτάνουν στο σύστημα. Πολλές τεχνικές, όμως, υποθέτουν πως οι ροές είναι συνεχείς και τα διαστήματα μεταξύ των εισερχόμενων παρατηρήσεων σταθερά, γεγονός που είναι αφύσικο και προφανώς δεν ισχύει. Για παράδειγμα, τα δίκτυα αισθητήρων αποστέλλουν πληροφορία στον εξυπηρετητή μόνο όταν αντιληφθούν μια αλλαγή στις παρατηρήσεις, τόσο για εξοικονόμηση ενέργειας όσο και για αποφυγή αποστολής πλεονάζουσας πληροφορίας. Η εφαρμογή αυτή, λοιπόν, έχει ως αποτέλεσμα μια απρόβλεπτη ροή δεδομένων χωρίς προκαθορισμένα χαρακτηριστικά άφιξης νέων παρατηρήσεων. Ο στόχος ενός Anytime [6] αλγορίθμου εύρεσης ακροτάτων είναι να κάνει την καλύτερη δυνατή χρήση του διαθέσιμου χρόνου μεταξύ των παρατηρήσεων της ροής δεδομένων. Αυτό σημαίνει πως όταν η ροή δεδομένων έχει μεγάλη ταχύτητα εισροής νέων παρατηρήσεων, η εύρεση των ακροτάτων πρέπει να γίνει σε ανάλογα μικρό χρονικό διάστημα. Αντιθέτως, όταν η ροή είναι αργή, ο αλγόριθμος πρέπει να είναι σε θέση να εκμεταλλευτεί όλο τον επιπλέον διαθέσιμο χρόνο για την εξαγωγή ευστοχότερων συμπερασμάτων. Επιπλέον, ένα βασικό χαρακτηριστικό της τεχνικής αυτής είναι πως ένας Anytime αλγόριθμος μπορεί να επιστρέψει αποτέλεσμα οποιαδήποτε στιγμή κι αν διακοπεί. Η παραπάνω περιγραφή συνοψίζεται στον εξής ορισμό: «Δοθείσας μιας ροής δεδομένων με αντικείμενα oi τα οποία φτάνουν σε άγνωστα μεταξύ τους χρονικά διαστήματα, το πρόβλημα της Anytime εύρεσης ανώμαλων παρατηρήσεων είναι ο υπολογισμός μιας βαθμολογίας s(oi) εντός του χρονικού διαστήματος ti μεταξύ της άφιξης του oi και του επόμενου αντικειμένου οi+1. Όσο μεγαλύτερο είναι το χρονικό διάστημα ti, τόσο ευστοχότερη πρέπει να είναι η βαθμολόγηση s(oi) του αντικειμένου oi.» Η βαθμολογία s(oi) του παραπάνω ορισμού αναφέρεται στο βαθμό ανωμαλίας του αντικειμένου oi. Πρέπει να σημειωθεί πως ο τρόπος βαθμολόγησης είναι ένα δύσκολο και μη τετριμμένο ζήτημα. Σε συνθετικά πειράματα όπου υπάρχουν μεταδεδομένα, εύκολα μπορεί να ορισθεί ένας τρόπος βαθμολόγησης και να επαληθευτεί το αποτέλεσμα με τη χρήση των ετικετών αληθείας (ground truth). Αντιθέτως, σε πραγματικές εφαρμογές απαιτείται η βοήθεια ενός ειδικού στον τομέα του προβλήματος ώστε να καθορίσει την έννοια του ακρότατου και της κλίμακας βαθμολόγησης. 15 3.3 Ο αλγόριθμος AnyOut Στο πλαίσιο της διατριβής αυτής μελετήθηκε εκτενώς ο αλγόριθμος εξόρυξης ανώμαλων παρατηρήσεων AnyOut [7] και ενσωματώθηκε στο εργαλείο MOA (Massive Online Analysis) [10] το οποίο θα μελετηθεί σε επόμενο κεφάλαιο. 3.3.1 Περιγραφή Η τεχνική εντοπισμού ακροτάτων τιμών AnyOut βασίζεται στη μέθοδο της συσταδοποίησης. Όπως προαναφέρθηκε, βασική προϋπόθεση ενός Anytime αλγορίθμου είναι η άμεση παροχή μιας βαθμολογίας αλλά και η βελτίωση του αποτελέσματος χρησιμοποιώντας τον διαθέσιμο χρόνο. Για να επιτευχθεί αυτό, ο AnyOut χρησιμοποιεί μια ιεραρχική δομή συστάδων, οργανωμένες σε μια δενδρική αναπαράσταση. Όταν ένα αντικείμενο της ροής είναι υπό επεξεργασία, διασχίζεται το δένδρο από τη ρίζα προς τα φύλλα έως ότου η διαδικασία διακοπεί από ένα νέο εισερχόμενο αντικείμενο. Όσο πιο κοντά στα φύλλα σταματήσει η διαδικασία, τόσο πιο εύστοχη θα είναι η βαθμολόγηση, αφού κοντά στην κορυφή η πληροφορία είναι αφαιρετική ενώ βαθύτερα γίνεται όλο και πιο λεπτομερής. Έτσι, η ιεραρχική δομή του δένδρου συστάδων, το οποίο ονομάζεται ClusTree [25], παρέχει μια φυσική οργάνωση των συστάδων, η οποία μπορεί να διασχισθεί σταδιακά ώστε να λάβουμε εγκυρότερη βαθμολόγηση για την παρατήρηση υπό εξέταση. 3.3.2 Λειτουργία Εφόσον η λειτουργία του AnyOut βασίζεται στο ClusTree, προηγείται μια συνοπτική περιγραφή του δεύτερου. Το ClusTree αποτελεί μια επέκταση της οικογένειας καταλόγων R-tree [18] και το κύριο γνώρισμα της δομής είναι ότι αναπαριστά τις συστάδες χρησιμοποιώντας τις λεγόμενες ιδιότητες συστάδας (cluster features ή CF). Οι ιδιότητες συστάδας με αντικείμενα Xi αποτελούνται από μια πλειάδα CF = (N, LS, SS), όπου: N είναι ο αριθμός των αντικειμένων της συστάδας. ⃗⃗⃗⃗ 𝐿𝑆= ∑𝑁 𝑖=1 𝑋𝑖 . 2 ⃗⃗⃗⃗ = ∑𝑁 𝑆𝑆 𝑖=1 𝑋𝑖 . Η πληροφορία εντός της πλειάδας CF είναι επαρκής ώστε να υπολογιστούν στατιστικές ιδιότητες της συστάδας την οποία περιγράφει, όπως ο μέσος ή η διακύμανση των αντικειμένων εντός της συστάδας. Επιπλέον, οι πλειάδες CF μπορούν να ενημερωθούν εύκολα, χωρίς να χρειαστεί να υπολογιστούν εξ’ αρχής οι τιμές N, LS και SS. Τέλος, η δομή ClusTree παρέχει και προσωρινό αποθηκευτικό χώρο (buffer) σε κάθε εγγραφή, ο οποίος χρησιμοποιείται για αποδοτικότερη εισαγωγή των εισερχόμενων σημείων στις συστάδες. Στο Σχήμα 3.1 παρουσιάζεται οπτικά η δομή ClusTree. Στο συγκεκριμένο παράδειγμα ένας κόμβος του δένδρου αποτελείται από δύο εγγραφές, οι οποίες περιέχουν μια πλειάδα CF η κάθε μια. Οι πλειάδες CF αναπαριστώνται ως μπλε καμπύλες, 16 αντιπροσωπευτικές της κατανομής των δεδομένων εντός της συστάδας. Οι εγγραφές είναι επίσης συνδεδεμένες μέσω δεικτών με κόμβους-απογόνους και εξοπλισμένες με ένα προσωρινό αποθηκευτικό χώρο για αποδοτικότερη εισαγωγή αντικειμένων στη συστάδα της εγγραφής (στο Σχήμα 3.1, η κόκκινη κατανομή). Οι δείκτες είναι αυτοί που χρησιμοποιούνται κατά τη διάσχιση του δένδρου με στόχο την διείσδυση σε κατώτερο επίπεδο και τον υπολογισμό ακριβέστερης βαθμολογίας. Σχήμα 3.1 Η δομή ClusTree [7]. Είναι εμφανές πως η δομή ClusTree είναι ιδανική για εύρεση ακροτάτων τιμών σε Anytime τεχνικές οι οποίες βασίζονται στη συσταδοποίηση, λόγω της ιεραρχικής φύσεως και των περιεχομένων του δένδρου. Η βασική ιδέα είναι η σύγκριση των αντικειμένων με τις ιδιότητες των συστάδων σε κάθε επίπεδο του δένδρου ξεκινώντας από πάνω προς τα κάτω εφόσον το επιτρέπει ο χρόνος. Συγκεκριμένα, στον αλγόριθμο AnyOut η βαθμολόγηση βασίζεται στον βαθμό ομοιότητας του αντικειμένου υπό επεξεργασία με την κοντινότερη συστάδα στο επίπεδο διακοπής. Η διακοπή συμβαίνει όταν το επόμενο αντικείμενο καταφτάσει στη ροή, ύστερα από απροσδιόριστο χρονικό διάστημα. 3.3.3 Βαθμολόγηση ανωμαλίας Το ερώτημα που προκύπτει από την παραπάνω διαδικασία είναι με ποιόν τρόπο γίνεται η ουσιαστική βαθμολόγηση. Έχουν προταθεί δύο τρόποι βαθμολόγησης, οι οποίοι εκμεταλλεύονται την στατιστική πληροφορία που είναι αποθηκευμένη στις πλειάδες CF των εγγραφών. Ο ένας βασίζεται στην έννοια της απόστασης (Mean outlier score) και ο δεύτερος στην έννοια της πυκνότητας (Density outlier score). Ο πρώτος τρόπος βαθμολόγησης υπολογίζει το βαθμό ανωμαλίας ενός αντικειμένου σύμφωνα με το μέγεθος της απόκλισής του από τον μέσο της κοντινότερης πλειάδας CF. Η κοντινότερη πλειάδα CF βρίσκεται εντός της εγγραφής στην οποία θα πραγματοποιηθεί η διακοπή από το επόμενο εισερχόμενο αντικείμενο. Ακολουθεί ο επίσημος ορισμός της βαθμολόγησης απόστασης. 17 «Για κάθε αντικείμενο oi της ροής, η βαθμολόγηση απόστασης sm(oi) ορίζεται ως sm(oi) := dist(oi, μ(es)), όπου μ(es) ο μέσος της εγγραφής es του ClusTree, στην οποία εισάγεται το αντικείμενο oi όταν το επόμενο αντικείμενο oi+1 φτάνει στην ροή.» Η βαθμολογία πυκνότητας βασίζεται στο γεγονός πως μια πλειάδα CF μπορεί να ερμηνευθεί ως παράμετροι μιας Γκαουσιανής κατανομής των αντικειμένων στο υποδένδρο, δηλαδή από την εγγραφής διακοπής ως τα φύλλα. Η Γκαουσιανή συνάρτηση πυκνότητα πιθανότητας ενός αντικειμένου oi στην εγγραφή es με μέσο 𝜇𝑒𝑠 και πίνακα συνδιακύμανσης Σes δίνεται από τον τύπο 𝑔(𝑜𝑖 , 𝑒𝑠 ) = 1 𝑑 1 (− 2 1∙𝑒 𝑇 (𝑜𝑖 −𝜇𝑒𝑠 ) ∑−1 𝑒𝑠 (𝑜𝑖 −𝜇𝑒𝑠 )) (2𝜋) 2 ∙ det( 𝛴𝑒𝑠 )2 όπου det(Σes ) είναι η ορίζουσα και 𝛴𝑒−1 ο αντίστροφος πίνακας του Σes . 𝑠 Ακολουθεί ο επίσημος ορισμός της βαθμολόγησης πυκνότητας. «Για κάθε αντικείμενο oi της ροής, η βαθμολόγηση πυκνότητας sd(oi) ορίζεται ως sd(oi) := 1 - g(oi, es), όπου es η εγγραφής του ClusTree, στην οποία εισάγεται το αντικείμενο oi όταν το επόμενο αντικείμενο oi+1 φτάνει στην ροή.» Και οι δύο τρόποι βαθμολόγησης αντικατοπτρίζουν τον βαθμό ανωμαλίας του αντικειμένου την χρονική στιγμή που συνέβη η διακοπή. Και στις δύο περιπτώσεις η βαθμολόγηση γίνεται χρησιμοποιώντας την πλειάδα CF που βρίσκεται εντός της εκάστοτε τελευταίας εγγραφής και αντιστοιχεί στην κοντινότερη συστάδα. Η διαφορά τους έγκειται στον τρόπο χρήσης της πλειάδας CF. Στην βαθμολόγηση απόστασης, λαμβάνεται υπόψη μόνο το κέντρο βάρους της συστάδας, ενώ στη βαθμολόγηση πυκνότητας υπονοείται Γκαουσιανή κατανομή, οι παράμετροι της οποίας επηρεάζουν το αποτέλεσμα. 3.3.4 Βαθμολόγηση βεβαιότητας Εκτός από την έννοια του βαθμού ανωμαλίας, ο αλγόριθμος AnyOut χρησιμοποιεί την έννοια του βαθμού βεβαιότητας όσον αφορά το παραγόμενο αποτέλεσμα. Όλα τα αντικείμενα που βρίσκονται υπό επεξεργασία αρχικά έχουν ένα χαμηλό βαθμό βεβαιότητας, καθώς είναι ακόμα ρηχά στο δένδρο, δηλαδή κοντά στη ρίζα. Όσο η ανάλυση εμβαθύνει, αυξάνεται και η βεβαιότητα του αλγορίθμου για τον υπολογισμένο βαθμό ανωμαλίας. Η έννοια της βεβαιότητας μπορεί να χρησιμοποιηθεί και για παραλληλισμό της επεξεργασίας των εισερχόμενων αντικειμένων. Όταν ένα αντικείμενο θεωρηθεί «εύκολο» και αποκτήσει γρήγορα υψηλό βαθμό βεβαιότητας, ο αλγόριθμος θα έχει διαθέσιμο ελεύθερο χρόνο ώστε να βελτιώσει «δυσκολότερες περιπτώσεις» αντικειμένων. Οι δυσκολότερες περιπτώσεις θα μπορούσαν να είναι αποθηκευμένες σε μια ουρά προτεραιότητας η οποία θα περιέχει παλαιότερα αντικείμενα τα οποία 18 δεν κατάφεραν να αναλυθούν αρκετά ώστε να ξεπεράσουν το κατώφλι βεβαιότητας. Η τεχνική αυτή είναι ιδιαίτερα χρήσιμη σε ροές δεδομένων σταθερού διαστήματος μεταξύ αντικειμένων, καθώς οι εύκολες περιπτώσεις είναι συνήθως περισσότερες από τις δύσκολες και έτσι θα υπάρχει μεγάλο ποσοστό ελεύθερου χρόνου προς εκμετάλλευση. Στον αλγόριθμο AnyOut ο βαθμός βεβαιότητας ενός αντικειμένου o υπολογίζεται μέσω του τύπου 𝑐𝑜𝑛𝑓 (𝑜) = 𝑒 −𝑠(𝑜) , όπου s(o) είναι ο βαθμός ανωμαλίας του. Διαισθητικά, ο τύπος αυτός δίνει προτεραιότητα στην βαθύτερη επεξεργασία των εκάστοτε υποτιθέμενων ακροτάτων παρατηρήσεων, δηλαδή αυτών με την μεγαλύτερη βαθμολογία ανωμαλίας την δοθείσα χρονική στιγμή. 19 ΚΕΦΑΛΑΙΟ 4 Massive Online Analysis (MOA) 20 4.1 Εισαγωγή Διανύουμε μια εποχή η οποία χαρακτηρίζεται από αφθονία και ατέρμονη παραγωγή δεδομένων. Κρίνεται λοιπόν απαραίτητο να σχεδιάζονται νέοι ή να βελτιώνονται υπάρχοντες αλγόριθμοι εξόρυξης δεδομένων οι οποίοι να είναι εφαρμόσιμοι σε ροές, ώστε να ανταποκρίνονται στις συνεχώς αυξανόμενες απαιτήσεις των σημερινών πληροφοριακών συστημάτων. Οι σημαντικότερες από τις απαιτήσεις αυτές είναι ότι ένας μοντέρνος αλγόριθμος πρέπει: Να επεξεργάζεται την ροή δεδομένων χρησιμοποιώντας online τεχνική, δηλαδή καθώς τα αντικείμενα εισέρχονται στη ροή να γίνεται άμεσα η επεξεργασία τους και συνήθως χωρίς επανάληψη της διαδικασίας. Να χρησιμοποιεί περιορισμένους πόρους συστήματος και να εκμεταλλεύεται ιδιαίτερα αποδοτικά την μικρού μεγέθους προσωρινή μνήμη. Να είναι σε θέση να παράγει αποτελέσματα με περιορισμένο διαθέσιμο χρόνο επεξεργασίας. Να παρέχει αποτελέσματα στον αναλυτή ανά πάσα στιγμή (Anytime), όποτε αυτός τα ζητήσει. Επειδή η έρευνα στον τομέα της εξόρυξης δεδομένων παρουσιάζει μεγάλο ενδιαφέρον και ραγδαία άνθηση, σχεδιάζονται και υλοποιούνται συνεχώς νέες τεχνικές εξόρυξης. Μια κρίσιμη πρόκληση είναι πως κάθε νέα τεχνική πρέπει να συγκριθεί πειραματικά με υπάρχοντες αλγορίθμους, γεγονός που στις περισσότερες περιπτώσεις παραμελείται από τους συγγραφείς/δημιουργούς. Σε σημαντικό μερίδιο δημοσιεύσεων οι νέες προτάσεις συγκρίνονται, αν όχι με κανένα άλλο αλγόριθμο, με ένα μικρό υποσύνολο των εκάστοτε καλύτερων (state-ofthe-art) αλγορίθμων, κάνοντας την αντικειμενική αξιολόγηση της νέας τεχνικής δύσκολη. Επιπλέον, ο πειραματισμός γίνεται πάνω σε περιορισμένη ποικιλία συνόλων δεδομένων και η εξαγωγή συμπερασμάτων δεν είναι ακριβής, ιδιαίτερα όσον αφορά αλγορίθμους οι οποίοι λειτουργούν πάνω σε μια άπειρη ροή δεδομένων. Στη περίπτωση των παραδοσιακών σεναρίων εξόρυξης σε στατικά δεδομένα έχουν αναπτυχθεί πακέτα λογισμικού όπως το WEKA [19], το οποίο υποστηρίζει την προσθήκη νέων αλγορίθμων, μεθόδων αξιολόγησης και συνόλων δεδομένων με σκοπό την σύγκριση των συστατικών του. Επειδή η εξόρυξη σε ροές δεν έχει μελετηθεί στην ίδια έκταση με την κλασσική εξόρυξη δεδομένων, οι τεχνικές αξιολόγησης των αλγορίθμων δεν βασίζονται σε εξ’ ίσου γερά και εμπεριστατωμένα θεμέλια. Για το λόγο αυτό, υλοποιήθηκε το πακέτο λογισμικού Massive Online Analysis (MOA) [10], ένα εργαλείο επικεντρωμένο στην επεξεργασία ροών δεδομένων και βασισμένο στο WEKA. Το MOA περιέχει state-of-the-art αλγορίθμους και μετρικές αξιολόγησης για τις κυριότερες εφαρμογές ροών, όπως για παράδειγμα κατηγοριοποίηση, παλινδρόμηση, συσταδοποίηση και ανακάλυψη ακροτάτων τιμών. Επίσης, παρέχει τη δυνατότητα της online, ταυτόχρονης αξιολόγησης και σύγκρισης 21 τεχνικών με ποικιλία ροών δεδομένων και υπό περιορισμούς μνήμης. Συνοπτικά, το MOA προσφέρει τις παρακάτω δυνατότητες: Ανάλυση και σύγκριση αλγορίθμων εξόρυξης σε ροές, χρησιμοποιώντας ποικιλία ρυθμίσεων με στόχο τον έλεγχο μεγάλου υποσυνόλου πιθανών σεναρίων μιας πραγματικής εφαρμογής. Εύκολη επεκτασιμότητα των δυνατοτήτων του MOA, καθώς είναι λογισμικό ανοιχτού κώδικα και επίσης παρέχει ισχυρό API το οποίο προσφέρει αφαιρετική καθοδήγηση στον προγραμματιστή. Σύνθεση, χρήση και αποθήκευση ρυθμίσεων μιας πειραματικής εκτέλεση, με σκοπό την σύγκριση αλλά και επαναχρησιμοποίηση για αναπαραγωγή ή τελειοποίηση (fine-tuning) ενός πειράματος. Στο Σχήμα 4.1 συνοψίζεται η αρχιτεκτονική και τα κύρια σημεία ενδιαφέροντος του MOA. Απεικονίζεται η πορεία εκτέλεσης ενός πειράματος καθώς και τα σημεία τα οποία είναι επεκτάσιμα από τον προγραμματιστή. Η πορεία εκτέλεσης ξεκινάει με την επιλογή μιας ροής δεδομένων ή την επιλογή μιας γεννήτριας ροής. Στη συνέχεια, ο χρήστης/αναλυτής επιλέγει τον αλγόριθμο προς εκτέλεση και τέλος επιλέγει τις μεθόδους αξιολόγησης για την ανάλυση του πειράματος. Η επιλογή της ροής, του αλγορίθμου και των μεθόδων αξιολόγησης διαφέρει μεταξύ των διαφορετικών δυνατοτήτων του MOA, δηλαδή για παράδειγμα μεταξύ των λειτουργιών ανακάλυψης ακροτάτων τιμών και συσταδοποίησης. Αξίζει να σημειωθεί πως στα πλαίσια της διατριβής αυτής το MOA επεκτάθηκε στα δύο τελευταία σημεία (Αλγόριθμος Εξόρυξης και Μέθοδοι Αξιολόγησης) και συγκεκριμένα προστέθηκε ο αλγόριθμος AnyOut στη συλλογή αλγορίθμων εντοπισμού ακροτάτων τιμών καθώς και μέθοδοι αξιολόγησης για την ίδια λειτουργία. Σχήμα 4.1 Αρχιτεκτονική, σημεία επέκτασης και πορεία εκτέλεσης στο MOA [10]. 4.2 Γραφικό περιβάλλον Το εργαλείο MOA παρέχει τέσσερις βασικές συλλογές αλγορίθμων, οι οποίες ομαδοποιούνται με όμοιο τρόπο και στο παράθυρο της εφαρμογής με τη μορφή καρτελών. Στο Σχήμα 4.2 παρουσιάζεται το κύριο παράθυρο της εφαρμογής κατά την εκκίνηση σε λειτουργικό σύστημα Windows. Σε κάθε μια από τις καρτέλες το σκεπτικό 22 χρήσης της γραφικής διεπαφής του MOA είναι παρόμοιο. Η αντιστοίχηση των καρτελών σε Ελληνική ορολογία είναι η εξής: Classification Regression Clustering Outliers → → → → Κατηγοριοποίηση Παλινδρόμηση Συσταδοποίηση Ανάλυση Ακροτάτων Σχήμα 4.2 Γραφικό περιβάλλον του MOA. Κοινό στοιχείο το οποίο είναι παρόν σε όλες τις καρτέλες είναι το ενδιάμεσο μέρος της οθόνης στο οποίο γίνεται η καταγραφή συμβάντων (logging) και η εκτύπωση αποτελεσμάτων. Στο κάτω μέρος του παραθύρου βρίσκεται η περιοχή αξιολόγησης, η οποία είναι επίσης κοινή σε όλες τις καρτέλες. Στην περιοχή αυτή βρίσκεται η συλλογή μετρικών που αξιολογεί τον αλγόριθμο υπό εκτέλεση και το παραγόμενο αποτέλεσμά του. Οι τιμές των μετρικών ανανεώνονται τακτικά και έτσι είναι διαθέσιμες στον αναλυτή σε πραγματικό χρόνο. Στα αριστερά καταγράφονται οι μετρήσεις, ενώ στα δεξιά απεικονίζεται η πορεία των τιμών της επιλεγμένης μετρικής 23 σε βάθος χρόνου. Συγκεκριμένα, ο οριζόντιος άξονας αναφέρεται σε στιγμιότυπα του μετακινούμενου παραθύρου. Στο πάνω μέρος του Σχήματος 4.2 βρίσκεται το πλήκτρο ρύθμισης (Configure) το οποίο χρησιμοποιείται για τον καθορισμό της εργασίας που θα εκτελεστεί. Εάν επιλέξουμε να ρυθμίσουμε την διαδικασία, εμφανίζεται το παράθυρο ρυθμίσεων. Το παράθυρο αυτό το συναντάμε σε όλες τις εργασίες που απαιτείται παραμετροποίηση και είναι παρόμοιο σε κάθε καρτέλα του MOA. Σχήμα 4.3 Παράθυρο ρυθμίσεων στο MOA. Στο Σχήμα 4.3 απεικονίζεται ένα στιγμιότυπο του παραθύρου ρυθμίσεων (Configure task) από την καρτέλα κατηγοριοποίησης. Στη περίπτωση αυτή ο χρήστης έχει τη δυνατότητα να καθορίσει το είδος της εργασίας την οποία επιθυμεί να εκτελέσει από την αναπτυσσόμενη λίστα στο πάνω μέρος του παραθύρου. Το MOA παρέχει επίσης μια συνοπτική περιγραφή της εργασίας στο πεδίο Purpose (σκοπός). Αφού επιλεγεί μια εργασία, εμφανίζεται παρακάτω η λίστα ρυθμίσεων που της αντιστοιχούν. Οι υπάρχουσες τιμές των πεδίων (defaults) είναι ενδεικτικές και προτείνονται για απλούς χρήστες, ενώ ένας πεπειραμένος ερευνητής έχει την δυνατότητα να παραμετροποιήσει λεπτομερώς το πείραμα και να εκμεταλλευτεί πλήρως την εργαλειοθήκη του MOA. Στις επόμενες ενότητες αναλύονται σε μεγαλύτερο βαθμό οι καρτέλες της συσταδοποίησης και της ανακάλυψης ακροτάτων, καθώς αποτελούν τα εστιακά σημεία της διατριβής αυτής. 4.3 Συσταδοποίηση στο MOA Μια βασική δυνατότητα του MOA είναι η υποστήριξη μεθόδων συσταδοποίησης σε ροές δεδομένων. Το εργαλείο παρέχει ποικιλία παραμετροποιήσιμων γεννητριών 24 δεδομένων οι οποίες παράγουν εξελισσόμενες ροές αλλά και ένα σύνολο state-ofthe-art αλγορίθμων συσταδοποίησης ροών προς πειραματισμό ή και σύγκριση. Επίσης, η υπάρχουσα συλλογή μετρικών επιτρέπει την αξιολόγηση των αλγορίθμων και των αποτελεσμάτων τους ενώ η καρτέλα οπτικοποίησης βοηθάει στην ευκολότερη ερμηνεία, ανάλυση και σύγκριση αυτών. 4.3.1 Αλγόριθμοι Το MOA είναι ένα εργαλείο επεκτάσιμο καθώς νέοι αλγόριθμοι συσταδοποίησης υλοποιούνται εύκολα, κληρονομώντας τα πεδία και τις μεθόδους της κλάσης AbstractClusterer. Ο προγραμματιστής αρκεί να υλοποιήσει την μέθοδο «void resetLearningImpl()» για την αρχικοποίηση και παραμετροποίηση του αλγορίθμου, την μέθοδο «void trainOnInstanceImpl(Instance)» για την επεξεργασία μιας εισερχόμενης παρατήρησης και την μέθοδο «Clustering getClusteringResult()» για την απόκτηση της εκάστοτε συσταδοποίησης της ροής ώστε να είναι διαθέσιμη για αξιολόγηση και οπτικοποίηση. Μερικοί από τους σημαντικότερους αλγορίθμους συσταδοποίησης ροών που συμπεριλαμβάνονται στην τελευταία έκδοση του MOA είναι οι παρακάτω: StreamKM++ [1]: Εξάγει με αποδοτικό τρόπο ένα μικρό δείγμα με βάρη από την ροή δεδομένων και λύνει το πρόβλημα της αρχικής επιλογής συστάδων πάνω σε αυτό χρησιμοποιώντας τον αλγόριθμο k-means++. CluStream [3]: Διατηρεί στατιστική πληροφορία για το σύνολο δεδομένων χρησιμοποιώντας μικρο-συστάδες (micro-clusters). Οι συστάδες αυτές είναι χρονικές επεκτάσεις των πλειάδων CF που μελετήθηκαν σε προηγούμενο κεφάλαιο. Αποθηκεύονται ως χρονικά στιγμιότυπα σε μια ιεραρχική πυραμιδοειδή δομή, η οποία επιτρέπει την κατασκευή στατιστικών περιλήψεων σε πολλαπλούς χρονικούς ορίζοντες. ClusTree [25]: Ένας αλγόριθμος που δεν απαιτεί παραμετροποίηση και επίσης προσαρμόζεται αυτόματα στην ταχύτητα της ροής δεδομένων. Έχει τη δυνατότητα να επεκταθεί ώστε να είναι σε θέση να εντοπίζει απότομες αλλαγές συμπεριφοράς (concept drift), πρωτοφανείς συμπεριφορές (novelty) αλλά και ανώμαλες παρατηρήσεις (τεχνική AnyOut). Χρησιμοποιεί μια ιεραρχική δενδρική δομή καταλόγου η οποία αποτελείται από πλειάδες CF και έτσι αυτόματα διατηρεί και ανανεώνει την εκάστοτε κατάσταση της ροής δεδομένων. Den-Stream [12]: Χρησιμοποιεί την έννοια των μικρο-συστάδων (core microclusters) για την περίληψη των πραγματικών συστάδων. Για την παραγωγή ορθών αποτελεσμάτων και την διάκριση μεταξύ συστάδων και ανώμαλων παρατηρήσεων, ο αλγόριθμος ορίζει δύο διακριτά είδη μικρο-συστάδων, τα core micro-clusters και τα outlier micro-clusters. CobWeb [16]: Αποτελεί μια από τις πρώτες επαυξητικές μεθόδους συσταδοποίησης και χρησιμοποιεί ένα δένδρο κατηγοριοποίησης για να το 25 επιτύχει. Κάθε κόμβος στο δένδρο αντιπροσωπεύει μια συστάδα της ροής η οποία ουσιαστικά αποτελείται από το στατιστικό μοντέλο που την περιγράφει. Το επαυξητικό στοιχείο του αλγορίθμου αναφέρεται στην σταδιακή προσαρμογή (learning) των κόμβων στα δεδομένα τα οποία περιγράφουν. 4.3.2 Γραφικό περιβάλλον Η καρτέλα της συσταδοποίησης διαφέρει από τις καρτέλες της κατηγοριοποίησης και της παλινδρόμησης οι οποίες είναι όμοιες (Σχήμα 4.2), όσον αφορά την ροή εργασίας και την γραφική διεπαφή. Επίσης, διαχωρίζεται σε δύο υπο-καρτέλες οι οποίες ασχολούνται με την παραμετροποίηση και την οπτικοποίηση αντίστοιχα. Όπως απεικονίζεται στο Σχήμα 4.4, η παραμετροποίηση στη περίπτωση της συσταδοποίησης παρέχει μεγαλύτερη ποικιλία επιλογών, αλλά απαιτεί και βαθύτερες γνώσεις από τη μεριά του χρήστη. Από το πλαίσιο Cluster Algorithm Setup ο χρήστης είναι σε θέση να καθορίσει την πηγή δεδομένων (γεννήτρια ή αρχείο) και να επιλέξει ένα ζεύγος αλγορίθμων προς σύγκριση. Το πλαίσιο Evaluation Measures παρέχει στο χρήστη μια λίστα μετρικών, από τις οποίες μπορεί να επιλέξει αυτές που θα εφαρμοστούν. Τέλος, στο κάτω μέρος βρίσκεται η κονσόλα καταγραφής συμβάντων. Σχήμα 4.4 Καρτέλα παραμετροποίησης συσταδοποίησης στο MOA (απόκομμα). Στο Σχήμα 4.4 απεικονίζεται η υπο-καρτέλα παραμετροποίησης (Setup) της συσταδοποίησης. Η δεύτερη υπο-καρτέλα (Σχήμα 4.5) ονομάζεται Visualization και περιέχει τα απαραίτητα γραφικά στοιχεία για την οπτικοποίηση της εκτέλεσης των 26 αλγορίθμων και των αποτελεσμάτων. Στο πάνω μέρος βρίσκονται οι επιλογές οπτικοποίησης από τις οποίες ελέγχουμε τι απεικονίζεται ή όχι, την ταχύτητα ανανέωσης, τα διαστήματα μεταξύ παύσεων και λοιπά. Το κεντρικό πλαίσιο της καρτέλας χωρίζεται σε δύο μέρη τα οποία απεικονίζουν το αποτέλεσμα της συσταδοποίησης ανά αλγόριθμο. Ο χρήστης μπορεί να μελετήσει λεπτομερέστερα μια συστάδα τοποθετώντας τον κέρσορα πάνω από το περίγραμμά της. Τέλος, στο κάτω μέρος βρίσκεται το πλαίσιο της αξιολόγησης το οποίο είναι όμοιο με αυτό της κατηγοριοποίησης που προαναφέρθηκε. Σχήμα 4.5 Καρτέλα οπτικοποίησης συσταδοποίησης στο MOA. 4.4 Εντοπισμός ακροτάτων στο MOA Παλαιότερα, το MOA υποστήριζε μόνο τις λειτουργίες της κατηγοριοποίησης και της συσταδοποίησης. Στη συνέχεια, καθώς παρουσιάστηκε ενδιαφέρον τόσο γενικά για το εργαλείο αλλά και για τις δυνατότητες που προσφέρει στην κοινότητα της εξόρυξης δεδομένων, εμφανίστηκε η επιθυμία να υποστηρίζει εύρεση ακροτάτων τιμών έτσι ώστε η σύγκριση αλγορίθμων του τομέα να είναι ευκολότερη και τυποποιήσιμη. Έτσι, από την έκδοση 13.08 του MOA και ύστερα προστέθηκε η καρτέλα ανάλυσης ακροτάτων (Outliers) η οποία εξυπηρετεί ακριβώς αυτό τον σκοπό 27 και υλοποιήθηκε από το εργαστήριο deLab (Data Engineering Lab) του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης [17]. 4.4.1 Αλγόριθμοι Στο πλαίσιο της συνεισφοράς αυτής υλοποιήθηκε το γραφικό περιβάλλον της καρτέλας εύρεσης ακροτάτων τιμών αλλά και τέσσερις state-of-the-art αλγόριθμοι εξόρυξης. Οι τεχνικές που ακολουθούν βασίζονται στη αξιολόγηση μέσω της απόστασης, το οποίο σημαίνει πως ένα αντικείμενο x είναι ακρότατη παρατήρηση εάν σε ακτίνα R από αυτό υπάρχουν λιγότερα από k γειτονικά αντικείμενα. Επίσης, η αξιολόγηση είναι μια συνεχής διαδικασία, με την έννοια ότι δεν γίνεται επεξεργασία ενός αντικειμένου μόνο την στιγμή της άφιξής του, αλλά έως ότου αυτό εγκαταλείψει το κυλιόμενο παράθυρο. STORM (Stream OutlieR Miner) [4]: Μια απλοϊκή λύση στο πρόβλημα της εξόρυξης ακροτάτων σε ροές δεδομένων με κριτήριο την απόσταση θα ήταν η διατήρηση ολόκληρου του συνόλου γειτόνων για κάθε αντικείμενο. Προφανώς, μια τέτοια προσέγγιση έχει απαγορευτικό υπολογιστικό κόστος και ογκώδεις χωρικές απαιτήσεις για μεγάλα παράθυρα της ροής. Ο αλγόριθμος STORM απαιτεί για κάθε αντικείμενο του παραθύρου το πολύ k προηγούμενους γείτονες και μόνο τον αριθμό των μελλοντικών γειτόνων ώστε να καταλήξει σε συμπέρασμα ανωμαλίας ή μη μιας παρατήρησης. Όσον αφορά την εισαγωγή νέων αντικειμένων της ροής, εκτελείται ένα χωρικό ερώτημα για την εύρεση και την καταγραφή των γειτόνων του σε ακτίνα R. Ταυτόχρονα, για κάθε γείτονα που βρίσκεται, προστίθεται μια μονάδα στο σύνολο των μελλοντικών γειτόνων τους για λόγους συνέπειας και λειτουργίας της τεχνικής. Ο χαρακτηρισμός ενός αντικειμένου ως ανώμαλη παρατήρηση ή μη πραγματοποιείται λαμβάνοντας υπ’ όψη τους γείτονες του αντικειμένου οι οποίοι δεν έχουν λήξει και η χρονική πολυπλοκότητα για κάθε αντικείμενο είναι O(logk), το οποίο σημαίνει πως για την επεξεργασία όλων των αντικειμένων απαιτείται O(nlogk) χρόνος. Στο MOA υλοποιήθηκε τόσο η ακριβής όσο και η προσεγγιστική εκδοχή του αλγορίθμου STORM. Abstract-C [33]: Ο αλγόριθμος αυτός μειώνει το προηγούμενο υπολογιστικό κόστος σε O(n) έχοντας συνεχώς αποθηκευμένο τον αριθμό των γειτόνων ενός αντικειμένου για όλο το εύρος του παραθύρου έως ότου το αντικείμενο αυτό λήξει. Βέβαια, η τεχνική αυτή αυξάνει τις χωρικές απαιτήσεις σε O(n × w) όπου w το μέγεθος του παραθύρου, αφού διατηρεί πληθώρα μετρητών για κάθε αντικείμενο του παραθύρου. Η πληροφορία αυτή, όμως, επιτρέπει στον Abstract-C να απαντάει ερωτήματα με πολλαπλές τιμές k και επίσης εφαρμόζεται σε παράθυρα αντικειμένων τόσο χρονικά (time-based) όσο και ποσοτικά (count-based). 28 COD (Continuous Outlier Detection) [23]: Επειδή ο αλγόριθμος COD βασίζεται σε μια παθητική προσέγγιση που πυροδοτείται από γεγονότα (event-based) καταφέρνει να μειώσει σημαντικά τον αριθμό των αντικειμένων που πρέπει να επεξεργάζονται σε κάθε νέο στιγμιότυπο του παραθύρου, σε αντίθεση με τον αλγόριθμο STORM. Το κλειδί στην αποδοτικότητα του αλγορίθμου COD είναι ότι υπολογίζει την μελλοντική χρονική στιγμή εκείνη που ένα αντικείμενο πιθανώς να αλλάξει κατάσταση (από ακρότατο σε φυσιολογικό ή αντίστροφα) λόγω λήξεως προηγούμενων αντικειμένων. Έτσι, επεξεργάζεται ένα αντικείμενο μόνο τη χρονική στιγμή της αλλαγής και όχι συνεχώς, μειώνοντας σημαντικά το υπολογιστικό κόστος κλαδεύοντας περιττούς υπολογισμούς. MCOD (Micro-cluster-based Continuous Outlier Detection) [23]: Ο αλγόριθμος βασίζεται στον COD και χρησιμοποιεί την ίδια τεχνική κλαδέματος υπολογισμών. Η διαφορά του έγκειται στο γεγονός ότι προσπαθεί να μειώσει το κόστος των χωρικών ερωτημάτων κατά την εισαγωγή νέων αντικειμένων στο παράθυρο. Αυτό επιτυγχάνεται χρησιμοποιώντας εξελισσόμενες μικροσυστάδες που ενημερώνονται συνεχώς και αντιπροσωπεύουν περιοχές στα δεδομένα οι οποίες αποτελούνται αποκλειστικά από φυσιολογικές παρατηρήσεις. Έτσι, τα προαναφερθέντα χωρικά ερωτήματα για κάθε εισερχόμενο αντικείμενο εκτελούνται με βάση τα κέντρα των σχηματισμένων μικρο-συστάδων και όχι πάνω στα αρχικά δεδομένα. Σε ρεαλιστικά δεδομένα με μικρό ποσοστό ανωμαλιών και πυκνές περιοχές, η αφαιρετική τεχνική του MCOD αποδίδει σημαντική βελτίωση στην απόδοση, διατηρώντας τις χωρικές απαιτήσεις του αλγορίθμου σε O(n). Η ενσωμάτωση των παραπάνω αλγορίθμων αλλά και της γραφικής διεπαφής στο MOA έγινε σε μεγάλο βαθμό επαναχρησιμοποιώντας κώδικα της καρτέλας συσταδοποίησης. Με αυτό τον τρόπο διασφαλίζεται η συνοχή του πηγαίου κώδικα στο έργο και η φιλοσοφία επεκτασιμότητας διατηρείται παρόμοια. Έτσι, για να προστεθεί ένας νέος αλγόριθμος ανακάλυψης ακροτάτων τιμών, ο προγραμματιστής αρκεί να επεκτείνει την κλάση MyBaseOutlierDetector και να υλοποιήσει την μέθοδο «void Init()» για την αρχικοποίηση και παραμετροποίηση του αλγορίθμου, την μέθοδο «void ProcessNewStreamObj(Instance inst)» για την επεξεργασία μιας εισερχόμενης παρατήρησης και την μέθοδο «Vector<Outlier> getOutliersResult()» για την απόκτηση της εκάστοτε συλλογής ακροτάτων με σκοπό την αξιολόγηση και οπτικοποίηση του αποτελέσματος. 4.4.2 Γραφικό περιβάλλον Για λόγους συνάφειας του γραφικού περιβάλλοντος σε όλο το εύρος του εργαλείου, η καρτέλα ανακάλυψης ακροτάτων δεν επανασχεδιάστηκε, αλλά είναι παρόμοια με την καρτέλα της συσταδοποίησης τόσο εμφανισιακά όσο και λειτουργικά. Έτσι, η 29 βασική καρτέλα διαχωρίζεται σε δύο υποκατηγορίες που αφορούν την παραμετροποίηση και την οπτικοποίηση. Σε αυτό το σημείο αξίζει να σημειωθεί πως στα πλαίσια της διατριβής αυτής έγιναν σημαντικές προσθήκες στην καρτέλα της ανάλυσης ακροτάτων. Συγκεκριμένα, στο επόμενο κεφάλαιο θα μελετηθεί η προσθήκη μετρικών αξιολόγησης, οι οποίες απουσίαζαν ολοκληρωτικά από την καρτέλα, καθώς και η προσθήκη του αλγορίθμου AnyOut στη συλλογή αλγορίθμων εντοπισμού ακροτάτων τιμών. Η συνεισφορά συμπεριλαμβάνει τόσο αλλαγές στην υλοποίηση όσο και προσθήκες στη γραφική διεπαφή της καρτέλας. Σχήμα 4.6 Καρτέλα παραμετροποίησης ανάλυσης ακροτάτων στο MOA (απόκομμα). Το Σχήμα 4.6 παρουσιάζεται η υπο-καρτέλα παραμετροποίησης. Ομοίως με την αντίστοιχη καρτέλα συσταδοποίησης, ο χρήστης επιλέγει την ροή δεδομένων που επιθυμεί και έναν αλγόριθμο προς εκτέλεση ή δύο προς σύγκριση. Στο κάτω μέρος της οθόνης βρίσκεται η κονσόλα καταγραφής συμβάντων στην οποία εκτυπώνεται η πρόοδος της εκτέλεσης και, όταν το πείραμα τερματιστεί, τα στατιστικά αποτελέσματα. Ύστερα από τη σωστή ρύθμιση του πειράματος, η διαδικασία ξεκινάει επιλέγοντας το πλήκτρο εκκίνησης (Start/Resume), το οποίο βρίσκεται κάτω αριστερά στην καρτέλα παραμετροποίησης. Άμεσα, η καρτέλα οπτικοποίησης του Σχήματος 4.7 απεικονίζει σε πραγματικό χρόνο τα αποτελέσματα εκτέλεσης των δύο αλγορίθμων ενώ ταυτόχρονα ενημερωτικά μηνύματα καταγράφονται στην κονσόλα συμβάντων. Στα δύο πλαίσια που αντιστοιχούν στα αποτελέσματα των αλγορίθμων, τα σημεία με κόκκινο χρώμα αντιπροσωπεύουν τις εντοπισμένες ανώμαλες παρατηρήσεις ενώ τα σημεία με γκρι χρώμα είναι φυσιολογικές παρατηρήσεις, ή ανώμαλες που ο αλγόριθμος ίσως απέτυχε να εντοπίσει (false positive). Επίσης η εξασθένηση του χρώματος προς το λευκό, δηλαδή η σταδιακή εξαφάνιση των σημείων, μιμείται την παλαίωση και λήξη των αντικειμένων του παραθύρου. 30 Οι κόκκινοι κύκλοι γύρω από τα αντικείμενα του παραθύρου εμφανίζονται όταν η παρατήρηση την οποία περικυκλώνουν αλλάζει κατάσταση από φυσιολογική σε ανώμαλη. Ομοίως, η αντίστροφη μετάβαση κατάστασης απεικονίζεται με μαύρο κύκλο. Επιλέγοντας μια ανώμαλη παρατήρηση εμφανίζεται ένα αναδυόμενο παράθυρο με τίτλο Outlier Information, το οποίο περιέχει χρήσιμες πληροφορίες για το αντικείμενο και για την κατάστασή του. Οι πληροφορίες που εμφανίζονται είναι αντίστοιχες του αλγορίθμου που εκτελείται, καθώς διαφορετικοί αλγόριθμοι χρησιμοποιούν διαφορετικά κριτήρια εντοπισμού ακροτάτων τιμών. Σχήμα 4.7 Καρτέλα οπτικοποίησης ανάλυσης ακροτάτων στο MOA. Στο κάτω μέρος του παραθύρου στο Σχήμα 4.7 βρίσκεται η γραφική παράσταση (time-per-object) του χρόνου επεξεργασίας (κάθετος άξονας) ανά στιγμιότυπο του παραθύρου (οριζόντιος άξονας). Στην περιοχή αυτή προστέθηκαν οι νέες μέθοδοι αξιολόγησης και η δυνατότητα απεικόνισης αυτών σε γραφική παράσταση, παρομοίως με την αντίστοιχη περιοχή του Σχήματος 4.5. Οι δύο αλγόριθμοι απεικονίζονται τόσο στο διάγραμμα όσο και στην οπτικοποίηση με κόκκινο και μπλε χρώμα ώστε να γίνεται ξεκάθαρη διαφοροποίηση. 31 Το προεπιλεγμένο διάστημα τοποθέτησης της εκτέλεσης σε αναμονή είναι η επεξεργασία 1000 αντικειμένων. Όταν η εκτέλεση διακοπεί, ο χρήστης μπορεί να μελετήσει λεπτομερέστερα το αποτέλεσμα και να επιλέξει συγκεκριμένες παρατηρήσεις για περαιτέρω λεπτομέρειες. Η διακοπή μπορεί να γίνει και χειροκίνητα από το πλήκτρο Pause/Resume στο πάνω αριστερά μέρος της οθόνης. Για να τερματιστεί η εκτέλεση χρησιμοποιείται το πλήκτρο Stop. Στη συνέχεια, στατιστικά στοιχεία της εκτέλεσης του πειράματος θα εμφανιστούν στην κονσόλα καταγραφής συμβάντων, η οποία βρίσκεται στην καρτέλα παραμετροποίησης. 4.5 Βιβλιογραφική επισκόπηση Το εργαλείο MOA [10] παρέχει ένα περιβάλλον εκτέλεσης πειραμάτων εξόρυξης στο πλαίσιο των ροών δεδομένων. Περισσότερα για το εργαλείο βρίσκονται στον ιστότοπο http://moa.cms.waikato.ac.nz/. Οι ενδιαφερόμενοι έχουν πρόσβαση στο εκτελέσιμο πρόγραμμα, στην εκτενή τεκμηρίωση του κώδικα, σε οδηγούς εκτέλεσης πειραμάτων και σε λοιπές βιβλιογραφικές αναφορές και δημοσιεύσεις. Ο πηγαίος κώδικας είναι ανοικτός στο κοινό υπό την άδεια GNU GPL. 32 ΚΕΦΑΛΑΙΟ 5 Επεκτάσεις του MOA 33 5.1 Εισαγωγή Πρωταρχικός στόχος της διατριβής αυτής ήταν ο εμπλουτισμός των δυνατοτήτων εξόρυξη ακροτάτων τιμών του εργαλείου ανοικτού κώδικα MOA. Η κυριότερη συνεισφορά ήταν η υλοποίηση και ενσωμάτωση του αλγορίθμου AnyOut στην καρτέλα ανάλυσης ακροτάτων. Επίσης, προστέθηκαν μετρικές αξιολόγησης καθώς και η σχετική γραφική διεπαφή για να τις υποστηρίζει. Οι παραπάνω επεκτάσεις έγιναν στην έκδοση 13.08 του MOA και σε γλώσσα προγραμματισμού Java. Για να υλοποιηθούν επιτυχώς οι παραπάνω λειτουργίες έγιναν οι απαραίτητες μετατροπές και προσθήκες στον υπάρχων κώδικα. Σημαντικές αλλαγές έγιναν στην κλάση moa.gui.visualization.RunOutlierVisualizer για να υποστηρίζεται η χρήση των νέων μετρικών, καθώς επίσης προστέθηκε το πακέτο moa.evaloutliers το οποίο τις περιέχει. Επιπλέον, επειδή ο νέος αλγόριθμος AnyOut εισήγαγε δυο νέες έννοιες στην καρτέλα ανάλυσης ανωμαλιών – τον βαθμό ανωμαλίας (outlier score) ενός αντικειμένου και τον βαθμό βεβαιότητας (confidence score) του αλγορίθμου για το παραγόμενο αποτέλεσμα – έγιναν οι απαραίτητες αλλαγές στην κλάση Outlier η οποία βρίσκεται εντός της κλάσης moa.clusterers.outliers.MyBaseOutlierDetector. Τέλος, έγινε προσπάθεια η νέα γραφική διεπαφή της καρτέλας ανάλυσης ακροτάτων να είναι παρόμοια με την καρτέλα συσταδοποίησης για λόγους συνοχής και, ως εκ τούτου, επαναχρησιμοποιήθηκαν τόσο γραφικά στοιχεία όσο και η λογική της ροής εργασίας. Πλέον, ο χρήστης έχει τη δυνατότητα να επιλέξει τις μετρικές που επιθυμεί να χρησιμοποιηθούν από την καρτέλα παραμετροποίησης του πειράματος και στη συνέχεια να επιλέξει την μετρική προς απεικόνιση από την καρτέλα οπτικοποίησης. 5.2 Υλοποίηση του αλγορίθμου AnyOut Ο αλγόριθμος AnyOut δεν υλοποιήθηκε εκ του μηδενός στα πλαίσια της διατριβής. Συγκεκριμένα, μια έκδοση του αλγορίθμου ήταν υλοποιημένη και ενσωματωμένη σε μια νέα, ανεξάρτητη καρτέλα του MOA και βρισκόταν σε πειραματικό στάδιο. Η λύση αυτή όμως δεν ήταν ικανοποιητική, καθώς υπήρχε ήδη η υποδομή για την υποστήριξη μεθόδων εύρεσης ακροτάτων τιμών και συνεπώς ο αλγόριθμος έπρεπε να ενσωματωθεί στην υπάρχουσα εργαλειοθήκη. Το πρώτο βήμα στη διαδικασία της αναπροσαρμογής του AnyOut στο υπάρχον API ήταν οι μετατροπές στον κώδικα. Στο πακέτο moa.clusterers.outliers.AnyOut βρίσκονται πλέον οι κλάσεις που απαιτούνται για την εκτέλεση του αλγορίθμου. Οι δύο βασικές κλάσεις εντός του πακέτου αυτού είναι οι AnyOut και AnyOutCore, οι αρμοδιότητες των οποίων περιγράφονται παρακάτω. 34 5.2.1 Η κλάση AnyOutCore Η κλάση AnyOutCore υλοποιεί την λειτουργία των ανεξάρτητων συστατικών του αλγορίθμου. Αποτελεί μια επέκταση της κλάσης ClusTree, προσθέτοντας τα απαραίτητα πεδία, επιλογές (options) και μεθόδους για την υλοποίηση του AnyOut. 5.2.1.1 Δομές και μεταβλητές Τα σημαντικότερα πεδία του αλγορίθμου, τα οποία χρησιμοποιούνται για την αποθήκευση βαθμολογιών ανωμαλίας και βεβαιότητας, αλλά και για την απομνημόνευση καταστάσεων για κάθε αντικείμενο του παραθύρου, βασίζονται στη δομή HashMap με κλειδί το αναγνωριστικό (id) του αντικειμένου. Παρακάτω συνοψίζεται το περιεχόμενο και η χρήση του καθενός, καθώς αποτελούν αναπόσπαστο κομμάτι της λειτουργικότητας. HashMap<Integer,Double> lastOScoreResult; - HashMap<Integer,ArrayList<Double>> previousOScoreResultList; - Αποθηκεύει την τελευταία υπολογισμένη βαθμολογία βεβαιότητας του αλγορίθμου όσον αφορά την ευστοχία του βαθμού ανωμαλίας που αποδόθηκε στο αντικείμενο. HashMap<Integer, Integer> currentLevel; - Αποθηκεύει την συναθροιστική βαθμολόγηση ανωμαλίας του αντικειμένου, η οποία παράγεται χρησιμοποιώντας τις τιμές της προηγούμενης λίστας. HashMap<Integer,Double> lastConfidenceResult; - Αποθηκεύει όλη την πορεία των βαθμολογιών ανωμαλίας του αντικειμένου, έτσι ώστε να υποστηρίζεται η παραγωγή μιας ευστοχότερης βαθμολογίας μέσω συνάθροισης των παραπάνω τιμών. HashMap<Integer,Double> aggregatedOScoreResult; - Αποθηκεύει την τελευταία υπολογισμένη τιμή του βαθμού ανωμαλίας (OScore) του αντικειμένου. Αποθηκεύει το εκάστοτε βάθος επεξεργασίας του αντικειμένου εντός του δένδρου ClusTree και χρησιμοποιείται για τον έλεγχο της δυνατότητας περαιτέρω επεξεργασίας σε βαθύτερο επίπεδο. HashMap<Integer, ClusKernel> objectAsKernel; - Αποθηκεύει το αντικείμενο διαμορφωμένο ως δομή ClusKernel ώστε ο αλγόριθμος να είναι σε θέση να εντοπίσει την κοντινότερη σε αυτό εγγραφή (Entry) εντός του ClusTree. 35 HashMap<Integer,Node> descendToNode; - Αφότου εντοπιστεί η κοντινότερη εγγραφή, στο πεδίο αυτό αποθηκεύεται ο κόμβος – απόγονος (child Node) αυτής (βλ. Σχήμα 3.1). Ο κόμβος αυτός χρησιμοποιείται στη συνέχεια για επανάληψη της βαθμολόγησης και βελτίωση του αποτελέσματος σε βαθύτερο επίπεδο του ClusTree, εφόσον το επιτρέπουν οι περιορισμοί. 5.2.1.2 Παραμετροποίηση και επιλογές Παράλληλα με τα παραπάνω πεδία, σημαντικό ρόλο κατέχουν και οι επιλογές παραμετροποίησης του αλγορίθμου. Οι επιλογές αυτές εμφανίζονται στο παράθυρο ρυθμίσεων του αλγορίθμου μέσω της καρτέλας παραμετροποίησης και απεικονίζονται στο Σχήμα 5.1. Αφορούν κυρίως τον τρόπο βαθμολόγησης των αντικειμένων αλλά και την διαδικασία αρχικοποίησης. Στη συνέχεια αναλύεται ο ρόλος της κάθε επιλογής στην πορεία εκτέλεσης του AnyOut. MinSearchDepth (Εύρος τιμών: [0, 1] – Προεπιλογή: 0,5) - MaxSearchDepth (Εύρος τιμών: [0, 1] – Προεπιλογή: 0,9) - Ο AnyOut είναι σε θέση να εκπαιδευτεί προτού ξεκινήσει η διαδικασία βαθμολόγησης των αντικειμένων. Επιλέγοντας μια τιμή διάφορη του μηδενός, το δένδρο ClusTree αρχικοποιείται με τον επιλεγμένο αριθμό αντικειμένων και διαμορφώνονται οι πρώτες συστάδες ώστε να υπάρχει μια βάση στην οποία θα εφαρμοστεί η επεξεργασία. UseBulkLoading (Δυαδική μεταβλητή – Προεπιλογή: Απενεργοποιημένο) - Σε συνδυασμό με την επιλογή MinSearchDepth, παράγεται ένα τυχαίο ποσοστό βάθους του ClusTree, στο οποίο θα σταματήσει η περαιτέρω επεξεργασία ενός νέου αντικειμένου. Το ποσοστό αυτό υπολογίζεται εντός του διαστήματος [MinSearchDepth, MaxSearchDepth]. TrainingSetSize (Εύρος τιμών: [0, 10000] – Προεπιλογή: 1000) - Χρησιμοποιείται στην προσομοίωση της Anytime συμπεριφοράς του αλγορίθμου και αντιπροσωπεύει το κάτω όριο της τυχαίας επιλογής βάθους για ένα νέο εισερχόμενο αντικείμενο. Εκτός από την κλασσική, σειριακή προσθήκη αντικειμένων που υποστηρίζει το δένδρο ClusTree, ο AnyOut είναι εξοπλισμένος με την δυνατότητα της μαζικής προσθήκης (bulk loading) [24] του συνόλου εκπαίδευσης στη δομή με σκοπό την βελτιωμένη απόδοση της διαδικασίας. OScoreAggregate (Εύρος τιμών: [1, 10] – Προεπιλογή: 2) - Χρησιμοποιείται για τον καθορισμό του επιπέδου συνάθροισης του βαθμού ανωμαλίας ενός αντικειμένου. Εάν η τιμή της επιλογής είναι 36 1, λαμβάνεται υπ’ όψη μόνο η τελευταία υπολογισμένη τιμή, μέσω του πεδίου lastOScoreResult. Διαφορετικά, για τον υπολογισμό της βαθμολογίας συναθροίζονται τα επιλεγμένα σε αριθμό τελευταία πεδία της λίστας previousOScoreResultList. ConfidenceAggregate (Εύρος τιμών: [1, 10] – Προεπιλογή: 2) - ConfidenceSelection (Εύρος τιμών: [1, 7] – Προεπιλογή: 4) - Η επιλογή αυτή ενεργοποιεί την βαθμολόγηση της ανωμαλίας των αντικειμένων σύμφωνα με το κριτήριο της πυκνότητας (density score). horizon (Απεριόριστο εύρος τιμών – Προεπιλογή: 1000) - Στην περίπτωση που χρησιμοποιείται ο τρόπος βαθμολόγησης ενός αντικειμένου σύμφωνα με το μέγεθος της απόκλισής του από τον μέσο της κοντινότερης πλειάδας CF (mean score), η τιμή της επιλογής αυτής καθορίζει την ελάχιστη βαθμολογία που πρέπει να έχει ένα αντικείμενο έτσι ώστε να θεωρηθεί ακρότατο. UseDensityScore (Δυαδική μεταβλητή – Προεπιλογή: Απενεργοποιημένο) - Η επιλογή αυτή καθορίζει την συνάρτηση που θα χρησιμοποιηθεί για την παραγωγή του βαθμού βεβαιότητας. Οι επιλογές 1, 2 και 3 αντιστοιχούν σε τρείς διαφορετικές και ανεξάρτητες συναρτήσεις, ενώ στις επιλογές 4 έως 7 χρησιμοποιείται ένας διαφορετικός συνδυασμός των τριών βασικών συναρτήσεων ως γινόμενο. Πιο συγκεκριμένα, η πρώτη επιλογή βασίζεται στο άθροισμα διαφορών των προηγούμενων βαθμολογιών ανά γειτονικά ζεύγη, η δεύτερη βασίζεται στο άθροισμα όλων των βαθμολογιών ανωμαλίας, ενώ η τρίτη ουσιαστικά είναι το ποσοστό βάθους εντός του ClusTree, στο οποίο σταμάτησε η επεξεργασία. OScoreThreshold (Εύρος τιμών: [0, 1] – Προεπιλογή: 0,07) - Ομοίως με την προηγούμενη επιλογή, χρησιμοποιείται για τον καθορισμό του επιπέδου συνάθροισης του βαθμού βεβαιότητας. Η επιλογή αυτή κληρονομείται από τις επιλογές του ClusTree και αναφέρεται στο μέγεθος του κυλιόμενου παραθύρου. Χρησιμοποιείται από το ClusTree για να προσομοιωθεί η παλαίωση των αντικειμένων καθώς το παράθυρο «μετακινείται». maxHeight (Απεριόριστο εύρος τιμών – Προεπιλογή: 8) - Επίσης κληρονομείται από την κλάση ClusTree και αφορά το μέγιστο ύψος που επιτρέπεται να αποκτήσει η δομή. 37 evaluateMicroClustering (Δυαδική μεταβλητή – Προεπιλογή: Απενεργοποιημένο) - Κληρονομείται από την υπερκλάση AbstractClusterer της κλάσης ClusTree και εάν ενεργοποιηθεί, ο αλγόριθμος λειτουργεί πάνω στις σχηματιζόμενες μικρο-συστάδες. Σχήμα 5.1 Παραμετροποίηση του AnyOut. 5.2.1.3 Βασικότερες μέθοδοι Όπως προδίδει και το όνομά της, η κλάση AnyOutCore και οι μέθοδοί της αποτελούν τον πυρήνα (core) του συστήματος. Χρησιμοποιώντας τις επιλογές παραμετροποίησηw της ενότητας 5.2.1.2 σε συνδυασμό με τα προαναφερθέντα πεδία για αποθήκευση πληροφοριών και καταστάσεων, οι μέθοδοι της κλάσης αυτής υλοποιούν τα συστατικά μέρη του αλγορίθμου. Στη συνέχεια η κλάση AnyOut, η οποία θα αναλυθεί στην επόμενη ενότητα, λειτουργεί ως «διαχειριστής» (controller) και οργανώνει την σωστή ακολουθία εκτέλεσης αυτών. Ακολουθεί η περιγραφή των κυριότερων μεθόδων της κλάσης AnyOutCore. 38 public AnyOutCore() και public void resetLearning() - public void train(DataSet trainingSet) - Προτού γίνει περαιτέρω επεξεργασία ενός αντικειμένου, η μέθοδος αυτή ελέγχει εάν η ζητούμενη ενέργεια είναι δυνατή ή επιτρεπτή. Συγκεκριμένα, ελέγχεται εάν το αντικείμενο πρόκειται να υπερβεί το ποσοστό εμβάθυνσης που του αναλογεί και, στην περίπτωση που δεν παραβιάζεται το όριο, ελέγχεται η ύπαρξη ή μη επόμενου κόμβου – απογόνου στο δένδρο. public void improveObjectOnce(int objectId) - Όταν ένα νέο αντικείμενο εισέρχεται στον αλγόριθμο, καλείται η συγκεκριμένη μέθοδος αρχικοποίησης. Στην μέθοδο αυτή γίνεται η πρώτη βαθμολόγηση του αντικειμένου στο ύψος της ρίζας του ClusTree και όλα τα πεδία της ενότητας 5.2.1.1 αποκτούν μια νέα εγγραφή με κλειδί το αναγνωριστικό του αντικειμένου. public boolean moreImprovementsPossible(int id, double depth) - Η μέθοδος αυτή εκτελεί την εκπαίδευση του ClusTree με το δοθέν σύνολο δεδομένων, το μέγεθος του οποίου ορίζει ο χρήστης στην επιλογή TrainingSetSize. Στο σημείο αυτό χρησιμοποιείται επίσης και η επιλογή UseBulkLoading για την ενεργοποίηση της αντίστοιχης λειτουργίας. public void initObject(int objectId, double[] features) - Χρησιμοποιούνται αποκλειστικά κατά την εκκίνηση του αλγορίθμου και εκτελούν την απαραίτητη αρχικοποίηση των πεδίων, την ανάγνωση των ρυθμίσεων του χρήστη και επίσης την αρχικοποίηση της υπερκλάσης ClusTree. Εφόσον είναι δυνατή η περαιτέρω επεξεργασία, η μέθοδος αυτή αναβαθμολογεί το αντικείμενο ένα επίπεδο χαμηλότερα εντός του δένδρου, ανανεώνοντας τις τιμές των πεδίων που αντιστοιχούν στο αναγνωριστικό του αντικειμένου. Η μέθοδος αυτή σε συνδυασμό με τον προηγούμενο έλεγχο αποτελούν τον πυρήνα της επαναληπτικής επεξεργασίας των αντικειμένων. public void learnObject(double[] features) - Όταν η επαναληπτική αναβαθμολόγηση του αντικειμένου ολοκληρωθεί, το αντικείμενο αυτό πρέπει να ενσωματωθεί στην δενδρική δομή. Έτσι, καλείται η αντίστοιχη μέθοδος εκπαίδευσης της υπερκλάσης ClusTree για να συνεχιστεί ο δυναμικός σχηματισμός συστάδων. 39 public void removeObject(int objectId) - Όταν ένα αντικείμενο υπερβεί το μέγεθος του παραθύρου, καθώς συνεχώς εισέρχονται σε αυτό νέες παρατηρήσεις, οι πληροφορίες που έχουν αποθηκευτεί για το αντικείμενο αυτό στις δομές HashMap αχρηστεύονται. Η μέθοδος αυτή αναλαμβάνει τη διαγραφή των αντίστοιχων ζευγών κλειδιού – τιμής και με τον τρόπο αυτό η δεσμευμένη μνήμη διατηρείται σε σταθερά επίπεδα. 5.2.2 Η κλάση AnyOut Η κλάση AnyOut ασχολείται με την προγραμματιστική διεπαφή του αλγορίθμου με τις υπόλοιπες κλάσεις του MOA, καθώς επεκτείνει την αφαιρετική κλάση MyBaseOutlierDetector. Η υπερκλάση αυτή είναι το βασικό συστατικό ενός αλγορίθμου εύρεσης ακροτάτων και αποτελείται από μεθόδους διαχείρισης της αρχικοποίησης και εκτέλεσης του αλγορίθμου, την αποθήκευση των αντικειμένων του παραθύρου, την λήψη του αποτελέσματος και λοιπά. Η ιδιαιτερότητα της κλάσης AnyOut είναι πως δεν υλοποιεί τις βασικές λειτουργίες του αλγορίθμου. Αντιθέτως, χρησιμοποιεί ένα στιγμιότυπο της κλάσης AnyOutCore ώστε να έχει πρόσβαση στις μεθόδους της και ενεργεί πάνω σε αυτές. Ουσιαστικά η κλάση αυτή λειτουργεί ως συντονιστής των μεθόδων της κλάσης-πυρήνα, ορίζοντας την κατάλληλη χρήση και την λογική εκτέλεση αυτών ώστε να σχηματιστεί ο ζητούμενος αλγόριθμος. 5.2.2.1 Πορεία εκτέλεσης Στους αλγορίθμους εύρεσης ακροτάτων τιμών η μέθοδος της κλάσης MyBaseOutlierDetector η οποία αναλαμβάνει την επεξεργασία των εισερχόμενων παρατηρήσεων είναι η ProcessNewStreamObj(Instance i). Όταν σχεδιάζεται ένας νέος αλγόριθμος του συγκεκριμένου είδους στο MOA, η μέθοδος αυτή πρέπει απαραιτήτως να υλοποιηθεί από τον προγραμματιστή. Είναι αυτή η οποία εμπεριέχει την λογική του αλγορίθμου και διαχειρίζεται την ακολουθία εκτέλεσης. Παρακάτω περιγράφονται αναλυτικά τα κομβικά σημεία της υλοποίησης της μεθόδου αυτής στο πλαίσιο του αλγορίθμου AnyOut. Η πορεία εκτέλεσης χωρίζεται σε δύο μέρη που αντιστοιχούν στην εκπαίδευση του ClusTree και, στη συνέχεια, στην αξιολόγηση των εισερχόμενων παρατηρήσεων. Αρχικά δημιουργείται ένα σύνολο αντικειμένων το οποίο περιέχει τόσες παρατηρήσεις όσες ο χρήστης έδωσε στην επιλογή TrainingSetSize. Στην φάση αυτή δεν εκτελείται καμία άλλη ενέργεια, παρά μόνο συλλογή των δεδομένων εκπαίδευσης. Ύστερα, όταν το σύνολο εκπαίδευσης (training set) αποκτήσει το επιθυμητό μέγεθος, καλείται η μέθοδος train της κλάσης AnyOutCore η οποία αναλύθηκε στην ενότητα 5.2.1.3. Σε αυτό το σημείο ας σημειωθεί πως το σύνολο εκπαίδευσης είναι ένα αντικείμενο της κλάσης DataSet, το οποίο με τη σειρά του αποτελείται από μια συλλογή αντικειμένων της κλάσης DataObject. 40 Αφού ολοκληρωθεί η εκπαίδευση του ClusTree, ξεκινάει η διαδικασία αξιολόγησης των μελλοντικών αντικειμένων της ροής. Tο σύνολο εκπαίδευσης δεν συμμετέχει στην αξιολόγηση, αλλά διαγράφεται για εξοικονόμηση μνήμης. Κάθε εισερχόμενο αντικείμενο ενθυλακώνεται στην κλάση DataObject και αμέσως προστίθεται στην λίστα objects, η οποία περιέχει την συλλογή αντικειμένων του παραθύρου. Εφόσον προστέθηκε ένα νέο αντικείμενο στη λίστα αλλά το μέγεθος του παραθύρου είναι προκαθορισμένο και περιορισμένο, ελέγχεται εάν ξεπεράστηκε το όριο. Στην περίπτωση που το παράθυρο είναι πλήρες, αφαιρείται το παλαιότερο αντικείμενο από την λίστα objects. Ύστερα από την εισαγωγή του νέου αντικειμένου στο παράθυρο καλείται η μέθοδος initObject μέσω του στιγμιότυπου της κλάσης AnyOutCore και υπολογίζεται η αρχική βαθμολογία του αντικειμένου. Στη συνέχεια, παράγεται ένα τυχαίο ποσοστό βάθους αναζήτησης στο ClusTree, το οποίο οριοθετείται από τις τιμές των επιλογών MinSearchDepth και MaxSearchDepth. Έτσι, το επόμενο βήμα είναι η επαναληπτική βελτίωση της βαθμολογίας του αντικειμένου μέσω διαδοχικών κλήσεων των μεθόδων moreImprovementsPossible και improveObjectOnce. Όταν ο βρόχος ολοκληρωθεί, το αντικείμενο εισάγεται στη δενδρική δομή του ClusTree ώστε να συνεχιστεί ο σχηματισμός συστάδων της ροής. Επειδή ο AnyOut ανήκει στην οικογένεια αλγορίθμων Anytime και πρέπει να παρέχει αποτελέσματα ανά πάσα στιγμή, το τελευταίο βήμα σε κάθε εκτέλεση της μεθόδου ProcessNewStreamObj είναι η αξιολόγηση του συνόλου δεδομένων που βρίσκονται εντός του παραθύρου, δηλαδή εντός της λίστας objects. Στο σημείο αυτό οι εντοπισμένες ακρότατες παρατηρήσεις προστίθενται στο αποτέλεσμα, το οποίο στη συνέχεια οπτικοποιείται και αξιολογείται από τις αρμόδιες κλάσεις του MOA. Ταυτόχρονα, γίνεται συλλογή στατιστικών στοιχείων, τα οποία εκτυπώνονται στην κονσόλα καταγραφής συμβάντων όταν η εκτέλεση ολοκληρωθεί. 5.2.2.2 Πληροφορίες και στατιστικά Όταν η πορεία του πειράματος στο ΜΟΑ βρίσκεται σε κατάσταση παύσης, ο χρήστης έχει την δυνατότητα να επιλέξει μια εντοπισμένη ακρότατη παρατήρηση από την καρτέλα οπτικοποίησης ώστε να αποκτήσει περαιτέρω σχετικές λεπτομέρειες. Οι πληροφορίες που εμφανίζονται για το αντικείμενο απαριθμούνται παρακάτω και εντός της παρένθεσης αναγράφεται η ονομασία των γνωρισμάτων σε αντιστοιχία με το αναδυόμενο παράθυρο. Το αναγνωριστικό (ID). Ο αριθμός αυτός συμπίπτει επίσης και με τον αύξοντα αριθμό εισαγωγής του αντικειμένου στο παράθυρο. Η κλάση (Class). Η κωδικοποίηση των ετικετών αληθείας στο MOA γίνεται μέσω του χαρακτηριστικού της κλάσης ενός αντικειμένου. Συνήθως, η τελευταία κλάση αποτελεί τον θόρυβο ή τις ανώμαλες παρατηρήσεις. Για παράδειγμα, στην προεπιλεγμένη ροή δεδομένων στην λειτουργία της ανακάλυψης ακροτάτων, η κλάση των ανώμαλων παρατηρήσεων είναι η έκτη 41 (υπ’ αριθμόν 5), ενώ οι υπόλοιπες κλάσεις (0 έως 4) αντιστοιχούν στις πέντε φυσιολογικές συστάδες (βλ. Σχήμα 5.2). Οι συντεταγμένες (Χ, Υ). Στο παράδειγμα, εμφανίζονται οι συντεταγμένες του αντικειμένου στον δισδιάστατο χώρο μοναδιαίου μήκους και πλάτους με άξονα την πάνω αριστερή γωνία του πλαισίου. Ο βαθμός ανωμαλία (Oscore) τον οποίο υπολόγισε ο αλγόριθμος AnyOut για το αντικείμενο. Ο βαθμός βεβαιότητας (Conf) του αλγορίθμου AnyOut για την εγκυρότητα του υπολογισμένου βαθμού ανωμαλίας. Το παράθυρο πληροφοριών του επιλεγμένου αντικειμένου παρουσιάζεται στο Σχήμα 5.2 ενώ τα επιλέξιμα αντικείμενα απεικονίζονται ως κόκκινα σημεία στο ενδιάμεσο πλαίσιο. Ο AnyOut αντιστοιχεί στον πλαίσιο και στην γραφική παράσταση χρώματος μπλε, ενώ το κόκκινο χρώμα αντιστοιχεί στον αλγόριθμο MCOD [23]. Σχήμα 5.2 Εκτέλεση του AnyOut και μετρικές αξιολόγησης . Όταν ο χρήστης τερματίσει το πείραμα, εμφανίζονται στατιστικά στοιχεία σχετικά με αυτό στην κονσόλα καταγραφής συμβάντων, εντός της καρτέλας παραμετροποίησης. 42 Συγκεκριμένα, τα στατιστικά στοιχεία που συλλέγει και παρουσιάζει ο αλγόριθμος AnyOut είναι τα εξής. Οι συνολικές ακρότατες παρατηρήσεις που εντόπισε ο αλγόριθμος, συμπεριλαμβανομένων και των λανθασμένων. Στην παρένθεση στα δεξιά του αποτελέσματος αναγράφεται το ποσοστό των ανώμαλων παρατηρήσεων που εντοπίστηκαν. Ο συνολικός αριθμός των ανώμαλων παρατηρήσεων της ροής είναι ουσιαστικά ο αριθμός των σημείων που χαρακτηρίζονται από την κλάση ανωμαλίας. Ο αριθμός των σωστά εντοπισμένων παρατηρήσεων (true positives). Στην παρένθεση αναγράφεται το ποσοστό των σωστών χαρακτηρισμών ως προς τους σύνολο των εντοπισμένων παρατηρήσεων. Ο αριθμός των λανθασμένων εντοπισμένων παρατηρήσεων (false positives), με τη αντίστοιχη τιμή στην παρένθεση. Επίσης καταγράφεται η μέγιστη χρήση προσωρινής μνήμης σε megabytes καθώς και ο συνολικός χρόνος εκτέλεσης του αλγορίθμου. 5.2.3 Βοηθητικές κλάσεις Για λόγους διευκόλυνσης της υλοποίησης αλλά και αναγνωσιμότητας του κώδικα, στο πακέτο moa.clusterers.outliers.AnyOut.util βρίσκονται υλοποιημένες βοηθητικές κλάσεις του αλγορίθμου AnyOut. Συμπεριλαμβάνονται τέσσερις κλάσεις, εκ των οποίων οι δύο ασχολούνται με την διαδικασία της μαζικής προσθήκης των αρχικών αντικειμένων κατά την εκπαίδευση του αλγορίθμου (EMProjectedClustering και EMTopDownTreeBuilder), ενώ οι άλλες δύο αφορούν την διαχείριση των αντικειμένων (DataObject και DataSet). Η μαζική προσθήκη δεν θα μελετηθεί στα πλαίσια της διατριβής. Όταν ένα νέο αντικείμενο της ροής εισέρχεται στον αλγόριθμο AnyOut είναι ενθυλακωμένο στην κλάση Instance, η οποία χρησιμοποιείται σε όλο το εύρος των λειτουργιών του MOA. Όμως, επειδή η κλάση αυτή είναι αρκετά γενικευμένη ώστε να εφαρμόζεται σε ποικιλία διαφορετικών λειτουργιών, χρειάζεται μετατροπές έτσι ώστε να είναι περισσότερο εύχρηστη στον αλγόριθμο AnyOut. Η κλάση DataObject ουσιαστικά αποτελεί ένα δεύτερο επίπεδο ενθυλάκωσης, καθώς περιέχει τόσο το αντικείμενο ως Instance όσο και επιπλέον χρήσιμες για τον αλγόριθμο πληροφορίες και μεθόδους. Έτσι, κάθε νέο εισερχόμενο αντικείμενο μετατρέπεται σε στιγμιότυπο της κλάσης DataObject και ύστερα γίνεται επεξεργασία πάνω σε αυτό. Τέλος για τον σκοπό της εκπαίδευσης του αλγορίθμου υλοποιήθηκε η κλάση DataSet, η οποία περιέχει ένα σύνολο δεδομένων τύπου DataObject. Η προγραμματιστική διεπαφή της κλάσης διευκολύνει την διαχείριση του συνόλου δεδομένων και παρέχει πληροφορίες σχετικά με αυτό. 43 5.3 Υλοποίηση των μετρικών αξιολόγησης Το εργαλείο MOA και συγκεκριμένα η λειτουργία ανακάλυψης ανωμαλιών εμπλουτίστηκε με τη δυνατότητα εφαρμογής μετρικών αξιολόγησης. Πλέον, στο πακέτο moa.evaloutliers βρίσκεται όλη η απαραίτητη προγραμματιστική διεπαφή για την υποστήριξη και την επέκταση της συλλογής μετρικών. Ο λόγος που δημιουργήθηκε το νέο πακέτο κλάσεων είναι η αποφυγή σύγχυσης των νέων μετρικών με τις υπάρχουσες, οι οποίες βρίσκονται στο υπάρχον πακέτο moa.evaluation. Επίσης, ο διαχωρισμός των πακέτων κάνει τις νέες μετρικές αόρατες και μη επιλέξιμες στις υπόλοιπες λειτουργίες του MOA. 5.3.1 Δομή κλάσεων Το νέο πακέτο μετρικών αξιολόγησης περιέχει συνολικά επτά κλάσεις. Τέσσερις από αυτές (OutlierPerformance, AbstractOutlierMeasure, OutlierConfResult, OutlierConfResultSet) υλοποιούν την διαχείριση και λειτουργικότητα του πακέτου και οι υπόλοιπες τρείς αποτελούν υλοποιήσεις μετρικών (AUCMeasure, KendallsTauMeasure, SRCMeasure). Παρακάτω αναλύονται οι αρμοδιότητες των σημαντικότερων κλάσεων, ενώ οι μετρικές περιγράφονται σε επόμενη ενότητα. OutlierPerformance - AbstractOutlierMeasure - Αποτελεί την κλάση του πακέτου η οποία λειτουργεί σαν διαχειριστής (controller) της διαδικασίας αξιολόγησης. Περιέχει την λίστα των διαθέσιμων μετρικών αξιολόγησης, καθώς και μεθόδους προσθήκης νέων τιμών σε αυτές. Τέλος, η κλάση αυτή είναι η ορατή προγραμματιστική διεπαφή του πακέτου καθώς επεκτείνει την κλάση MeasureCollection του MOA. Όπως προδίδει και το όνομά της, η αφαιρετική (abstract) κλάση αυτή χρησιμοποιείται για την υλοποίηση μετρικών αξιολόγησης. Περιέχει μεταβλητές και μεθόδους χρήσιμες τόσο στην διαδικασία της αξιολόγηση (μέθοδος evaluate) όσο και στην παροχή πληροφοριών (π.χ. ονομασία μετρικής). OutlierConfResult - Η κλάση αυτή αντιπροσωπεύει επεξεργασμένα αντικείμενα της ροής, διατηρώντας τον βαθμό ανωμαλίας τους, τον βαθμό βεβαιότητας του αλγορίθμου και τον χαρακτηρισμό τους ως ανώμαλα ή μη μέσω των ετικετών αληθείας. Επίσης, επιτρέπει τη σύγκριση δύο στιγμιοτύπων σύμφωνα με τον βαθμό ανωμαλίας τους· λειτουργία η οποία χρησιμεύει στην φθίνουσα ταξινόμηση μιας συλλογής αντικειμένων της κλάσης αυτής. 44 OutlierConfResultSet - Περιέχει μια λίστα αντικειμένων της προηγούμενης κλάσης, καθώς και μια συλλογή μετρικών προς εφαρμογή. Αφού γίνει η συλλογή δεδομένων, η λίστα των αντικειμένων ταξινομείται σε φθίνουσα διάταξη με βάση τον βαθμό ανωμαλίας και εξάγονται οι λόγοι των σωστών (TPR ή true-positive ratio ή sensitivity ή recall) και αντίστοιχα, λανθασμένων (FPR ή false-positive ratio ή fall-out) εντοπισμένων παρατηρήσεων ως προς το σύνολό τους. Ύστερα από τα παραπάνω, ξεκινάει ο υπολογισμός των επιλεγμένων μετρικών πάνω στο ταξινομημένο σύνολο δεδομένων. 5.3.2 Μετρικές Αξιολόγησης Οι νέες μετρικές αξιολόγησης που είναι διαθέσιμες στην λειτουργία της ανακάλυψης ακροτάτων περιγράφονται παρακάτω. Επίσης, η προϋπάρχουσα μετρική με όνομα Time per Object, η οποία αφορά τον μέσο χρόνο επεξεργασίας ανά αντικείμενο της ροής, συμπεριλήφθηκε στο νέο σύστημα. Τέλος, οι νέες μετρικές έχουν κλιμακωθεί ώστε να είναι μεγαλύτερες του μηδενός με σκοπό να απεικονίζονται σωστά στη γραφική παράσταση της καρτέλας οπτικοποίησης. Area Under Curve (κλάση AUCMeasure) [11] - Έστω δύο τυχαία επιλεγμένες παρατηρήσεις Α και Φ. Η παρατήρηση Α είναι ακρότατη ενώ η Φ είναι φυσιολογική. Η περιοχή υπό της καμπύλης (AUC) ερμηνεύεται ως η πιθανότητα ο αλγόριθμος να θέσει υψηλότερη βαθμολογία ανωμαλίας (ή σωστό δυαδικό χαρακτηρισμό) στην ακρότατη παρατήρηση Α, παρά στην παρατήρηση Φ η οποία είναι φυσιολογική. Για την εξαγωγή της τιμής χρησιμοποιούνται οι προαναφερθείσες τιμές TPR και FPR. Kendall’s Tau (κλάση KendallsTauMeasure) [22] - Ο συντελεστής Kendall’s Tau χρησιμοποιείται για τον υπολογισμό της συσχέτισης μεταξύ δύο τυχαίων μεταβλητών, εισάγοντας τις έννοιες του εναρμονισμένου (concordant) και μη συσχετίσιμου (discordant) ζεύγους. Επειδή το πεδίο εφαρμογής δεν είναι πλέον στατιστική αλλά εξόρυξη δεδομένων, υλοποιήθηκε μια τροποποιημένη έκδοση της μετρικής, η οποία εφαρμόζεται πάνω στην ταξινομημένη λίστα αντικειμένων. Συγκεκριμένα, έστω δύο αντικείμενα Χ και Υ, όπου το Χ έχει μεγαλύτερο βαθμό ανωμαλίας από το Υ. Το ζεύγος θεωρείται εναρμονισμένο εάν το αντικείμενο Χ είναι αληθώς ακρότατο (δηλαδή true positive) ενώ το Υ είναι φυσιολογική παρατήρηση, ενώ στην αντίθετη περίπτωση το ζεύγος είναι μη συσχετίσιμο. Η μετρική αυτή κλιμακώθηκε στο εύρος τιμών από 0 έως 1, τιμές οι οποίες υποδηλώνουν μη συσχέτιση και πλήρη συσχέτιση αντίστοιχα. 45 Spearman’s Rank (κλάση SRCMeasure) [30] - Ομοίως με τη μετρική Kendall’s Tau, ο συντελεστής συσχέτισης του Spearman αξιολογεί το πόσο καλά μπορεί να περιγραφεί η σχέση μεταξύ δύο μεταβλητών χρησιμοποιώντας μια μονότονη συνάρτηση. Για τον υπολογισμό του συντελεστή εφαρμόζεται ο παρακάτω τύπος, όπου 𝑑𝑖 η απόσταση ζευγών που επεξηγείται παρακάτω. 𝜌 = 1− 6 ∑ 𝑑𝑖2 𝑛(𝑛2 − 1) Έστω k ο συνολικός αριθμός των πραγματικών ακροτάτων στην συλλογή μεγέθους n. Εάν ένα αντικείμενο εντός των πρώτων k σε αριθμό της φθίνουσας ταξινομημένης συλλογής δεν είναι αληθώς ακρότατο, τότε στο άθροισμα της τετραγωνικής απόστασης ζευγών 𝑛−𝑘+1 ∑ 𝑑𝑖2 προστίθεται η τιμή ( + 𝑘)2 . Εάν ένα αντικείμενο από τη 2 θέση k της συλλογής και ύστερα είναι αληθώς ακρότατο, προστίθεται η τιμή ( 𝑘+1 2 ) . 2 Η μετρική έχει επίσης κλιμακωθεί στο εύρος τιμών από 0 έως 1. 5.3.3 Ενσωμάτωση στο MOA Αφού ολοκληρώθηκε το νέο πακέτο moa.evaloutliers, χρειάστηκαν να γίνουν μετατροπές στην κλάση moa.clusterers.outliers.MyBaseOutlierDetector, στην κλάση moa.gui.visualization.RunOutlierVisualizer, καθώς και σε κλάσεις που ασχολούνται με την γραφική διεπαφή της καρτέλας ανάλυσης ακροτάτων. Η κλάση MyBaseOutlierDetector είναι η αφαιρετική κλάση εκείνη η οποία αποτελεί βάση για κάθε αλγόριθμο ανακάλυψης ακροτάτων. Κατ’ αρχάς, προστέθηκε σε αυτή ένα νέο πεδίο το οποίο αποθηκεύει τον αριθμό της κλάσης ανωμαλίας (outlier class index μέσω ground truth) ώστε να είναι διαθέσιμος στους αλγορίθμους που τον απαιτούν, όπως για παράδειγμα ο AnyOut. Επίσης, σημαντικές προσθήκες έγιναν στην εσωτερική κλάση Outlier. Επειδή πριν την υλοποίηση του AnyOut κανένας αλγόριθμος δεν χρησιμοποιούσε τις έννοιες του βαθμού ανωμαλίας και του βαθμού βεβαιότητας, προστέθηκαν τα αντίστοιχα πεδία στη κλάση Outlier. Επιπλέον, για να μην παρουσιαστούν προβλήματα συμβατότητας με τις υπάρχουσες υλοποιήσεις αλγορίθμων, προστέθηκε ένας νέος κατασκευαστής (constructor) ο οποίος επιτρέπει την ανάθεση τιμών στα νέα πεδία βαθμολογιών. Ο κατασκευαστής που προϋπήρχε πλέον αναθέτει την τιμή 1 και στα δύο πεδία, για κάθε ακρότατη παρατήρηση που εντοπίζεται και προστίθεται στο αποτέλεσμα. Τέλος, η σύγκριση ισότητας μεταξύ δύο 46 στιγμιοτύπων της κλάσης γίνεται σύμφωνα με το πεδίο Instance και όχι με βάση το πεδίο id, μετατροπή απαραίτητη για την υποστήριξη των προσθηκών. Η κλάση RunOutlierVisualizer είναι εκείνη η οποία διαχειρίζεται το περιεχόμενο της καρτέλας οπτικοποίησης. Ως εκ τούτου, έγιναν σημαντικές μετατροπές και προσθήκες για την υποστήριξη των νέων μετρικών και της δυνατότητας απεικόνισης αυτών. Επιπλέον, προστέθηκε η δυνατότητα εντοπισμού του αριθμού (index) της κλάσης ανωμαλίας, ο οποίος μεταφέρεται στην κλάση MyBaseOutlierDetector κατά την αρχικοποίηση της εκτέλεσης αλλά επίσης χρησιμοποιείται και στην εφαρμογή των μετρικών αξιολόγησης. Η εφαρμογή των μετρικών γίνεται στη μέθοδο MeasuredProcessStreamObj η οποία εκτελείται ανά τακτά χρονικά διαστήματα (συνήθως ανά 1000 αντικείμενα) και μια φορά για κάθε ένα από τους δύο αλγορίθμους. Σε αυτό το σημείο πρέπει να σημειωθεί πως στην κλάση προστέθηκε μια νέα συλλογή των ενεργών αντικειμένων του παραθύρου με την ονομασία outlier buffer, η οποία αποτελείται από αντικείμενα της κλάσης Outlier που αρχικοποιούνται με id ίσο με -1, και μηδενικό βαθμό ανωμαλίας και βεβαιότητας. Το πρώτο βήμα της πορείας εκτέλεσης στην προηγούμενη μέθοδο είναι η αρχικοποίηση των μεθόδων αξιολόγησης μέσω ενός στιγμιοτύπου της κλάσης OutlierPerformance και η δημιουργία ενός στιγμιοτύπου της κλάσης OutlierConfResultSet το οποίο λειτουργεί ως μηχανισμός αξιολόγησης. Σε αυτό το σημείο χρησιμοποιείται η συλλογή outlier buffer. Αρχικά, τα βαθμολογημένα αντικείμενα του αποτελέσματος αντικαθιστούν τα όμοιά τους εντός της συλλογής outlier buffer και ύστερα η νέα, προσωρινή συλλογή μετατρέπεται σε συλλογή αντικειμένων της κλάσης OutlierConfResult και προστίθεται προς αξιολόγηση. Ακολουθεί ο υπολογισμός κάθε μετρικής και η απεικόνιση των αποτελεσμάτων στη γραφική διεπαφή. Στην επόμενη σελίδα παρατίθεται η μέθοδος σε γλώσσα Java. Πολλαπλές μετατροπές και προσθήκες έγιναν επίσης στο πακέτο moa.gui.outliertab το οποίο περιέχει τις κλάσεις εκείνες που αντιπροσωπεύουν και διαχειρίζονται την οπτικοποίηση. Αλλαγές έγιναν στις κλάσεις OutlierEvalPanel, OutlierSetupTab, OutlierVisualEvalPanel και OutlierVisualTab. Οι αλλαγές αφορούν κυρίως γραφικά στοιχεία του περιβάλλοντος Swing της Java και δεν θα αναλυθούν περεταίρω. Σε γενικές γραμμές, τα γραφικά στοιχεία που προστέθηκαν είναι η λίστα μετρικών στην καρτέλα παραμετροποίησης από την οποία ο χρήστης επιλέγει τις μετρικές προς εφαρμογή, αλλά και η περιοχή απεικόνισης και καταγραφής αυτών στο κάτω μέρος της καρτέλας οπτικοποίησης (βλ. Σχήμα 5.2). 47 private void MeasuredProcessStreamObj(int idxAlgorithm, Instance inst) { m_outlier[idxAlgorithm].processNewInstanceImpl(inst); // Run measurements if the time has come. if (nProcessed % m_processFrequency == 0) { // Calculate time per object. double ms = m_outlier[idxAlgorithm].getTimePerObj() / (1000.0 * 1000.0); // If there are more measurements, do calculate. if (m_measures[idxAlgorithm].length > 0) { OutlierPerformance op = (OutlierPerformance) m_measures[idxAlgorithm][0]; // All measures are gathered into OutlierPerformace class. ArrayList<AbstractOutlierMeasure> measures = op.getMeasures(); OutlierConfResultSet outlierResult = new OutlierConfResultSet(outlierClass, measures); // Create a vector containing all points in the window, // including outlier characteristics. Vector<Outlier> outResult = m_outlier[idxAlgorithm] .getOutliersResult(); Vector<Outlier> copy = new Vector<Outlier>(outlierBuffer); copy.removeAll(outResult); copy.addAll(outResult); // Add all points into the outlierResult class... for (Outlier o : copy) { outlierResult.addResult(new OutlierConfResult( o.confidence, o.outlierScore, (int) o.inst.classValue() == outlierClass)); } // ... and proceed evaluating. outlierResult.evaluate(); // Output result values. for (AbstractOutlierMeasure m : measures) { op.addMeasureVal(m.getName(), outlierResult.getValueForMeasure(m)); } op.addTimePerObject(ms); } m_evalPanel.update(); m_graphcanvas.updateCanvas(); m_logPanel.addText("Algorithm " + idxAlgorithm + ", process time per object (ms): " + String.format("%.3f", ms)); } } Η μέθοδος MeasuredProcessStreamObj σε Java. 48 5.4 Λοιπές συνεισφορές Οι προηγούμενες ενότητες παρουσιάζουν τις προσθήκες που έγιναν, αναλύοντας την χρήση και τη λειτουργία κάθε μιας. Όμως, για να ενσωματωθούν επιτυχώς χρειάστηκε να γίνουν τροποποιήσεις σε διάφορα σημεία του εργαλείου MOA, ώστε να εξασφαλισθεί η συμβατότητα, η επαναχρησιμοποίηση αλλά και η αποδοτική χρήση του κώδικα συνολικά. Επειδή ο αλγόριθμος AnyOut βασίζεται κατά κόρον στη δομή ClusTree αλλά και στις βοηθητικές κλάσεις της, πολλές μέθοδοι και πεδία μετατράπηκαν από private σε protected έτσι ώστε η κλάση AnyOutCore, η οποία επεκτείνει την ClusTree, να έχει πρόσβαση σε αυτά. Επίσης, έγιναν αλλαγές στην λειτουργία του ClusTree οι οποίες δεν επηρεάζουν την εκτέλεση, αλλά επιτρέπουν την ομαλή λειτουργία της μαζικής προσθήκης (bulk loading). Τέλος, οι μέθοδοι ClusKernel.getVarianceVector() και Entry.isIrrelevant() του πακέτου moa.clusterers.clustree μετατράπηκαν επίσης σε public για δημόσια πρόσβαση από την κλάση AnyOutCore. Κατά τη διάρκεια της υλοποίησης των παραπάνω συνεισφορών, προέκυψε μια νέα έκδοση του MOA η οποία χρησιμοποιεί σε μεγάλο βαθμό νέες βασικές κλάσεις από το εργαλείο SAMOA (Scalable Advanced Massive Online Analysis) [13], οι οποίες επηρέασαν και τις υπό κατασκευή προσθήκες. Έτσι, οι αλλαγές υλοποιήθηκαν τόσο για την παλιά όσο και για την νέα έκδοση του MOA για την εξασφάλιση πλήρους συμβατότητα με τις μελλοντικές εκδόσεις. Όσον αφορά την ποιότητα της υλοποίησης, έγινε προσπάθεια ο νέος κώδικας να είναι όσο το δυνατόν αποδοτικότερος και να παραμένει ευανάγνωστος. Έτσι, έγιναν αρκετές τροποποιήσεις σε όλο το εύρος της συνεισφοράς αλλά και αφαιρέσεις πλεοναζόντων εντολών. Επιπλέον, προστέθηκε ενημερωτικός σχολιασμός όπου ήταν απαραίτητο ώστε η κατανόηση της πορείας εκτέλεσης να είναι ακόμα ευκολότερη. Τέλος, στο παράθυρο παραμετροποίησης κάθε αλγορίθμου εύρεσης ακροτάτων τιμών, προστέθηκε στο πεδίο Purpose μια αναφορά στην αντίστοιχη ερευνητική δημοσίευση. 49 ΚΕΦΑΛΑΙΟ 6 Συμπεράσματα 50 6.1 Σύνοψη και αποτελέσματα Η διατριβή αυτή ανήκει στην περιοχή της εξόρυξης δεδομένων και πιο συγκεκριμένα, το εστιακό σημείο της εργασίας ήταν η εύρεση ανωμαλιών. Μελετήθηκε ποικιλία ερευνητικών δημοσιεύσεων και υπάρχουσες τεχνικές, αλλά δόθηκε μεγαλύτερη έμφαση στις εφαρμογές ανάλυσης ροών δεδομένων. Η επεξεργασία μιας ροής δεδομένων αποτελεί μια πρόκληση, καθώς οι τεχνικές που ενεργούν πάνω σε ροές υπόκεινται σε σοβαρούς υπολογιστικούς, αποθηκευτικούς, χρονικούς και άλλους περιορισμούς. Στην σημερινή εποχή, στην οποία η εξόρυξη δεδομένων παρουσιάζει ραγδαία άνθιση, έχει αναπτυχθεί ποικιλία τεχνικών επεξεργασίας ροών δεδομένων, αλλά μέχρι πρότινος δεν υπήρχε η κατάλληλη υποδομή για την αντικειμενική σύγκριση αυτών. Έτσι, κατασκευάστηκε το εργαλείο Massive Online Analysis (MOA) με σκοπό να καλύψει αυτό το κενό. Μεταξύ άλλων, το εργαλείο αυτό περιέχει λειτουργίες ανάλυσης ανωμαλιών οι οποίες επεκτάθηκαν στο πλαίσιο της διατριβής αυτής. Σε γενικές γραμμές, η συνεισφορά της εργασίας συμπεριλαμβάνει την ενσωμάτωση του αλγορίθμου AnyOut στη συλλογή του MOA, καθώς και την προσθήκη της δυνατότητας χρήσης μετρικών αξιολόγησης στους αλγορίθμους εύρεσης ακροτάτων τιμών. Για να υποστηριχθεί πλήρως η τελευταία λειτουργία, έγιναν επίσης τροποποιήσεις και προσθήκες στη γραφική διεπαφή του εργαλείου. Αξίζει να σημειωθεί πως ο αλγόριθμος AnyOut εισήγαγε στο MOA νέες τεχνοτροπίες σε σχέση με τους υπάρχοντες αλγορίθμους εύρεσης ανωμαλιών, γεγονός που αποδεικνύει την ευκολία επέκτασης του εργαλείου αλλά και τα γερά θεμέλια στα οποία είναι κατασκευασμένο. Η ευελιξία και η επεκτασιμότητα του MOA είναι αυτή που το καθιστά πολύτιμο εργαλείο στην ερευνητική κοινότητα της εξόρυξης δεδομένων. 6.2 Μελλοντική έρευνα Οι τεχνικές ανάλυσης και διαχείρισης δεδομένων εκ φύσεως παρουσιάζουν αρκετές δυσκολίες και εμπόδια στην ανάπτυξή τους. Ιδιαίτερα στην σημερινή εποχή τα δεδομένα έχουν αποκτήσει ασύλληπτο μέγεθος – τα λεγόμενα Big Data [15] –, ο όγκος, η ποικιλία και η εξελισσόμενη συμπεριφορά των οποίων είναι λίγες από τις προκλήσεις που παρουσιάζονται. Παρακάτω παρατίθενται μερικές ιδέες και απόψεις σχετικά με τα ζητήματα εκείνα στα οποία πιθανώς να επικεντρωθεί το μελλοντικό ερευνητικό έργο της εξόρυξης δεδομένων. Ένα από τα σημαντικότερα θέματα της σημερινής τεχνολογίας είναι η χρήση και εκμετάλλευση των πλεονεκτημάτων της κατανεμημένης επεξεργασίας πάνω σε εφαρμογές εξόρυξης δεδομένων. Η κατανομή του φόρτου εργασίας και ο παραλληλισμός των αλγορίθμων σε πολλαπλά μηχανήματα επιφέρει μεγάλη επιτάχυνση στους χρόνους εκτέλεσης αλλά και πλεονεκτήματα στην διαχείριση της αποθήκευσης των δεδομένων. Ένα παράδειγμα συστήματος κατανεμημένης επεξεργασίας είναι το Hadoop, το οποίο παρέχει μεγάλη αφαιρετικότητα στον προγραμματιστή αλλά και ένα ενσωματωμένο κατανεμημένο σύστημα διαχείρισης 51 αρχείων. Βέβαια, πολλές υπάρχουσες τεχνικές δεν είναι εύκολα παραλληλοποιήσιμες, το οποίο σημαίνει πως η έρευνα και η ανάπτυξη μπορεί να επικεντρωθεί σε αυτή την εργασία, έτσι ώστε όλο και περισσότερες τεχνικές να παραλληλοποιηθούν. Ένα ακόμα ζήτημα το οποίο έχει άμεση σχέση με την παραλληλοποίηση υπαρχόντων τεχνικών αλλά και με τη σχεδίαση νέων είναι το γεγονός πως δεν υπάρχει ένα συγκεκριμένο αρχιτεκτονικό πρότυπο ανάπτυξης ενός συστήματος εξόρυξης δεδομένων. Συστήματα όπως το Hadoop προσπαθούν να επιτύχουν την ομοιογένεια μεταξύ των μεθόδων ανάπτυξης, παρέχοντας πολύ συγκεκριμένες μεν, ισχυρές δε δυνατότητες στον προγραμματιστή. Έτσι, ακολουθώντας μια προκαθορισμένη αρχιτεκτονική, η ανάπτυξη νέων τεχνικών θα επιταχυνθεί σημαντικά. Η έρευνα θα επικεντρώνεται στην αυτή καθ’ αυτή τεχνική και όχι σε δευτερεύοντα ζητήματα όπως η αξιοπιστία του συστήματος (fault tolerance) ή η δυνατότητα κλιμάκωσης (scalability), χαρακτηριστικά τα οποία εγγυημένα θα παρέχονται από το σύστημα, όπως για παράδειγμα από το Hadoop. Ιδιαίτερα στην επεξεργασία των λεγόμενων Big Data, η δυνατότητα κλιμάκωσης είναι δύσκολο να εξασφαλισθεί. Για να επιλυθεί το εμπόδιο αυτό υπάρχουν δύο προσεγγίσεις· η μη απωλεστική συμπίεση του συνόλου δεδομένων, στην οποία δεν χάνεται πληροφορία ή η δειγματοληψία, στην οποία επιλέγουμε ένα αντιπροσωπευτικό δείγμα του συνόλου. Η συμπίεση αποφέρει οικονομία σε αποθηκευτικό χώρο, αλλά αυξάνει τον χρόνο επεξεργασίας λόγω των διαδικασιών συμπίεσης και αποσυμπίεσης. Από την άλλη η δειγματοληψία είναι μια απωλεστική προσέγγιση, αλλά το κέρδος σε αποθηκευτικό χώρο είναι πολλές τάξεις μεγέθους μεγαλύτερο σε σύγκριση με την συμπίεση. Η προώθηση, η ανάπτυξη και η άνθιση της έρευνας στον τομέα της εξόρυξης δεδομένων δεν θα μπορούσε να έχει λάβει τόσο μεγάλες διαστάσεις εάν δεν υπήρχαν τα αντίστοιχα σημερινά εργαλεία ανοικτού κώδικα, καθώς και η μεγάλη, ενεργή κοινότητα υποστηρικτών και ερευνητών. Πάνω σε αυτά αναπτύχθηκαν οι υπάρχουσες state-of-the-art τεχνικές και επίσης τα ίδια εργαλεία πρόκειται να συνεχίσουν να υποστηρίζουν και την μελλοντική έρευνα. Μερικά από τα σημαντικότερα συστήματα είναι τα Hadoop [32], S4 [27], Mahout [5], MOA [10], SAMOA [13] και WEKA [19], καθώς και η γλώσσα προγραμματισμού R [31]. 52 ΒΙΒΛΙΟΓΡΑΦΙΑ [1] Ackermann, M. R., Martens, M., Raupach, C., Swierkot, K., Lammersen, C., & Sohler, C. (2012). StreamKM++: A clustering algorithm for data streams. Journal of Experimental Algorithmics (JEA), 17(1), 2-4. [2] Aggarwal, C. C. (2013). Outlier analysis. Springer. [3] Aggarwal, C. C., Han, J., Wang, J., & Yu, P. S. (2003, September). A framework for clustering evolving data streams. In Proceedings of the 29th international conference on Very large data bases-Volume 29 (pp. 81-92). VLDB Endowment. [4] Angiulli, F., & Fassetti, F. (2007, November). Detecting distance-based outliers in streams of data. In Proceedings of the sixteenth ACM conference on Conference on information and knowledge management (pp. 811-820). ACM. [5] Anil, R., Dunning, T., & Friedman, E. (2011). Mahout in action (pp. 145-183). Manning. [6] Assent, I., Kranen, P., Baldauf, C., & Seidl, T. (2010, July). Detecting outliers on arbitrary data streams using anytime approaches. In Proceedings of the First International Workshop on Novel Data Stream Pattern Mining Techniques (pp. 10-15). ACM. [7] Assent, I., Kranen, P., Baldauf, C., & Seidl, T. (2012, January). Anyout: Anytime outlier detection on streaming data. In Database Systems for Advanced Applications (pp. 228-242). Springer Berlin Heidelberg. [8] Atzori, L., Iera, A., & Morabito, G. (2010). The internet of things: A survey. Computer networks, 54(15), 2787-2805. [9] Ben-Gal, I. (2005). Outlier detection. In Data Mining and Knowledge Discovery Handbook (pp. 131-146). Springer US. [10] Bifet, A., Holmes, G., Kirkby, R., & Pfahringer, B. (2010). Moa: Massive online analysis. The Journal of Machine Learning Research, 11, 1601-1604. [11] Bradley, A. P. (1997). The use of the area under the ROC curve in the evaluation of machine learning algorithms. Pattern recognition, 30(7), 1145-1159. [12] Cao, F., Ester, M., Qian, W., & Zhou, A. (2006, April). Density-Based Clustering over an Evolving Data Stream with Noise. In SDM. 53 [13] De Francisci Morales, G. (2013, May). SAMOA: A platform for mining big data streams. In Proceedings of the 22nd international conference on World Wide Web companion (pp. 777-778). International World Wide Web Conferences Steering Committee. [14] E. Knorr, and R. Ng. Algorithms for Mining Distance-based Outliers in Large Datasets. VLDB Conference, 1998. [15] Fan, W., & Bifet, A. (2013). Mining big data: current status, and forecast to the future. ACM SIGKDD Explorations Newsletter, 14(2), 1-5. [16] Fisher, D. H. (1987). Knowledge acquisition via incremental conceptual clustering. Machine learning, 2(2), 139-172. [17] Georgiadis, D., Kontaki, M., Gounaris, A., Papadopoulos, A. N., Tsichlas, K., & Manolopoulos, Y. (2013, June). Continuous outlier detection in data streams: an extensible framework and state-of-the-art algorithms. In Proceedings of the 2013 international conference on Management of data (pp. 1061-1064). ACM. [18] Guttman, A. (1984). R-trees: A dynamic index structure for spatial searching (Vol. 14, No. 2, pp. 47-57). ACM. [19] Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., & Witten, I. H. (2009). The WEKA data mining software: an update. ACM SIGKDD explorations newsletter, 11(1), 10-18. [20] Hawkins, D. M. (1980). Identification of outliers (Vol. 11). London: Chapman and Hall. [21] Hodge, V. J., & Austin, J. (2004). A survey of outlier detection methodologies. Artificial Intelligence Review, 22(2), 85-126. [22] Kendall, M. G. (1938). A new measure of rank correlation. Biometrika. [23] Kontaki, M., Gounaris, A., Papadopoulos, A. N., Tsichlas, K., & Manolopoulos, Y. (2011, April). Continuous monitoring of distance-based outliers over data streams. In Data Engineering (ICDE), 2011 IEEE 27th International Conference on (pp. 135-146). IEEE. 54 [24] Kranen, P., & Seidl, T. (2009). Harnessing the strengths of anytime algorithms for constant data streams. Data Mining and Knowledge Discovery, 19(2), 245260. [25] Kranen, P., Assent, I., Baldauf, C., & Seidl, T. (2011). The ClusTree: indexing micro-clusters for anytime stream mining. Knowledge and information systems, 29(2), 249-272. [26] MacQueen, J. (1967, June). Some methods for classification and analysis of multivariate observations. In Proceedings of the fifth Berkeley symposium on mathematical statistics and probability (Vol. 1, No. 281-297, p. 14). [27] Neumeyer, L., Robbins, B., Nair, A., & Kesari, A. (2010, December). S4: Distributed stream computing platform. In Data Mining Workshops (ICDMW), 2010 IEEE International Conference on (pp. 170-177). IEEE. [28] Roberts, S. J. (1999). Novelty detection using extreme value statistics. IEE Proceedings-Vision, Image and Signal Processing, 146(3), 124-129. [29] Singh, K., & Upadhyaya, S. (2012). Outlier Detection: Applications And Techniques. [30] Spearman, C. (1904). The proof and measurement of association between two things. American journal of Psychology, 15(1), 72-101. [31] Team, R. C. (2005). R: A language and environment for statistical computing. R foundation for Statistical Computing. [32] White, T. (2009). Hadoop: The Definitive Guide. O'Reilly Media. [33] Yang, D., Rundensteiner, E. A., & Ward, M. O. (2009, March). Neighbor-based pattern detection for windows over streaming data. In Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology (pp. 529-540). ACM. 55
© Copyright 2024 Paperzz