\section{Machine Learning Models}

Στη συνέχεια αναφέρεται συνοπτικά η λειτουργία των μοντέλων που δοκιμάστηκαν για την εκπαίδευση των δεδομένων (οι ορισμοί είναι σύμφωνα με την ιστοσελίδα της Analytics Vidhya \footnote{\href{https://www.analyticsvidhya.com/}{Analytics Vidhya}, last accessed: \today}) ενώ στο τέλος παρατίθεται ένας πίνακας στον οποίο φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που επιτεύχθηκαν.

\subsection{Support Vector Machine - SVM}

Τα SVMs ανήκουν στα μοντέλα επιβλεπόμενης μάθησης, και ο σκοπός τους είναι η εύρεση ενός γραμμικού υπερεπιπέδου (σύνορο απόφασης) το οποίο θα διαχωρίσει τα δεδομένα. Σε αυτόν τον αλγόριθμο, σχεδιάζουμε κάθε δεδομένο ως ένα σημείο σε έναν ν-διάστατο χώρο (όπου ν είναι ο αριθμός των features) με την τιμή κάθε feature να είναι η τιμή της εκάστοτε συντεταγμένης. Έπειτα, κατηγοριοποιούμε βρίσκοντας το υπερεπίπεδο το οποίο διαχωρίζει τις 2 κλάσεις καλύτερα.

\subsection{Decision Trees}

Τα δένδρα απόφασης ή decision trees ανήκουν στα μοντέλα επιβλεπόμενης μάθησης και εφαρμόζονται τόσο σε κατηγορικά όσο και συνεχή δεδομένα. Σε αυτόν τον αλγόριθμο, χωρίζουμε τα δείγματα σε πιο ομοιογενείς υποομάδες βασιζόμενοι στο χαρακτηριστικό που τα διαχωρίζει καλύτερα κάθε φορά.

\subsection{Multilayer Perceptron}

Ένα perceptron, μπορεί να κατανοηθεί ως οτιδήποτε δέχεται πολλαπλές εισόδους και παράγει μία έξοδο. Ο τρόπος όμως με τον οποίο συσχετίζεται η είσοδος την έξοδο εμφανίζει ενδιαφέρον. Αρχικά σε κάθε είσοδο ανατίθεται ένα βάρος, το οποίο εκφράζει τη σημασία της, ενώ στην έξοδο ένα κατώφλι. Τέλος, υπολογίζεται μία πόλωση η οποία μπορεί να θεωρηθεί ως το ποσό ευελιξίας του perceptron. Για λόγους απόδοσης, χρησιμοποιούνται πολλά perceptrons σε layers, τα οποία είναι πλήρως συνδεδεμένα μεταξύ τους.

\subsection{Naive Bayes}

Είναι μία τεχνική ταξινόμησης η οποία βασίζεται στο θεώρημα του Bayes με την υπόθεση ανεξαρτησίας ανάμεσα στους προβλέπτες. Με απλά λόγια, ο ταξινομητής Naive Bayes, υποθέτει ότι η ύπαρξη ενός συγκεκριμένου feature σε μια κλάση είναι ασυσχέτιστη με την υπάρξη οποιουδήποτε άλλου.

\subsection{Random Forest}

O Random Forest είναι ένας αλγόριθμος τύπου Bootstrap, με δένδρα απόφασης. Αυτό που πορσπαθεί να κάνει, είναι να φτιάξει δίαφορα δένδρα με διαφορετικά δείγματα και διαφορετικές αρχικές τιμές. Επαναλαμβάνει την διαδικασία και κάνει μια τελική πρόβλεψη για κάθε παρατήρηση, η οποία είναι συνάρτηση όλων των προβλέψεων.

\section{Αξιολόγηση μοντέλων}

Κατά την αξιολόγηση των μοντέλων, δοκιμάστηκε ποικιλία από τεχνικές εκπαίδευσης για τις διάφορες μεθόδους ταξινόμησης, μέχρι να βρεθεί ο βέλτιστος ταξινομητής. Μετά από πληθώρα δοκιμών, τα μοντέλα SVM και Random Forest αποδείχθηκαν τα καλύτερα στην ταξινόμηση, με βάση τη μετρική της ακρίβειας. Στον πίνακα \ref{table:tab1} φαίνεται η ακρίβεια των μοντέλων αυτών για διάφορους τρόπους εκπαίδευσης που δοκιμάστηκαν. Σε κάθε περίπτωση προηγήθηκε ανακάτεμα (shuffle) των εγγραφών του σετ δεδομένων.


\begin{table}[ht]
	\centering
	\begin{tabular}{@{} l p{9cm} r @{}}
		\toprule
		\textbf{Μοντέλο} & \textbf{Μέθοδος εκπαίδευσης} & \textbf{Ακρίβεια} \\ \midrule
		\multirow[m]{6}{*}{SVM} & Κλιμακοποίηση και τυχαίο split & 0.94 \\
		 & Κλιμακοποίηση και 5-fold cross validation & \textbf{0.96} \\
		 & Κλιμακοποίηση, PCA (μείωση σε 10 χαρακτηριστικά) και τυχαίο split & 0.92 \\
		 & Κλιμακοποίηση, PCA (μείωση σε 10 χαρακτηριστικά) και 5-fold cross validation & 0.93 \\ \midrule
		\multirow[m]{3}{*}{Random Forest} & Κλιμακοποίηση και 5-fold cross validation & 0.95 \\
		 & Κλιμακοποίηση, PCA (μείωση σε 10 χαρακτηριστικά) και 5-fold cross validation & 0.94 \\ \bottomrule
	\end{tabular}
	\caption{Ακρίβεια των δύο καλύτερων μοντέλων (SVM και Random Forest) για διάφορες μεθόδους εκπαίδευσης. \small
	Όπου χρησιμοποιήθηκε cross validation κρατήθηκε η ακρίβεια του καλύτερου fold.}
	\label{table:tab1}
\end{table}

Η μέγιστη ακρίβεια που επιτυγχάνεται είναι 96\% με κλιμακοποίηση και 5-fold cross validation χρησιμοποιώντας SVM μοντέλο με γκαουσιανό (Radial Basis Function ή RBF) πυρήνα.

\section{Συμπεράσματα}

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

\begin{table}[h]
	\centering
	\begin{tabular}{@{} l r @{}}
		\toprule
		\textbf{Method} & \textbf{Αccuracy}\\\midrule
		SVM & \textbf{96.06}   \\
		Decision Tree & 86.51 \\
		MultiLayer Perceptron & 90.34 \\
		Naive Bayes & 70.25 \\
		Random Forest & 95.49 \\
		SVM (PCA(10)) & 90.02 \\ \bottomrule
	\end{tabular}
	\caption{Ακρίβεια μοντέλων ταξινομητών που δοκιμάστηκαν}
\end{table}

Όπως φαίνεται, τα Support Vector Machines και ο αλγόριθμος Random Forest αποδίδουν τα καλύτερα αποτελέσματα με 96\% και 95\% ακρίβεια αντίστοιχα, ενώ αρκετά καλά αποδίδουν και τα Multilayer perceptrons. Παράλληλα, βλέπουμε ότι τα χειρότερα αποτελέσματα στη ταξινόμηση δίνει ο Naive Bayes με περίπου 70\% ακρίβεια. Τέλος, η εφαρμογή του PCA είναι φανερό ότι μείωσε αρκετά την ακρίβεια των μοντέλων και για αυτόν τον λόγο συνίσταται μόνο στην περίπτωση που υπάρχει κάποιος σοβαρός χρονικός περιορισμός κατά την ταξινόμηση καθώς, λόγω της μείωσης των χαρακτηριστικών από 27 σε 10, αυτή θα εκτελείται πιο γρήγορα.
