Αναγνώριση Προτύπων Εργασία 1η Classification

Σχετικά έγγραφα
Αναγνώριση Προτύπων Εργασία 2η Clustering

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Ι. Preprocessing (Επεξεργασία train.arff):

ΑΝΔΡΟΥΛΑΚΗΣ ΜΑΝΟΣ A.M AΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΡΟΗ: ΣΤΑΤΙΣΤΙΚΗ-ΠΙΘΑΝΟΤΗΤΕΣ ΜΑΘΗΜΑ: ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ ΔΗΜΗΤΡΑ ΤΑΤΣΙΟΥ

Ψηφιακή Επεξεργασία Σήματος Coursework

Εξόρυξη Γνώσης από Βιολογικά εδομένα

ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ

ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Data Mining) Πανδή Αθηνά

Διδάσκουσα: Χάλκου Χαρά,

Δέντρα Απόφασης (Decision(

Αναγνώριση Προτύπων. Μη παραμετρικές τεχνικές Αριθμητικά. (Non Parametric Techniques)

LOGO. Εξόρυξη Δεδομένων. Δειγματοληψία. Πίνακες συνάφειας. Καμπύλες ROC και AUC. Σύγκριση Μεθόδων Εξόρυξης

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

VLSI Φυσικό Σχέδιο Συγκριτή

Διαδικασία Συγκεντρωτικές Καταστάσεις ΚΕΠΥΟ

Κατηγοριοποίηση. Εξόρυξη Δεδομένων και Αλγόριθμοι Μάθησης. 2 ο Φροντιστήριο. Σκούρα Αγγελική

Αναγνώριση Προτύπων Ι

Διαδικασία Εξαγωγής Συγκεντρωτικών Καταστάσεων & Αυτόματης Υποβολής μέσω Internet

Ευφυής Προγραμματισμός

ΠΕΙΡΑΜΑΤΙΚΕΣ ΠΡΟΣΟΜΟΙΩΣΕΙΣ ΚΕΦΑΛΑΙΟ 4. είναι η πραγματική απόκριση του j δεδομένου (εκπαίδευσης ή ελέγχου) και y ˆ j

Δημιουργία. Σε αυτό το εγχειρίδιο περιγράφεται η Δημιουργία. Εκτυπώσεων & Προβολών

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

All Pairs Shortest Path

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Εξόρυξη γνώμης πολιτών από ελεύθερο κείμενο

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Μηχανική Μάθηση Εργασία 2

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

AYTONOMOI ΠΡΑΚΤΟΡΕΣ

Κατηγοριοποίηση. 3 ο Φροντιστήριο. Ε Ξ Ό Ρ Υ Ξ Η Δ Ε Δ Ο Μ Έ Ν Ω Ν Κ Α Ι Α Λ Γ Ό Ρ Ι Θ Μ Ο Ι Μ Ά Θ Η Σ Η ς. Σκούρα Αγγελική

first block of queries p-th block of queries p

ΗΜΕΡΟΜΗΝΙΑ: 25/05/2009 TΕΛΙΚΗ ΕΡΓΑΣΙΑ ΝΙΚΗ ΜΟΣΧΟΥ

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

Περιγραφή των Δεδομένων

Θεωρία Αποφάσεων ο. 4 Φροντιστήριο. Λύσεις των Ασκήσεων

2o μέρος εργασίας (Αρχείο cpu)

Αποθήκες και Εξόρυξη Δεδομένων

Δομές Δεδομένων και Αλγόριθμοι

Συνδυασμός Ταξινομητών χρησιμοποιώντας Μήτρες Αποφάσεων (Decision Templates) με εφαρμογή στην Ταξινόμηση Καρκινικών Δεδομένων ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Αναδρομή Ανάλυση Αλγορίθμων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΤΜΗΜΑΤΟΣ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. ιπλωµατική Εργασία. της.

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης

Μάθηση Λανθανόντων Μοντέλων με Μερικώς Επισημειωμένα Δεδομένα (Learning Aspect Models with Partially Labeled Data) Αναστασία Κριθαρά.

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

E [ -x ^2 z] = E[x z]

squared error, Mean absolute error, Root mean squared error) µεγάλωσαν,

ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ ΓΙΑ ΤΟ

Δομές Δεδομένων και Αλγόριθμοι

Τυπικές χρήσεις της Matlab

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

Οργάνωση Υπολογιστών

Διπλωματική Εργασία Αναγνώριση και ταξινόμηση ιστολόγιων. Αναστασιάδης Αντώνιος

Οδηγίες Λειτουργίας. Ιστοσελίδα εφαρμογών

Προεπεξεργασία Δεδομένων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκουσα: Μαρία Χαλκίδη

Προγραµµατισµός Η/Υ. Μέρος2

Δίκτυα Υπολογιστών Εργαστήρια

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Επιλογή παραμέτρων και χαρακτηριστικών ταξινομητή με χρήση της καμπύλης λειτουργίας δείκτη (ROC Curve)

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Αξιολόγηση Εκτελεστικών Λειτουργιών

Αλγόριθμος Ομαδοποίησης

ΚΕΦΑΛΑΙΟ 12: Επίλυση Προβλημάτων Δικτύων Εισαγωγή

Υπερπροσαρμογή (Overfitting) (1)

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Μάθηση και Γενίκευση. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

Εισαγωγή στους Υπολογιστές

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

«Τεχνογλωσσία VIII» Εξαγωγή πληροφοριών από κείμενα

υποδείγματος για την αξιολόγηση αυτοκινήτων με τεχνικές Data Mining.»

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ "ΣΥΓΚΡΙΣΗ ΜΕΘΟΔΩΝ ΠΡΟΒΛΕΨΗΣ ΨΗΦΟΥ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΠΛΑΤΦΟΡΜΕΣ ΣΥΜΒΟΥΛΩΝ ΨΗΦΟΥ" Αρίστη Μακρή

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Σημεία Προσοχής στην Παράγραφο Ε2.

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

Συστήµατα Γεωγραφικών Πληροφοριών: Εισαγωγή

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Γεωχωρική πληροφορία και υποστήριξη αποφάσεων σε επίπεδο ΟΤΑ. Άσκηση Λήψης Απόφασης και Κοινοποίησης Δεδομένων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

6. ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ ΧΑΡΤΗ

RobotArmy Περίληψη έργου

Οδηγίες Λειτουργίας Ιστοσελίδα εφαρμογών

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Εφαρμογή Ηλεκτρονικής Διαχείρισης Μετεγγραφών

Αριθμητική Λύση Μη Γραμμικών Εξισώσεων Η ΜΕΘΟ ΟΣ ΤΗΣ ΙΧΟΤΟΜΙΣΗΣ 01/25/05 ΜΜΕ 203 ΙΑΛ 2 1

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Αναγνώριση Προτύπων Εργασία 1η Classification Κιντσάκης Αθανάσιος 6667 Μόσχογλου Στυλιανός 6978 30 Νοεμβρίου, 2012 thanos_kintsakis@hotmail.com stelios@moschoglou.com

Περιγραφή του προβλήματος Στην εργασία είχαμε να αντιμετωπίσουμε το πρόβλημα του classification (κατηγοριοποίησης), ένα από τα πλέον συνήθη προβλήματα στον χώρο της αναγνώρισης προτύπων, πάνω στο οποίο έχουν εφευρεθεί και εφαρμοστεί πολλές αλγοριθμικές τεχνικές, αρκετές από τις οποίες θα αναλύσουμε ενδελεχώς εν συνεχεία. Μας δόθηκαν 8 διαφορετικά σύνολα δεδομένων (datasets) σε μορφή.arff, από τα οποία και έπρεπε να εξάγουμε την πληροφορία για μία συγκεκριμένη κλάση-χαρακτηριστικό συναρτήσει των υπολοίπων χαρακτηριστικών. Ουσιαστικά, ενώ είχαμε στη διάθεσή μας 21 συνολικά χαρακτηριστικά για κάθε στοιχείο (instance) του dataset, έπρεπε βάσει των εναπομεινάντων 20 να βρούμε ένα βέλτιστο (αλγοριθμικό) πρότυπο για κάθε dataset που θα μας κατηγοριοποιεί σωστά (το δυνατόν) το 1 που περισσεύει. Συγκεκριμένα, τα 8 αυτά datasets περιείχαν αναφορές σφαλμάτων σχετικά με το Ruby On Rails project. Η ταξινόμηση έγινε προκειμένου να κατηγοριοποιηθεί σωστά η κλάση-χαρακτηριστικό bugs. Για κάθε ένα από τα 8 datasets εφαρμόσαμε 5 διαφορετικές οικογένειες αλγορίθμων, με διαφορετικές υλοποιήσεις τους αλλά και διαφορετικές παραμέτρους, όταν εφαρμόστηκε ο ίδιος αλγόριθμος ξανά για το ίδιο dataset. Όλες οι υλοποιήσεις πραγματοποιήθηκαν στο λογισμικό WEKA. Ανάλογα με την οικογένεια αλγορίθμων που χρησιμοποιούσαμε κάθε φορά επιλέγαμε την εκάστοτε έτοιμη υλοποίησή του από το μενού classify. Τα τελικά αποτελέσματα, όπως θα παρατηρήσετε και κάτωθι, έχουν περαστεί σε συγκεντρωτικούς πίνακες με την χρήση του προγράμματος EX- CEL. Δεν κρίθηκε απαραίτητη η χρήση MATLAB, οπότε και δεν υπάρχει κάποιο επιπλέον συνοδευτικό αρχείο κώδικα. Αξίζει να επισημάνουμε επίσης ότι χρειάστηκε να τροποποιηθεί μερικώς το heapsize του WEKA, ώστε να υπάρχει βέλτιστη διαχείριση μνήμης και να μπορούν να εκτελεστούν χωρίς σφάλματα όλα τα προγράμματα. Τέλος, αναφέρουμε συγκεντρωτικά τις οικογένειες αλγορίθμων που εφαρμόσαμε: Bayes o AODE o BayesNet o NaiveBayesSimple o J48 o Nearest Neighbors o IB1 2

o IBK o SVO o MultilayerPerceptron Εξερεύνηση και εξόρυξη δεδομένων Πριν προχωρήσουμε στην παράθεση των αποτελεσμάτων, κρίθηκε σκόπιμο να αναφέρουμε μερικές τεχνικές λεπτομέρειες που πραγματοποιήσαμε προκειμένου να έχουμε την τελική μορφή των αποτελεσμάτων. Preprocessing Στο στάδιο της προεπεξεργασίας των δεδομένων, πριν δηλαδή εφαρμόσουμε τους αλγορίθμους για την εύρεση του βέλτιστου προτύπου, εφαρμόσαμε σε όλα τα datasets κανονικοποίηση (normalization). Αφαιρέθηκε από όλα τα σετ το attribute milestone_title καθώς είχε missing values και γενικότερα κρίναμε πως δεν έπαιζε κάποιο καθοριστικό ρόλο Επίσης, στην περίπτωση των πιθανοτικών () και των SVM αλγορίθμων, υπέστησαν discretization τα χαρακτηριστικά updated_at και created_at, ώστε να διασφαλιστεί η απρόσκοπτη εκτέλεσή τους. Ο αλγόριθμος MultilayerPerceptron λόγω της πολύ μεγάλης του πολυπλοκότητας έτρεξε μόνο με τα attributes metrics, wv_patch και wv_have ώστε να δώσει αποτελέσματα σε λογικό χρονικό διάστημα. Τα attributes αυτά κρίθηκαν τα σημαντικότερα και όπως θα δούμε στη συνέχεια τα αποτελέσματα είναι ικανοποιητικά. Εκτέλεση αλγορίθμων Για καθένα από τα 8 datasets ακολουθεί ένας συγκεντρωτικός πίνακας που παρουσιάζει τους αλγορίθμους που Εκτελέστηκαν και τις επιδόσεις τους. Με πράσινο χρώμα είναι ο καλύτερος αλγόριθμος και με μπλε οι αλγόριθμοι που είχαν επιδόσεις αρκετά κοντά σε αυτόν. Ως κριτήριο επιδόσεων χρησιμοποιήσαμε τον τύπο: 0,4*Accuracy + 0,2*Precision + 0,2*Recall + 0,2*F-measure Δώσαμε λίγο παραπάνω βάρος στο Accuracy. Αλλά ακόμα και στην περίπτωση που δίνουμε τον ίδιο συντελεστή σε όλα (0,25) πάλι προέκυπτε ο ίδιος αλγόριθμος ως βέλτιστος. Ακριβώς 3

κάτω από τον πίνακα τον αλγορίθμων του κάθε dataset δίνεται ο confusion matrix που προέκυψε από την εκτέλεση του βέλτιστου αλγορίθμου (με πράσινο χρώμα). Αξίζει να σημειωθεί ότι η εξαγωγή των αποτελεσμάτων έγινε μέσω της εντολής save result buffer. Τα μοντέλα δεν τα παραθέτουμε εδώ επειδή είναι ογκωδέστατα. Στον φάκελο results υπάρχουν όλα τα αποτελέσματα (result buffer) από τις εκτελέσεις όλων των αλγορίθμων για όλα τα dataset καθώς και το βέλτιστο μοντέλο. Dataset: Topics5NoRuby.arff Neirest Neighbors AODE 0,824656 0,822 0,825 0,82 0,8232624 BayesNet 0,820353 0,819 0,82 0,82 0,8199412 NaiveBayesSimple 0,822935 0,821 0,823 0,821 0,822174 J48 C=0.5, M=2 0,819277 0,817 0,819 0,798 0,8145108 J48 C=0.5, M=20 0,814974 0,818 0,815 0,767 0,8059896 J48 C=0.25, M=2 0,812823 0,831 0,813 0,75 0,8039292 I=10, K=0, S=1 0,765275 0,755 0,765 0,756 0,76131 I=20, K=0, S=1 0,800775 0,789 0,801 0,791 0,79651 IB1 0,666954 0,676 0,667 0,671 0,6695816 Ibk K=5 0,741609 0,741 0,742 0,733 0,7398436 IBk K=10 0,790878 0,785 0,791 0,78 0,7875512 IBk K=15 0,792384 0,784 0,792 0,779 0,7879536 SMO 0,817556 0,815 0,818 0,815 0,8166224 MultilayerPerceptron 0,822935 0,824 0,823 0,799 0,818374 a b c d Classified as 764 1 0 301 a = Race hazard 0 1731 0 0 b = Handle leak 0 1 975 0 c = Loss of precision in type conversion 511 1 0 363 d = Access violation 4

Dataset: Topics5Ruby.arff Neirest Neighbors AODE 0,47117 0,423 0,471 0,415 0,450268 BayesNet 0,473967 0,441 0,474 0,45 0,4625868 NaiveBayesSimple 0,47827 0,439 0,478 0,442 0,463108 J48 C=0.5, M=2 0,424484 0,426 0,424 0,404 0,4205936 J48 C=0.5, M=20 0,435886 0,437 0,436 0,413 0,4315544 J48 C=0.25, M=2 0,426635 0,428 0,427 0,406 0,422854 I=10, K=0, S=1 0,395439 0,363 0,395 0,365 0,3827756 I=20, K=0, S=1 0,39716 0,363 0,397 0,362 0,383264 IB1 0,391136 0,394 0,391 0,393 0,3920544 Ibk K=5 0,460198 0,423 0,46 0,429 0,4464792 IBk K=10 0,458907 0,413 0,459 0,419 0,4417628 IBk K=15 0,466222 0,42 0,466 0,42 0,4476888 SMO 0,476119 0,459 0,476 0,463 0,4700476 MultilayerPerceptron 0,467298 0,38 0,467 0,41 0,4383192 a b c d Classified as 526 181 201 158 a = Race hazard 192 1253 170 116 b = Handle leak 333 248 263 132 c = Loss of precision in type conversion 317 212 175 171 d = Access violation 5

Dataset: Topics10NoRuby.arff Neirest Neighbors AODE 0,800129 0,712 0,8 0,736 0,7696516 BayesNet 0,758176 0,756 0,758 0,757 0,7574704 NaiveBayesSimple 0,77926 0,748 0,779 0,761 0,769304 J48 C=0.5, M=2 0,815404 0,668 0,815 0,733 0,7693616 J48 C=0.5, M=20 0,815404 0,668 0,815 0,733 0,7693616 J48 C=0.25, M=2 0,815404 0,668 0,815 0,733 0,7693616 I=10, K=0, S=1 0,7571 0,694 0,757 0,692 0,73144 I=20, K=0, S=1 0,763124 0,715 0,763 0,695 0,7398496 IB1 0,669966 0,674 0,67 0,669 0,6705864 Ibk K=5 0,753873 0,706 0,754 0,682 0,7299492 IBk K=10 0,74957 0,728 0,75 0,661 0,727628 IBk K=15 0,746988 0,758 0,747 0,652 0,7301952 SMO 0,802711 0,761 0,803 0,771 0,7880844 MultilayerPerceptron 0,815404 0,668 0,815 0,733 0,7693616 a b c d Classified as 3216 77 148 0 a = Race hazard 336 49 0 0 b = Handle leak 356 0 117 0 c = Buffer overflow 0 0 0 349 d = Off by one error 6

Dataset: Topics10Ruby.arff Neirest Neighbors AODE 0,642427 0,655 0,642 0,616 0,6395708 BayesNet 0,637263 0,637 0,637 0,637 0,6371052 NaiveBayesSimple 0,639415 0,638 0,639 0,636 0,638366 J48 C=0.5, M=2 0,659854 0,755 0,66 0,608 0,6685416 J48 C=0.5, M=20 0,660284 0,762 0,66 0,607 0,6699136 J48 C=0.25, M=2 0,663081 0,764 0,663 0,61 0,6726324 I=10, K=0, S=1 0,600043 0,59 0,6 0,57 0,5920172 I=20, K=0, S=1 0,599828 0,59 0,6 0,566 0,5911312 IB1 0,547547 0,544 0,548 0,545 0,5464188 Ibk K=5 0,611661 0,61 0,612 0,579 0,6048644 IBk K=10 0,616824 0,626 0,617 0,572 0,6097296 IBk K=15 0,612737 0,63 0,613 0,559 0,6054948 SMO 0,652539 0,65 0,653 0,639 0,6494156 MultilayerPerceptron 0,64006 0,638 0,64 0,626 0,636824 a b c Classified as 2389 0 218 a = Loss of precision in type conversion 1283 369 0 b = Race hazard 65 0 324 c = Arithmetic overflow 7

Dataset: Topics20NoRuby.arff Neirest Neighbors AODE 0,63963 0,637 0,64 0,526 0,616452 BayesNet 0,594234 0,57 0,594 0,576 0,5856936 NaiveBayesSimple 0,617255 0,575 0,617 0,573 0,599902 J48 C=0.5, M=2 0,649527 0,542 0,65 0,578 0,6138108 J48 C=0.5, M=20 0,652754 0,605 0,653 0,593 0,6313016 J48 C=0.25, M=2 0,651033 0,508 0,651 0,569 0,6060132 I=10, K=0, S=1 0,616179 0,53 0,616 0,528 0,5812716 I=20, K=0, S=1 0,621127 0,536 0,621 0,524 0,5846508 IB1 0,520869 0,523 0,521 0,521 0,5213476 Ibk K=5 0,629518 0,557 0,63 0,543 0,5978072 IBk K=10 0,63296 0,543 0,633 0,517 0,591784 IBk K=15 0,635112 0,565 0,635 0,509 0,5958448 SMO 0,63167 0,594 0,632 0,6 0,617868 MultilayerPerceptron 0,648451 0,542 0,648 0,582 0,6137804 a b c d e f Classified as 210 232 0 0 0 0 a = Loss of precision in type conversion 166 2600 0 68 95 10 b = Race hazard 0 188 0 0 0 0 c = Memory leak 0 90 0 115 10 0 d = Stack overflow 0 223 0 77 96 0 e = Infinite loops 0 455 0 0 0 13 f = Off by one error 8

Dataset: Topics20Ruby.arff Neirest Neighbors AODE 0,560671 0,561 0,561 0,499 0,5484684 BayesNet 0,505809 0,488 0,506 0,488 0,4987236 NaiveBayesSimple 0,542384 0,519 0,542 0,504 0,5299536 J48 C=0.5, M=2 0,570568 0,574 0,571 0,512 0,5596272 J48 C=0.5, M=20 0,58025 0,562 0,58 0,509 0,5623 J48 C=0.25, M=2 0,58025 0,563 0,58 0,509 0,5625 I=10, K=0, S=1 0,482143 0,451 0,482 0,446 0,4686572 I=20, K=0, S=1 0,497418 0,468 0,497 0,459 0,4837672 IB1 0,386188 0,384 0,386 0,384 0,3852752 Ibk K=5 0,494836 0,467 0,495 0,427 0,4757344 IBk K=10 0,505809 0,472 0,506 0,422 0,4823236 IBk K=15 0,510327 0,477 0,51 0,419 0,4853308 SMO 0,547332 0,525 0,547 0,512 0,5357328 MultilayerPerceptron 0,58025 0,55 0,58 0,511 0,5603 a b c d e Classified as 0 267 0 0 0 a = Handle leak 0 1895 58 0 0 b = Race hazard 0 740 607 0 24 c = Uninitialized variable 0 431 0 0 0 d = Loss of precision in type conversion 0 228 203 0 195 e = Arithmetic overflow 9

Dataset: Topic25NoRuby.arff AODE 0,569062 0,583 0,569 0,524 0,5628248 BayesNet 0,600043 0,592 0,6 0,59 0,5964172 NaiveBayesSimple 0,601119 0,59 0,601 0,585 0,5956476 J48 C=0.5, M=2 0,611446 0,635 0,611 0,595 0,6127784 J48 C=0.5, M=20 0,611446 0,605 0,611 0,594 0,6065784 J48 C=0.25, M=2 0,620052 0,661 0,62 0,597 0,6236208 I=10, K=0, S=1 0,540017 0,529 0,54 0,515 0,5328068 I=20, K=0, S=1 0,55809 0,551 0,558 0,529 0,550836 Neirest Neighbors IB1 0,418029 0,418 0,418 0,416 0,4176116 Ibk K=5 0,508391 0,52 0,508 0,464 0,5017564 IBk K=10 0,508176 0,527 0,508 0,447 0,4996704 IBk K=15 0,508606 0,532 0,509 0,437 0,4990424 SMO 0,606497 0,603 0,606 0,594 0,6031988 MultilayerPerceptron 0,618761 0,616 0,619 0,592 0,6129044 a b c d e f g Classified as 1331 0 0 0 550 0 0 a = Race hazard 144 111 0 277 0 0 0 b = Exceeding array bounds 0 0 141 0 0 0 0 c = Infinite loops 577 0 0 574 0 0 0 d = Handle leak 76 0 0 0 571 0 0 e = Loss of precision in type conversion 0 0 0 0 142 0 0 f = Off by one error 0 0 0 0 0 0 154 g = Uninitialized variable 10

Dataset: Topics25Ruby.arff Neirest Neighbors AODE 0,426635 0,441 0,427 0,404 0,425054 BayesNet 0,415232 0,421 0,415 0,413 0,4158928 NaiveBayesSimple 0,427281 0,43 0,427 0,419 0,4261124 J48 C=0.5, M=2 0,432229 0,426 0,432 0,411 0,4266916 J48 C=0.5, M=20 0,438468 0,424 0,438 0,416 0,4309872 J48 C=0.25, M=2 0,447074 0,481 0,447 0,377 0,4398296 I=10, K=0, S=1 0,381454 0,369 0,381 0,369 0,3763816 I=20, K=0, S=1 0,379518 0,366 0,38 0,366 0,3742072 IB1 0,337349 0,337 0,337 0,337 0,3371396 Ibk K=5 0,390706 0,383 0,391 0,374 0,3858824 IBk K=10 0,399312 0,393 0,399 0,379 0,3939248 IBk K=15 0,404045 0,393 0,404 0,381 0,397218 SMO 0,423193 0,416 0,423 0,414 0,4198772 MultilayerPerceptron 0,446429 0,457 0,446 0,422 0,4435716 a b c d e f Classified as 608 443 0 164 0 0 a = Uninitialized variable 206 977 0 304 0 0 b = Loss of precision in type conversion 0 0 66 40 5 0 c = Arithmetic overflow 0 766 35 411 21 0 d = Race hazard 0 228 43 187 13 0 e = Handle leak 23 108 0 0 0 0 f = Stack overflow 11

Παρατηρούμε μεγάλη διαφοροποίηση όσον αφορά τον βέλτιστο αλγόριθμο. Τρείς φορές επιλέχτηκε ο J48, δύο ο SMO, 2 ο MultilayerPerceptron και 1 ο AODE. Οι αλγόριθμοι J48, SMO και MultilayerPerceptron έχουν σταθερά πολύ καλές επιδόσεις. Από κοντά ακολουθούν οι πιθανοτικοί. Οι NearestNeighbors έχουν πάντα χειρότερες επιδόσεις από τους παραπάνω αλλά όχι με πολύ μεγάλη διαφορά. Επίσης προκύπτει το γενικό συμπέρασμα πως για ίσο αριθμό από λέξεις κλειδιά (topics) τα dataset που δεν περιλαμβάνουν τη λέξη κλειδί ruby έχουν πάντα αρκετά καλύτερη απόδοση. Class Imbalance Problem Το παρακάτω διάγραμμα απεικονίζει το Classification του χαρακτηριστικού bugs για το dataset Topic25Ruby. Οι κατηγορίες σφαλμάτων είναι: a - Uninitialized Variable b - Loss of precision in type conversion c - Arithmetic overflow d - Race Hazard e - Handle leak f - Stack overflow 12

Η καλύτερη ταξινόμηση όπως φαίνεται και από τους πίνακες παραπάνω έγινε με τον αλγόριθμο J48 -C 0.25 -M 2 και παρακάτω παρουσιάζεται ο confusion matrix. a b c d e f Classified as 608 111 0 496 0 0 a 206 237 0 1044 0 0 b 0 0 0 106 5 0 c 0 0 0 1230 3 0 d 0 0 0 468 3 0 e 23 108 0 0 0 0 f Accuracy Precision Recall F-Measure 44.70% 0.481 0.447 0.377 Όπως παρατηρούμε γενικά το Accuracy είναι αρκετά χαμηλό (44.7%) στο συγκεκριμένο set (ήταν από τα χειρότερα παραδείγματα). Επίσης παρατηρούμε ότι η εμφάνιση των bugs c και f είναι αρκετά μικρότερη σε σχέση με τα υπόλοιπα bugs. Μπορούμε να θεωρήσουμε λοιπόν πως έχουμε να κάνουμε με ένα class imbalance πρόβλημα. Στην πραγματικότητα οι διαφορές στο ρυθμό εμφάνισης πρέπει να είναι αρκετά μεγαλύτερες για να μιλήσουμε για class imbalance ωστόσο το συγκεκριμένο ήταν το πιο κοντινό παράδειγμα στα datasets που δόθηκαν. Ας υποθέσουμε ότι μας ενδιαφέρει οπωσδήποτε να κατηγοριοποιηθούν σωστά τα bugs c και f καθώς θεωρούμε για χάριν κατασκευής του προβλήματος ότι αποτελούν καταστροφικά σφάλματα. Τα bugs c και f όπως φαίνεται στον παραπάνω confusion κατηγοριοποιήθηκαν λανθασμένα εξ ολοκλήρου. Ο τρόπος που θα εργαστούμε για να επιλύσουμε το πρόβλημα της σωστής κατηγοριοποίησης των bugs c και f είναι να ορίσουμε πίνακες κόστους και meta classifiers που να λαμβάνουν υπόψη τους πίνακες αυτούς (CostSensitiveClassifier). Τρέχουμε meta classifier -> CostSensitiveClassifier επιλέγοντας τον αλγόριθμο J48 -C 0.25 -M 2 και λαμβάνοντας υπόψη τον παρακάτω πίνακα κόστους. 13

0 1.0 1.0 1.0 1.0 1.0 1.0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 3.0 1.0 1.0 1.0 1.0 1.0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 Και προέκυψαν: a b c d e f Classified as 608 111 0 496 0 0 a 206 237 0 1044 0 0 b 0 0 111 0 0 0 c 0 0 141 1092 3 0 d 0 0 123 339 3 0 e 23 108 0 0 0 0 f Accuracy Precision Recall F-Measure 44.062% 0.461 0.441 0.381 Επιτύχαμε την εξολοκλήρου σωστή κατηγοριοποίηση του bug c με μικρή μόνο αλλαγή των επιδόσεων του αλγορίθμου προς το χειρότερο. Το κόστος όμως της κίνησης αυτής είναι η εσφαλμένη κατηγοριοποίηση κάποιων bugs της κατηγορίας d και e στην κατηγορία c. Για να αντιμετωπίσουμε τώρα την περίπτωση και του bug τύπου d εκτελούμε πάλι τον αλγόριθμο J48 -C 0.25 -M 2 με τον παρακάτω πίνακα κόστους: 0 1.0 1.0 1.0 1.0 1.0 1.0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 30.0 1.0 1.0 1.0 1.0 1.0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 1.0 100.0 200.0 1.0 1.0 1.0 0 Και προκύπτουν: a b c d e f Classified as 145 0 0 496 0 574 a 0 0 0 1044 0 443 b 0 0 111 0 0 0 c 0 0 141 1092 0 0 d 0 0 132 339 0 0 e 0 0 0 0 0 131 f 14

Accuracy Precision Recall F-Measure 31.82% 0.369 0.318 0.21 Επιτύχαμε πάλι εξολοκλήρου σωστή κατηγοριοποίηση του bug f σε συνδυασμό με εξολοκλήρου κατηγοριοποίηση του bug c. Αυτή τη φορά έχουμε δραματική πτώση όμως της γενικότερης αξιοπιστίας της ταξινόμησης με μεγάλο αριθμό λάθος κατηγοριοποίησης bugs τύπου a και b στην κατηγορία f. Το παραπάνω παράδειγμα δείχνει πως αντιμετωπίζουμε μια περίπτωση όπου έχει πολύ μεγάλη σημασία για εμάς η αναγνώριση κάποιων τύπων της class attributes που ναι μεν αποτελούν μικρό μέρος του συνόλου αλλά πρέπει οπωσδήποτε να αναγνωριστούν. Στην περίπτωση του bug c το καταφέραμε με μικρό σχετικά κόστος αλλά για τον συνδυασμό αναγνώρισης του c και f οδηγηθήκαμε σε μεγάλο αριθμό misclassifications. Ευχαριστούμε θερμά τον κ. Ανδρέα Συμεωνίδη που ήταν και είναι πάντα διαθέσιμος σε ο- ποιαδήποτε απορία έχουμε. Κιντσάκης Αθανάσιος Μόσχογλου Στυλιανός 15