Πανεπιστήμιο Ιωαννίνων Ακαδ. Έτος 2014-15 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Εαρινό Εξάμηνο Παρασκευάς Τσανταρλιώτης Α.Μ. 318 Μηχανική Μάθηση Εργασία 2 Ο κώδικας για τις παρακάτω ασκήσεις είναι διαθέσιμος στο http://cs.uoi.gr/~ptsantar/courses/ml/project2/ Άσκηση 1 a. 2 rings dataset k-means: ο αλγόριθμος δεν δουλεύει καλά στο συγκεκριμένο σύνολο δεδομένων καθώς προσπαθεί να ανιχνεύσει σφαιρικές ομάδες γύρω από κέντρα. Για το λόγο αυτό ο αλγόριθμος χωρίζει το σύνολο δεδομένων σε δύο ομάδες και ανάλογα τη μετρική απόστασης οι ομάδες μπορεί μπορεί να περιέχουν στοιχεία και από τους 2 δακτυλίους ή μόνο από τον εξωτερικό, όπως φαίνεται στην εικόνα 1. Εικόνα 1. Ο αλγόριθμος k-means για τους 2 δακτυλιόυς. Ε-Μ: επίσης και αυτός ο αλγόριθμος δεν δουλεύει καλά στο συγκεκριμένο σύνολο δεδομένων. Αυτό οφείλεται στο ότι το σύνολο δεδομένων δεν δημιουργήθηκε από κανονικές κατανομές. Θα εντοπίσει δύο ομάδες, μία μικρή πάνω στον εξωτερικό δακτύλιο και άλλη μία με τα υπόλοιπα σημεία, όπως φαίνεται στην εικόνα 2.
Εικόνα 2. Ο αλγόριθμος EM για τους 2 δακτυλίους. Spectral clustering: ο αλγόριθμος αυτός δουλεύει πολύ καλά στο συγκεκριμένο σύνολο δεδομένων για συγκεκριμένες τιμές του sigma. Όπως φαίνεται στην εικόνα 3, για sigma = {0.05, 0.1} χωρίζει το σύνολο δεδομένων στις σωστές ομάδες, ενώ για μεγαλύτερο sigma = {1, 2} τότε ο διαχωρισμός δεν γίνεται σωστά και μοιάζει περισσότερο με τα αποτελέσματα του k-means. Εικόνα 3. O aλγόριθμος spectral clustering για τους 2 δακτυλίους.
b. 10 gaussians dataset k-means: ο αλγόριθμος καταφέρνει να διαχωρίσει πολύ καλά τις ομάδες, τρέχοντας τον αλγόριθμο αρκετές φορές και δίνοντας ως είσοδο τα κέντρα της προηγούμενης εκτέλεσης. Στην εικόνα 4 βλέπουμε τα αποτελέσματα για τις μετρικές απόστασης sqeuclidean και cityblock. Παρατηρούμε ότι τα αποτελέσματα μοιάζουν αρκετά μεταξύ τους και ο διαχωρισμός είναι αρκετά καλός. Εικόνα 4. Ο αλγόριθμος k-means για 10 gaussians. Ε-Μ: ο αλγόριθμος αυτός περιμένουμε να αποδώσει πολύ καλά, καθώς τα δεδομένα του συνόλου δεδομένων δημιουργήθηκαν με βάση 10 gaussian κατανομές. Όπως και πριν, επειδή η μία επανάληψη δεν είναι αρκετή. Επομένως, έχουμε διαδοχικές επαναλήψεις ώστε να πάρουμε το καλύτερο αποτέλεσμα. Ωστόσο, οι επαναλήψεις που χρειάζονται είναι αρκετά λιγότερες από αυτές που χρειάστηκε ο k-means. Τα αποτελέσματα φαίνονται στην εικόνα 5. Εικόνα 5. O αλγόριθμος Ε-Μ για 10 gaussians.
spectral clustering: ο αλγόριθμος αποδίδει καλά στο συγκεκριμένο σύνολο δεδομένων για συγκεκριμένες τιμές της παραμέτρου sigma. Όπως φαίνεται στην εικόνα 6, για μικρό sigma ο αλγόριθμος δεν αποδίδει καλά. Αντίθετα, για μεγαλύτερες τιμές ο αλγόριθμος αποδίδει καλύτερα (παρόμοια με τον k-means). Εικόνα 6. Ο αλγόριθμος spectral clustering για 10 gaussians. O αλγόριθμος spectral clustering δεν δίνει πάντα την ίδια λύση, και αυτό οφείλεται στην συμπεριφορά του rbf πυρήνα. Επίσης, παρατηρήσαμε ότι για μικρό sigma τα αποτελέσματα είναι σχεδόν όμοια και καθώς το sigma αυξάνεται παρατηρούμε αποκλίσεις. Αυτό οφείλεται στο ότι για μεγαλύτερο sigma ο αλγόριθμος προσπαθεί να βάλει περισσότερα σημεία σε κάθε ομάδα.
Άσκηση 2 o Κ-ΝΝ: O κατηγοριοποιητής K-Nearest Neighbors έδωσε πολύ καλά αποτελέσματα και για τους 2 τύπους αποστάσεων και για διάφορους αριθμούς γειτόνων. Τα αποτελέσματα συνοψίζονται στον πίνακα 1. #γειτόνων \ τύπος απόστασης Euclidean Hamming 1 97.9967% 85.8097% 3 97.8854% 87.4235% 7 97.6628% 87.9243% 11 97.8854% 87.98% 21 97.0506% 86.8114% Πίνακας 1. Αποτελέσματα Κ-ΝΝ κατηγοριοποιητή. o SVM: Από την άλλη, ο κατηγοριοποιητής SVM δεν έδωσε καλά αποτελέσματα σε όλες τις περιπτώσεις. Για γραμμικό πυρήνα έδωσε πολύ καλά αποτελέσματα, περίπου στο 96,5%. Στην περίπτωση του rbf πυρήνα, τα αποτελέσματα επιραεάζονται πολύ από το εύρος πυρήνα. Μεταβάλοντας την μεταβλητή αυτή οι επιδόσεις του κατηγοριοποιητή μεταβάλονται δραστικά. Εύρος πυρήνα: 0.00001 0.0001 0.001 0.005 0.1 0.5 1 Επιδόσεις 96.828 97.2176 98.3306 95.4368 10.9627 10.1836 10.1836 Πίνακας 2. Επιδόσεις του SVM κατηγοριοποιητή με rbf kernel για διάφορες τιμές εύρους πυρήνα. Όπως βλέπουμε και στον πίνακα 2, για μικρές τιμές εύρους ο κατηγοριοποιητής μας δίνει πολύ καλά αποτελέσματα, ενώ για μεγαλύτερες το ποσοστά πέφτουν πολύ χαμηλά. Αυτό συμβαίνει επειδή για μεγαλύτερο εύρος πυρήνα, ο κατηγοριοποιητής αναθέτει περισσότερα περισσότερες παρατηρήσεις σε μια κατηγορία (στην περίπτωση όπου εύρος ίσο με 1, όλες οι παρατηρήσεις σε μία κατηγορία).