ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ: ΣΤΑΤΙΣΤΙΚΗ-ΠΙΘΑΝΟΤΗΤΕΣ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΑ ΤΑΤΣΙΟΥ
ΠΡΟΕΠΙΣΚΟΠΗΣΗ ΚΑΙ ΕΞΕΡΕΥΝΗΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ Τα προς επεξεργασία δεδομένα μπορούν να ταξινομηθούν στα παρακάτω μέρη: Στα δεδομένα εκπαίδευσης, training set που συνίσταται από 2528 υποδείγματα (instances) και 40 αριθμητικά χαρακτηριστικά (numeric attributes) εκ των οποίων το τελευταίο έχει οριστεί ως η μεταβλητή στόχος (output) Στα δεδομένα επαλήθευσης, quiz set που συνίσταται από 1265 υποδείγματα και 39 χαρακτηριστικά Στα δεδομένα εξέτασης, test set που συνίσταται από 1265 υποδείγματα και 39 χαρακτηριστικά Η κατανόηση της μορφής των δεδομένων είναι αρκετά σημαντική ώστε να θεωρηθεί ίσως πιο άμεσης σπουδαιότητας από τα ενδιάμεσα βήματα ενός αλγορίθμου εξόρυξης πληροφορίας. Στο σύνολο δεδομένων εκπαίδευσης του training set μπορούν να χρησιμοποιηθούν αρκετές τεχνοτροπίες προεπεξεργασίας δεδομένων, ώστε να οδηγηθούμε σε μια προεπιλογή χαρακτηριστικών. Ορισμένα απλά εργαλεία οπτικοποίησης αποδείχτηκαν ιδιαίτερα χρήσιμα στην εξερεύνηση των δεδομένων Από τα περιγραφικά χαρακτηριστικά και τα γραφήματα διαπιστώνουμε ότι κάποιες μεταβλητές παρουσιάζουν παρόμοια συμπεριφορά, οπότε έχουν την ίδια συμμετοχή στο τελικό αποτέλεσμα. Παράδειγμα οι μεταβλητές: 18 και 20, 16 και 19, 21 και 27.
attr18 attr20 Επίσης σε αρκετές μεταβλητές το μεγαλύτερο ποσοστό υποδειγμάτων εμφανίζει τις τιμές του συγκεντρωμένες σε συγκεκριμένο διάστημα και παρατηρείται μεγάλη απόκλιση στις τιμές από ένα πολύ μικρό πλήθος αυτών, που θα μπορούσαν να θεωρηθούν ως outliers. Επομένως αυτές οι μεταβλητές μπορούν να χαρακτηριστούν ως σταθερές δίχως πληροφοριακή αξία στο data set.
Έτσι οι μεταβλητές 34και 36 δεν φαίνεται να επηρεάζουν το αποτέλεσμα καθώς και η 38 μας οδηγεί στο συμπέρασμα ότι δεν έχει καμία αξία στην εξαγωγή συμπερασμάτων. Η attribute 34 παίρνει μόνο σε μία καταχώρηση την τιμή 1 ενώ σε όλες τις υπόλοιπες την τιμή 0 Η attribute 36 έχει σε όλες τις καταχωρήσεις της την τιμή 0 εκτός από 15 που έχει την τιμή 1. Η attribute 38 παίρνει την τιμή 0 σε όλα τα instances ΠΡΟΕΠΙΛΟΓΗ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ Οι παρατηρήσεις αυτές επαληθεύονται και από τους αλγόριθμους αξιολόγησης και επιλογής χαρακτηριστικών. Ως αξιολογητή χρησιμοποίησα τον CfsSubsetEval με τις εξής μεθόδους αναζήτησης: Best First: 10 μεταβλητές: 6,7,12,13,23,24,27,28,32,35 Genetic Search: 9 μεταβλητές: 6,7,12,19,23,24,27,28,32 Greedy Stepwise: 11 μεταβλητές: 6,7,12,13,23,24,27,28,32,35,36 Παρατήρησα ότι οι μεταβλητές 24,27,28,32 εμφανίζονταν και στις 3 μεθόδους αναζήτησης. Στη συνέχεια εφάρμοσα κάποιους κανόνες ομαδοποίησης και συσχέτισης των χαρακτηριστικών. Πειραματίστηκα αρκετά με προσθαφαίρεση των μεταβλητών και αυξάνοντας κατά διαστήματα το θόρυβο σε κάποιες από αυτές.
Στην αρχή με τη βοήθεια του αλγορίθμου M5Rules που βασίζεται σε κανόνες ταξινόμησης εκτιμούσα κατά περίπτωση τα αποτελέσματα βάσει του συντελεστή συσχέτισης και των αντίστοιχων σφαλμάτων. ΕΠΙΛΟΓΗ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ Έτσι κατέληξα στην επιλογή ενός data set με 10 χαρακτηριστικά, τα εξής: attr7,attr8,attr22,attr24,attr27,attr28,attr32,attr33,attr35, output. ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΩΝ ΤΑΞΙΝΟΜΗΣΗΣ Με τη βοήθεια των φίλτρων και με Descretize μετέτρεψα τη μεταβλητή στόχο από numeric σε nominal έτσι ώστε να μπορώ να εφαρμόσω και τους υπόλοιπους από τους αλγόριθμους ταξινόμησης. Εφάρμοσα αρκετούς από τους απλούς αλγορίθμους που υπάρχουν στο Weka και έχοντας ως μέτρο απόδοσης την τιμή του σφάλματος (error rate) που βασίζεται στο ποσοστό της σωστής πρόβλεψης της τάξης των υποδειγμάτων, συμπέρανα ότι οι πιο αξιόλογοι είναι οι LADTree, J48graft, Random Forest, JRip, Ridor, PART. Καλύτερος εξ αυτών ο LADTree Αλγόριθμος 1. LADTree: Correctly Classified Instances 2437 96.4003% Incorrectly Classified Instances 91 3.5997% Kappa Statistic 0.8992 Mean absolute error 0.061 Root mean squared error 0.1682 Relative absolute error 39.5517% Στη συνέχεια πειραματίστηκα με τα Μετα-μαθησιακά σχήματα που βασίζονται στην κατασκευή πολλών εμπειρογνωμόνων και στην ανάδειξη της πλειοψηφούσας γνώμης. Έτσι βασίστηκα σε τεχνικές εμφωλίασης (bagging), ενδυνάμωσης (boosting), συσσώρευσης (stacking) και κώδικες διόρθωσης σφαλμάτων (ECOC). Τα αποτελέσματα ήταν καλύτερα. Παραθέτω μερικά:
Αλγόριθμος 2. AdaBoostM1 με classifier LADTree: Correctly Classified Instances 2444 96.6772% Incorrectly Classified Instances 84 3.3228% Kappa Statistic 0.9077 Mean absolute error 0.0374 Root mean squared error 0.1702 Relative absolute error 10.3207% Root relative squared error 40.0368% Αλγόριθμος 3. MultiBoostAB με classifier J48graft: Correctly Classified Instances 2436 96.3608% Incorrectly Classified Instances 92 3.6392% Kappa Statistic 0.8983 Mean absolute error 0.0366 Root mean squared error 0.1857 Relative absolute error 10.1318% Root relative squared error 43.6643% Αλγόριθμος 4. Vote με classifiers (J48graft, RandomForest, LADTree, Ridor, Jrip, PART): Correctly Classified Instances 2435 96.3212% Incorrectly Classified Instances 93 3.6788% Kappa Statistic 0.8975 Mean absolute error 0.0581 Root mean squared error 0.169 Relative absolute error 16.0537% Root relative squared error 39.7418%
Αλγόριθμος 5. Vote με classifiers (NaiveBayes, BFTree, J48graft, RandomForest, LADTree, Ridor, DTNB, Jrip, PART): Correctly Classified Instances 2431 96.163% Incorrectly Classified Instances 97 3.837% Kappa Statistic 0.8931 Mean absolute error 0.0682 Root mean squared error 0.1714 Relative absolute error 18.8604% Root relative squared error 40.3039% Ωστόσο ενδιαφέρει η πιθανή μελλοντική απόδοση σε νέα παραδείγματα και όχι η απόδοση στα ήδη δεδομένα υποδείγματα εκπαίδευσης. Προκειμένου να αποφευχθεί η υπερπροσαρμογή του μοντέλου και των προβλέψεων στα δεδομένα εκπαίδευσης χρησιμοποιούνται τα δεδομένα επαλήθευσης (quiz set). Το quiz set έχουμε επεξεργαστεί ώστε να είναι συμβατό με το training set. Διατηρήσαμε ακριβώς τις ίδιες μεταβλητές και επιπλέον προσθέσαμε μία πλαστή μεταβλητή nominal ως αντίστοιχη της μεταβλητής στόχου. Εφαρμόζοντας ακριβώς τους ίδιους αλγορίθμους στο νέο quiz set, θέτοντάς το ως supplied test set, έδωσαν αποτελέσματα με success rates: Αλγόριθμος 1: 0.9518 Αλγόριθμος 2: 0.9407 Αλγόριθμος 3: 0.9541 Αλγόριθμος 4: 0.9541 Αλγόριθμος 5: 0.9573 Την καλύτερη πρόβλεψη σύμφωνα με την κατάταξη έχει το σχήμα του Αλγορίθμου 5 Τα αντίστοιχα αποτελέσματα από την εφαρμογή του στο quiz set φαίνονται παρακάτω:
=== Evaluation on test set === === Summary === Correctly Classified Instances 959 75.8103 % Incorrectly Classified Instances 306 24.1897 % Kappa statistic -0.0016 Mean absolute error 0.2324 Root mean squared error 0.4204 Relative absolute error 97.8062 % Root relative squared error 176.6203 % Total Number of Instances 1265 Οπότε οδηγούμαστε στο συμπέρασμα να χρησιμοποιήσουμε τον αλγόριθμο meta Vote weka.classifiers(naivebayes, BFTree, J48graft, RandomForest, LADTree, Ridor, DTNB, Jrip, PART) που έδωσε το καλύτερο success rate ΕΦΑΡΜΟΓΗ ΤΟΥ ΕΠΙΛΕΓΜΕΝΟΥ ΑΛΓΟΡΙΘΜΟΥ ΣΤΟ test set Λόγω των καλών αποτελεσμάτων που έδωσε ο παραπάνω metaαλγόριθμος και του γεγονότος ότι βασίζεται σε σχήματα κωδικών διόρθωσης σφαλμάτων εξόδου έχοντας μόνο τον ενδοιασμό μήπως οδηγήσει σε overtraining αποφασίζουμε την εφαρμογή του στο test set. Ακολουθούμε την ίδια διαδικασία όπως και με το μετασχηματισμό των δεδομένων του quiz set, έτσι ώστε να δημιουργήσουμε ένα data set παρόμοιο με αυτό του training set. Θέτοντάς το ως supplied test set έχουμε τα παρακάτω αποτελέσματα: === Evaluation on test set === === Summary === Correctly Classified Instances 978 77.3123 % Incorrectly Classified Instances 287 22.6877 % Kappa statistic -0.0016 Mean absolute error 0.2149 Root mean squared error 0.4019 Relative absolute error 90.447 % Root relative squared error 168.8537 % Total Number of Instances 1265