\section{Machine Learning Model}

Για την υλοποίηση του ταξινομητή δοκιμάστηκαν διάφορες μέθοδοι οι οποίες πετυχαίνουν διαφορετική ακρίβεια.Επίσης , για την μέτρηση της απόδοσης των μοντέλων εφαρμόστηκε η μέθοδος K-Fold cross validation.Στη συνέχεια αναφέρεται συνοπτικά η λειτουργία των μοντέλων που χρησιμοποιήθηκαν (Οι ορισμοί είναι σύμφωνα με την ιστοσελίδα της analytics vidhya \footnote{https://www.analyticsvidhya.com/}) ενώ στο τέλος παρατίθεται ένας πίνακας στο οποίο φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που πέτυχαν.

\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 \footnote{https://en.wikipedia.org/wiki/Bayes\%27\_theorem}με την υπόθεση ανεξαρτησίας ανάμεσα στους προβλέπτες. Με απλά λόγια, ο ταξινομητής Naive Bayes, υποθέτει ότι η ύπαρξη ενός συγκεκριμένου feature σε μια κλάση είναι ασυσχέτιστη με την υπάρξη οποιουδήποτε άλλου. 

\subsection{Random Forest}

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

\hfill

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


\begin{table}[h]
\begin{tabular}{llllll}
{\ul \textbf{Method}} & {\ul \textbf{Fold-0}}   & {\ul \textbf{Fold-1}}   & {\ul \textbf{Fold-2}}   & {\ul \textbf{Fold-3}}   & {\ul \textbf{Fold-4}}  \\
SVM                   & 95.47\%                 & 95.05\%                 & 95.60\%                 & 95.44\%                 & \textbf{96.06}\% \\
Decision Tree         & 85.96\%                 & 86.15\%                 & 86.40\%                 & \textbf{86.51}\%        & 86.20\% \\
MultiLayer Perceptron & 90.22\%                 & \textbf{90.34}\%        & 88.65\%                 & 89.83\%                 & 90.34\% \\
Naive Bayes           & \textbf{70.25}\%        & 69.83\%                 & 69.59\%                 & 69.39\%                 & 68.75\% \\
Random Forest         & 95.29\%                 & 94.36\%                 & 95.42\%                 & 95.33\%                 & \textbf{95.49}\%
\end{tabular}
\end{table}

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