diff --git a/report/3.features_and_preprocessing.tex b/report/3.features_and_preprocessing.tex index 9150d2c..9a00bcb 100644 --- a/report/3.features_and_preprocessing.tex +++ b/report/3.features_and_preprocessing.tex @@ -86,8 +86,9 @@ To spectral complexity ή αλλιώς η φασματική πολυπλοκό \begin{table}[H] \centering - \begin{tabular}{ l l l } - \textbf{Μοντέλο} & \textbf{Μέθοδοι προεπεξεργασίας} & \textbf{Ακρίβεια} \\ \toprule + \begin{tabular}{@{} l l r @{}} + \toprule + \textbf{Μοντέλο} & \textbf{Μέθοδοι προεπεξεργασίας} & \textbf{Ακρίβεια} \\ \midrule & Χωρίς προεπεξεργασία & 0.49 \\ & Scaling & 0.89 \\ & Κανονικοποίηση & 0.49 \\ @@ -112,8 +113,9 @@ To spectral complexity ή αλλιώς η φασματική πολυπλοκό \begin{table}[H] \centering - \begin{tabular}{ l r r r } - \textbf{Accuracy} & \textbf{Individually} & \textbf{With best first\textsuperscript{1}} & \textbf{With best second\textsuperscript{1}} \\ \toprule + \begin{tabular}{@{} l r r r @{}} + \toprule + \textbf{Accuracy} & \textbf{Individually} & \textbf{With best first\textsuperscript{1}} & \textbf{With best second\textsuperscript{1}} \\ \midrule 4Hz Mod & 0.58 & 0.66 & 0.73 \\ Flat & 0.63 & 0.71 & 0.75 \\ HFC & 0.58 & 0.65 & 0.72 \\ \midrule diff --git a/report/4.models.tex b/report/4.models.tex index 849f253..3aafa06 100644 --- a/report/4.models.tex +++ b/report/4.models.tex @@ -1,10 +1,10 @@ -\section{Machine Learning Model} +\section{Machine Learning Models} -Στη συνέχεια αναφέρεται συνοπτικά η λειτουργία των μοντέλων που χρησιμοποιήθηκαν για την εκπαίδευση των δεδομένων (Οι ορισμοί είναι σύμφωνα με την ιστοσελίδα της analytics vidhya \footnote{https://www.analyticsvidhya.com/}) ενώ στο τέλος παρατίθεται ένας πίνακας στο οποίο φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που επιτεύχθησαν. +Στη συνέχεια αναφέρεται συνοπτικά η λειτουργία των μοντέλων που δοκιμάστηκαν για την εκπαίδευση των δεδομένων (οι ορισμοί είναι σύμφωνα με την ιστοσελίδα της analytics vidhya \footnote{https://www.analyticsvidhya.com/}) ενώ στο τέλος παρατίθεται ένας πίνακας στον οποίο φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που επιτεύχθηκαν. \subsection{Support Vector Machine - SVM} -Τα SVMs ανήκουν στα μοντέλα επιβλεπόμενης μάθησης, και ο σκοπός τους είναι η εύρεση ενός γραμμικού υπερεπιπέδου (σύνορο απόφασης) το οποίο θα διαχωρίσει τα δεδομένα. Σε αυτόν τον αλγόριθμο, σχεδιάζουμε κάθε δεδομένο ως ένα σημείο σε έναν ν-διάστατο χώρο (όπου ν είναι ο αριθμός των features) με την τιμή κάθε feature να είναι η τιμή της εκάστοτε συντεταγμένης. Έπειτα, κατηγοριοποιούμε βρίσκοντας ένα υπερεπίπεδο το οποίο διαχωρίζει τις 2 κλάσεις καλύτερα. +Τα SVMs ανήκουν στα μοντέλα επιβλεπόμενης μάθησης, και ο σκοπός τους είναι η εύρεση ενός γραμμικού υπερεπιπέδου (σύνορο απόφασης) το οποίο θα διαχωρίσει τα δεδομένα. Σε αυτόν τον αλγόριθμο, σχεδιάζουμε κάθε δεδομένο ως ένα σημείο σε έναν ν-διάστατο χώρο (όπου ν είναι ο αριθμός των features) με την τιμή κάθε feature να είναι η τιμή της εκάστοτε συντεταγμένης. Έπειτα, κατηγοριοποιούμε βρίσκοντας το υπερεπίπεδο το οποίο διαχωρίζει τις 2 κλάσεις καλύτερα. \subsection{Decision Trees} @@ -12,73 +12,57 @@ \subsection{Multilayer Perceptron} -Ένα perceptron, μπορεί να κατανοηθεί ως οτιδήποτε δέχεται πολλαπλές εισόδους και παράγει μία έξοδο. Ο τρόπος όμως με τον οποίο συσχετίζεται η είσοδος την έξοδο εμφανίζει ενδιαφέρον. Αρχικά σε κάθε είσοδο προστίθεται ένα βάρος, το οποίο σημαίνει ουσιαστικά το πόσο σημασία να δοθεί σε κάθε μία ενώ στην έξοδο ένα κατώφλι.Τέλος, προστίθεται και μία πόλωση η οποία μπορεί να θεωηθεί ως το ποσό ευελιξίας του perceptron.Για λόγους απόδοσης, χρησιμοποιούνται πολλά perceptrons σε layers, τα οποία είναι πλήρως συνδεδεμένα μεταξύ τους. +Ένα perceptron, μπορεί να κατανοηθεί ως οτιδήποτε δέχεται πολλαπλές εισόδους και παράγει μία έξοδο. Ο τρόπος όμως με τον οποίο συσχετίζεται η είσοδος την έξοδο εμφανίζει ενδιαφέρον. Αρχικά σε κάθε είσοδο ανατίθεται ένα βάρος, το οποίο εκφράζει τη σημασία της, ενώ στην έξοδο ένα κατώφλι. Τέλος, υπολογίζεται μία πόλωση η οποία μπορεί να θεωρηθεί ως το ποσό ευελιξίας του perceptron. Για λόγους απόδοσης, χρησιμοποιούνται πολλά perceptrons σε layers, τα οποία είναι πλήρως συνδεδεμένα μεταξύ τους. \subsection{Naive Bayes} -Είναι μία τεχνική ταξινόμησης η οποία βασίζεται στο θεώρημα του Bayes\footnote{https://en.wikipedia.org/wiki/Bayes\%27\_theorem}με την υπόθεση ανεξαρτησίας ανάμεσα στους προβλέπτες. Με απλά λόγια, ο ταξινομητής Naive Bayes, υποθέτει ότι η ύπαρξη ενός συγκεκριμένου feature σε μια κλάση είναι ασυσχέτιστη με την υπάρξη οποιουδήποτε άλλου. +Είναι μία τεχνική ταξινόμησης η οποία βασίζεται στο θεώρημα του Bayes με την υπόθεση ανεξαρτησίας ανάμεσα στους προβλέπτες. Με απλά λόγια, ο ταξινομητής 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} - - - \section{Αξιολόγηση μοντέλων} -Για την αξιολόγηση των μοντέλων, δοκιμάστηκαν πολλοί τρόποι για τις διάφορες μεθόδους ταξινόμησης μέχρι να βρεθεί ο βέλτιστος. Στον πίνακα \ref{table:tab1} φαίνονται ενδεικτικά για καποιους ταξινομητές οι τρόποι αξιολόγησης που δοκιμάστηκαν και οι αντίστοιχες ακρίβειες τους. - - -\begin{table}[H] -\begin{tabular}{|l|l|l|} -\hline -\textbf{Μέθοδος} & \textbf{Τρόπος αξιολόγησης} & \textbf{Ακρίβεια} \\ \hline -\multirow{4}{*}{SVM} & Κλιμακοποίηση + τυχαίο split & 0.94 \\ \cline{2-3} - & Κλιμακοποίηση + k-fold cross validation & \textbf{0.96} (best fold) \\ \cline{2-3} - & Κλιμακοποίηση + PCA + τυχαίο split & 0.92 \\ \cline{2-3} - & Κλιμακοποίηση + PCA + k-fold cross validation & 0.93 (best fold) \\ \hline -\multirow{2}{*}{Random Forest} & Κλιμακοποίηση + k-fold cross validation & 0.95 (best fold) \\ \cline{2-3} - & Κλιμακοποίηση + PCA + k-fold cross validation & 0.94 (best fold) \\ \hline -\end{tabular} -\caption{Τρόποι αξιολόγησης για διάφορα μοντέλα} -\label{table:tab1} +Κατά την αξιολόγηση των μοντέλων, δοκιμάστηκε ποικιλία από τεχνικές εκπαίδευσης για τις διάφορες μεθόδους ταξινόμησης, μέχρι να βρεθεί ο βέλτιστος ταξινομητής. Μετά από πληθώρα δοκιμών, τα μοντέλα 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} -Είναι φανερό ότι η καλύτερη ακρίβεια που επιτυγχάνεται είναι 0.96 με κλιμακοποίηση και k-fold cross validation. Συνεπώς, επιλέχθηκαν για την τελική υλοποίηση ενώ χρησιμοποιήθηκε για το k-fold cross validation, k=4. +Η μέγιστη ακρίβεια που επιτυγχάνεται είναι 96\% με κλιμακοποίηση και 5-fold cross validation χρησιμοποιώντας SVM μοντέλο με γκαουσιανό (Radial Basis Function ή RBF) πυρήνα. \section{Συμπεράσματα} -Παρατίθεται στη συνέχεια ο πίνακας στον οποίο φαίνονται οι ακρίβειες των μοντέλων για την ταξινόμηση. - -\begin{table}[H] -\begin{tabular}{|l|l|} -\hline -\textbf{Method} & \textbf{Αccuracy}\\\hline -SVM & \textbf{96.06} \\\hline -Decision Tree & 86.51 \\\hline -MultiLayer Perceptron & 90.34 \\\hline -Naive Bayes & 70.25 \\\hline -Random Forest & 95.49 \\\hline -SVM (PCA(10)) & 90.02 \\\hline -\end{tabular} -\caption{Ακρίβεια ταξινομητών} +Παρατίθεται στη συνέχεια ο πίνακας στον οποίο φαίνεται η μέγιστη ακρίβεια που επιτεύχθηκε για κάθε μοντέλο που δοκιμάστηκε. + +\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 perceptron. Παράλληλα, βλέπουμε ότι ο χειρότερος είναι ο Naive Bayes με περίπου 70\% ακρίβεια.Τέλος, η εφαρμογή του PCA είναι φανερό ότι μείωσε αρκετά την ακρίβεια του μοντέλου και για αυτόν τον λόγο συνίσταται μόνο στην περίπτωση που υπάρχει κάποιος χρονικός περιορισμός καθώς, λόγω της μείωσης των χαρακτηριστικών από 27 σε 10, η υλοποίηση θα εκτελείται πιο γρήγορα. - - -%αναλυση γενικα για τον κωδικα (διαφανειες wrapper και execution} για τις συναρτησεις 4hz modulation, random forest, kFCrossValid \ No newline at end of file +Όπως φαίνεται, τα Support Vector Machines και ο αλγόριθμος Random Forest αποδίδουν τα καλύτερα αποτελέσματα με 96\% και 95\% ακρίβεια αντίστοιχα, ενώ αρκετά καλά αποδίδουν και τα Multilayer perceptrons. Παράλληλα, βλέπουμε ότι τα χειρότερα αποτελέσματα στη ταξινόμηση δίνει ο Naive Bayes με περίπου 70\% ακρίβεια. Τέλος, η εφαρμογή του PCA είναι φανερό ότι μείωσε αρκετά την ακρίβεια των μοντέλων και για αυτόν τον λόγο συνίσταται μόνο στην περίπτωση που υπάρχει κάποιος σοβαρός χρονικός περιορισμός κατά την ταξινόμηση καθώς, λόγω της μείωσης των χαρακτηριστικών από 27 σε 10, αυτή θα εκτελείται πιο γρήγορα. diff --git a/report/main.pdf b/report/main.pdf index f19d443..e5b0141 100644 Binary files a/report/main.pdf and b/report/main.pdf differ