Machine Learning for Titanic

Μηχανικη Μαθηση για τον Τιτανικο

Θεματολογία
Μηχανική Μάθηση, Τεχνητή Νοημοσύνη, Ανάλυση & Επεξεργασία Δεδομένων, Διαγράμματα, Μοντέλα, Αλγόριθμοι Προβλεψης

Γλώσσες Προγραμματισμού
Python

Θα οργανώσουμε ένα πείραμα µε πραγματικά δεδομένα µε σκοπό να δείξουμε και στην πράξη την χρήση των τεχνικών εξόρυξης και επεξεργασίας δεδομένων αλλά και των αλγορίθμων πρόβλεψης της Μηχανικής Μάθησης. Το πείραμα αυτό θα αφορά την επιβίωση ή όχι ενός επιβάτη του Τιτανικού, που ως γνωστόν ξεκίνησε το παρθενικό του ταξίδι από το  Σαουθάμπτον προς τη Νέα Υόρκη το 1912. Κατά τη διάρκεια αυτού προσέκρουσε σε παγόβουνο στον Βόρειο Ατλαντικό προκαλώντας έτσι την τραγική βύθιση του επιβατηγού υπερωκεάνιου και τον θάνατο σε πάνω από 1500 άτομα όπου επέβαιναν σε αυτό. Είναι μέχρι και σήμερα ένα από τα πιο εικονικά και θανατηφόρα ναυτικά δυστυχήματα σε καιρό ειρήνης.

Πιο συγκεκριμένα, θα ξεκινήσουμε την διαδικασία αυτή με την απόκτηση ενός Συνόλου Δεδομένων (Dataset).

Εν συνεχεία θα παρουσιάσουμε τα δεδομένα αυτά με σχήματα ώστε να γίνει  ευνόητο το σύνολο των δεδομένων που θα επεξεργαστούμε.

Σε δεύτερο χρόνο, θα επεξεργαστούμε τα χαρακτηριστικά (features) δηλαδή τις στήλες του dataset ώστε να καταλήξουμε σε ένα τροποποιημένο dataset, πιο εύχρηστο και στοχευμένο στην εξαγωγή των αποτελεσμάτων μας. Παράλληλα, θα δούμε νέα γραφήματα από αυτά τα δεδομένα.

Επίσης, μετά από όλη αυτή την επεξεργασία αφού θα έχουμε πλέον τα δεδομένα μας έτοιμα, θα χρησιμοποιήσουμε διάφορους αλγόριθμους πρόβλεψης καθώς το πρόβλημά μας είναι πρόβλημα Κατηγοριοποίησης (Classification) και  Παλινδρόμησης (Regression). Θέλουμε να αναγνωρίσουμε την σχέση μεταξύ της εξόδου που είναι η επιβίωση ή όχι και άλλων χαρακτηριστικών (features) όπως φύλο, ηλικία, λιμάνι επιβίβασης, κλπ.

Με βάση αυτά κινούμαστε στην κατηγορία της Επιβλεπόμενης Μάθησης και οι αλγόριθμοι – μοντέλα που θα χρησιμοποιήσουμε είναι τα παρακάτω:

  • Decision Tree
  • Naïve Bayes classifier
  • Logistic Regression
  • KNN or k-Nearest Neighbors
  • Support Vector Machines
  • Perceptron
  • Neural Network

Τέλος, θα δούμε την Ακρίβεια του κάθε μοντέλου και θα γίνει σύγκριση. Πρέπει εδώ να γίνει η παραδοχή ότι διαφορετικά μοντέλα για διαφορετικά dataset αποδίδουν αλλότροπα, αφού τα χαρακτηριστικά (features), η συσχέτιση (correlation) αυτών και ο όγκος των δεδομένων παίζουν καθοριστικό ρόλο στο αποτέλεσμα.

Για την υλοποίηση θα χρησιμοποιηθεί η γλώσσα προγραμματισμού Python. Η ανάπτυξη θα γίνει με την βοήθεια του Anaconda μια διανομή της Python και του Jupyter Notebook ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE).