HW3: Report added
This commit is contained in:
parent
d1afa4ca45
commit
0ec5bc2c00
Binary file not shown.
@ -10,26 +10,6 @@
|
|||||||
% authors:
|
% authors:
|
||||||
% Χρήστος Χουτουρίδης ΑΕΜ 8997
|
% Χρήστος Χουτουρίδης ΑΕΜ 8997
|
||||||
% cchoutou@ece.auth.gr
|
% cchoutou@ece.auth.gr
|
||||||
|
|
||||||
% Options:
|
|
||||||
%
|
|
||||||
% 1) mainlang=<language>
|
|
||||||
% Default: english
|
|
||||||
% Set the default language of the document which affects hyphenations,
|
|
||||||
% localization (section, dates, etc...)
|
|
||||||
%
|
|
||||||
% example: \documentclass[mainlang=greek]{AUThReport}
|
|
||||||
%
|
|
||||||
% 2) <language>
|
|
||||||
% Add hyphenation and typesetting support for other languages
|
|
||||||
% Currently supports: english, greek, german, frenc
|
|
||||||
%
|
|
||||||
% example: \documentclass[english, greek]{AUThReport}
|
|
||||||
%
|
|
||||||
% 3) short: Requests a shorter title for the document
|
|
||||||
% Default: no short
|
|
||||||
%
|
|
||||||
% example: \documentclass[short]{AUThReport}
|
|
||||||
%
|
%
|
||||||
\documentclass[a4paper, 11pt, mainlang=greek, english]{AUThReport/AUThReport}
|
\documentclass[a4paper, 11pt, mainlang=greek, english]{AUThReport/AUThReport}
|
||||||
|
|
||||||
@ -59,13 +39,15 @@
|
|||||||
\CoInstructorName{Χαδουλός Χρήστος}
|
\CoInstructorName{Χαδουλός Χρήστος}
|
||||||
\CoInstructorMail{christgc@auth.gr}
|
\CoInstructorMail{christgc@auth.gr}
|
||||||
|
|
||||||
|
% -------------------------------------------------------
|
||||||
|
% Packages
|
||||||
|
% -------------------------------------------------------
|
||||||
\usepackage{float}
|
\usepackage{float}
|
||||||
\usepackage{minted}
|
\usepackage{minted}
|
||||||
\usepackage{xcolor} %
|
\usepackage{xcolor}
|
||||||
\usepackage{amsmath, amssymb, amsfonts}
|
\usepackage{amsmath, amssymb, amsfonts}
|
||||||
\usepackage{diagbox}
|
\usepackage{diagbox}
|
||||||
%\usepackage{tabular}
|
\usepackage{subcaption} % για υποεικόνες με ξεχωριστά captions
|
||||||
|
|
||||||
\setminted[cpp]{
|
\setminted[cpp]{
|
||||||
fontsize=\small,
|
fontsize=\small,
|
||||||
@ -78,6 +60,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
\newcommand{\repo}{https://git.hoo2.net/hoo2/FuzzySystems/src/branch/master/Work\%203}
|
\newcommand{\repo}{https://git.hoo2.net/hoo2/FuzzySystems/src/branch/master/Work\%203}
|
||||||
|
\usepackage{hyphenat}
|
||||||
|
\hyphenation{Sup-er-con-du-cti-vi-ty}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
@ -85,121 +69,289 @@
|
|||||||
\InsertTitle
|
\InsertTitle
|
||||||
%\InsertTitle[img/background.png][0.8\textwidth][2cm]
|
%\InsertTitle[img/background.png][0.8\textwidth][2cm]
|
||||||
|
|
||||||
|
% =====================================================================
|
||||||
\section{Εισαγωγή}
|
\section{Εισαγωγή}
|
||||||
|
Στην παρούσα εργασία μελετούμε τη μοντελοποίηση παλινδρόμησης με ασαφή νευρωνικά μοντέλα τύπου Takagi–Sugeno–Kang (TSK).
|
||||||
|
Τα TSK συνδυάζουν ασαφή διαμέριση του χώρου εισόδων (μέσω συναρτήσεων συμμετοχής και κανόνων IF–THEN) με παραμετρικά (συνήθως γραμμικά) συμπεράσματα στην έξοδο.
|
||||||
|
Η πρακτική σημασία τους έγκειται στην ικανότητα (α) να προσεγγίζουν μη γραμμικές σχέσεις με μικρό αριθμό κανόνων, (β) να εκπαιδεύονται αποδοτικά με \emph{υβριδικές} μεθόδους (οπισθοδιάδοση για τις MF και Ελάχιστα Τετράγωνα για τις παραμέτρους εξόδου), και (γ) να παρέχουν διαγνωστικές απεικονίσεις (MFs, καμπύλες μάθησης, σφάλματα) χρήσιμες για ερμηνεία και ρύθμιση.
|
||||||
|
|
||||||
Στην παρούσα εργασία καλούμαστε...
|
Θεωρούμε δύο σενάρια:
|
||||||
- Ας γράψουμε μια εισαγωγή βασισμένη κάπως ως πολύ πολύ μικρή περίλυψη των ουσιοδών πραγμάτων που είναι να υλοποιήσουμε, αλλά και την σημασία τους και τον ρόλο που παίζουν (πχ πληροφορίες για τα TSK μοντέλα και πως χρησιμοποιούντε (;!))
|
\begin{enumerate}
|
||||||
|
\item Το \emph{Airfoil Self-Noise} ως εισαγωγικό παράδειγμα με 5 εισόδους, και
|
||||||
|
\item Το \emph{Superconductivity} με υψηλή διαστασιμότητα, όπου εφαρμόζουμε επιλογή χαρακτηριστικών και αναζήτηση πλέγματος (grid search) πάνω σε 5-fold cross validation.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
\subsection{Παραδοτέα}
|
\subsection{Παραδοτέα}
|
||||||
Τα παραδοτέα της εργασίας αποτελούνται από:
|
Τα παραδοτέα της εργασίας αποτελούνται από:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Την παρούσα αναφορά.
|
\item Την παρούσα αναφορά.
|
||||||
\item Τον κατάλογο \textbf{source}, με τον κώδικα της matlab.
|
\item Τον κατάλογο \textbf{source}, με τον κώδικα της \textsc{Matlab}.
|
||||||
\item Το \href{\repo}{σύνδεσμο με το αποθετήριο} που περιέχει τον κώδικα της matlab καθώς και αυτόν της αναφοράς.
|
\item Το \href{\repo}{σύνδεσμο με το αποθετήριο} που περιέχει τον κώδικα της \textsc{Matlab} καθώς και αυτόν της αναφοράς.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
% =====================================================================
|
||||||
\section{Υλοποίηση}
|
\section{Υλοποίηση}
|
||||||
- Ας αναφέρουμε ότι μπήκαμε στη λογική να κάνουμε κάποιες αφαιρέσεις, που θα βοηθούσαν στην διενέργεια καί των δύο υπο-tasks που έχει η εργασία.
|
Υλοποιήθηκε κοινή υποδομή συναρτήσεων για \textbf{διαχωρισμό συνόλων}, \textbf{προ-επεξεργασία}, \textbf{αξιολόγηση} και \textbf{συστηματική απεικόνιση αποτελεσμάτων}, ώστε να εξυπηρετούνται και τα δύο σενάρια.
|
||||||
- Να πούμε ότι η εργασία μπορεί να εκτελεστεί εκτελώντας τα δύο scripts (scenario1 και scenario2) και ότι από αυτά τα script καλούνται οι συναρτήσεις.
|
Η αναπαραγωγή γίνεται εκτελώντας τα scripts \texttt{scenario1.m} και \texttt{scenario2.m}, τα οποία καλούν τις βοηθητικές συναρτήσεις.
|
||||||
- Να συνεχίσουμε με κάποια πάσα (κείμενο) για την υλοποίηση των συναρτήσεων προτού περάσουμε στα scripts που είναι τα ζητούμενα της εργασίας
|
|
||||||
|
|
||||||
\subsection{Διαχωρισμός δοδομένων - split\_data()}
|
\subsection{Διαχωρισμός δεδομένων — \texttt{split\_data()}}
|
||||||
- Να εξηγήσουμε τη λειτουργία της συνάρτησης
|
Η \texttt{split\_data} δέχεται το πλήρες dataset και διαχωρίζει σε \textbf{train/validation/test} με ποσοστά (εδώ 60/20/20), επιστρέφοντας \emph{ξεχωριστά} τα $X$ και $y$ για κάθε υποσύνολο.
|
||||||
- Να εξηγήσουμε τι ρόλο παίζει το seed και γιατί το χρησιμοποιήσαμε
|
Χρησιμοποιούμε \texttt{seed} για \emph{αναπαραγωγιμότητα} (\texttt{rng(seed,'twister')}), ώστε τυχόν συγκρίσεις μεταξύ μοντέλων να γίνονται επί των ίδιων χωρισμάτων.
|
||||||
- Να εξηγήσουμε γιατί αποφασίσαμε να επιστρέφουμε X και y
|
|
||||||
|
|
||||||
\subsection{Προεπεξεργασία δοδομένων - preprocess\_data()}
|
\subsection{Προεπεξεργασία δεδομένων — \texttt{preprocess\_data()}}
|
||||||
- Ας ξεκινήσουμε αναφαίροντας το τι είναι και γιατί χρειάζεται
|
Η προεπεξεργασία είναι απαραίτητη για σταθερή εκπαίδευση.
|
||||||
- Να εξηγήσουμε τη δική μας προσέγγιση (και ότι πειραματιστήκαμε με το z-score αλλα δεν το χρησιμοποιήσαμε)
|
Υλοποιήθηκαν δύο τρόποι: \textbf{Min–Max} κλιμάκωση σε $[0,1]$ και \textbf{z-score} (μέση τιμή/τυπική απόκλιση).
|
||||||
- Να εξηγήσουμε την λειτουργία της συνάρτησης
|
Σε όλα τα σενάρια \emph{υπολογίζονται τα στατιστικά \textbf{μόνο} στο train} και εφαρμόζονται σε val/test (\emph{no leakage}).
|
||||||
-
|
Πειραματιστήκαμε με z-score, ωστόσο καταλήξαμε σε Min–Max (mode=1), που αποδείχθηκε επαρκής και σταθερή επιλογή.
|
||||||
|
|
||||||
\subsection{Αξιολόγιση - evaluate()}
|
|
||||||
- Να εξηγήσουμε το βήμα evaluate και πως χρησιμοποιείται
|
|
||||||
- Να εξηγήσουμε τη δική μας προσέγγιση
|
|
||||||
- Να εξηγήσουμε πως δουλεύει η συνάρτηση
|
|
||||||
|
|
||||||
|
\subsection{Αξιολόγηση — \texttt{evaluate()}}
|
||||||
|
Η \texttt{evaluate} υπολογίζει \textbf{MSE}, \textbf{RMSE}, \textbf{$R^2$}, \textbf{NMSE} και \textbf{NDEI} βάσει των προβλέψεων και της αλήθειας (\texttt{pred, truth}).
|
||||||
|
Ο δείκτης $R^2 = 1-\frac{\mathrm{SS}_{\mathrm{res}}}{\mathrm{SS}_{\mathrm{tot}}}$ και τα κανονικοποιημένα μεγέθη (NMSE, NDEI$=\sqrt{\text{NMSE}}$) επιτρέπουν συγκρίσεις μεταξύ ρυθμίσεων.
|
||||||
|
|
||||||
\subsection{Εμφάνιση αποτελεσμάτων}
|
\subsection{Εμφάνιση αποτελεσμάτων}
|
||||||
- Να αναφέρουμε συνοπτικά ότι υλοποιήσαμε 2 συναρτήσεις για να εμφανίζουμε και να αποθηκεύουμε συστηματικά τα plots για ευκολία.
|
Υλοποιήθηκαν οι \texttt{plot\_results1} (Σενάριο~1) και \texttt{plot\_results2} (Σενάριο~2) που:
|
||||||
- Να πούμε κάποια βασικά για την υλοποίηση αν έχουνε κάτι ενδιαφέρον μέσα
|
\begin{itemize}
|
||||||
|
\item δημιουργούν \textbf{συνοπτικό} σχήμα με \emph{όλες} τις MF ανά είσοδο (πριν/μετά),
|
||||||
|
\item σχεδιάζουν \textbf{καμπύλες μάθησης} (train/val),
|
||||||
|
\item δίνουν \textbf{Predicted vs Actual} και \textbf{σφάλμα πρόβλεψης (residuals)},
|
||||||
|
\item και αποθηκεύουν συστηματικά αρχεία εικόνων στους φακέλους \texttt{figures\_scn1} / \texttt{figures\_scn2}.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
\section {Σενάριο 1 - Εφαρμογή σε απλό Dataset}
|
|
||||||
|
|
||||||
- Να ξεκινήσουμε αναφέροντας τι είναι το ζητούμενο εδώ
|
% =====================================================================
|
||||||
- Να εξηγήσουμε τη δική μας προσέγγιση στη λύση (πως επιλέξαμε αρ. mf, αρ. εποχών, μετρικές κλπ)
|
\section{Σενάριο 1 — Εφαρμογή σε απλό Dataset (Airfoil Self-Noise)}
|
||||||
- Για τα 4 μοντέλα εκπαίδευσης να αναφέρουμε (παραθέτοντας και τις εικόνες) με τη σειρά
|
|
||||||
|
Για την παρούσα εργασία εκπαιδεύτηκαν 4 TSK μοντέλα με \textbf{bell-shaped} συναρτήσεις συμμετοχής (gbellmf) μέσω \texttt{genfis} (Grid Partition) και \texttt{anfis} (υβριδική βελτιστοποίηση, 100 epochs).
|
||||||
|
Τα μοντέλα είναι:
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textbf{Model 1:} \texttt{TSK0-2MF} — \emph{constant} έξοδος (singleton), 2 MF ανά είσοδο.
|
||||||
|
\item \textbf{Model 2:} \texttt{TSK0-3MF} — \emph{constant}, 3 MF ανά είσοδο.
|
||||||
|
\item \textbf{Model 3:} \texttt{TSK1-2MF} — \emph{linear} έξοδος, 2 MF ανά είσοδο.
|
||||||
|
\item \textbf{Model 4:} \texttt{TSK1-3MF} — \emph{linear}, 3 MF ανά είσοδο.
|
||||||
|
\end{itemize}
|
||||||
|
Για κάθε μοντέλο, ως \emph{τελικό} επιλέγεται αυτό με το μικρότερο σφάλμα στο \emph{validation}.
|
||||||
|
|
||||||
\subsection{Συναρτήσεις συμμετοχής}
|
\subsection{Συναρτήσεις συμμετοχής}
|
||||||
- Αρχικά τις συναρτήσεις συμμετοχής των μοντέλων.
|
Οι συναρτήσεις συμμετοχής πριν και μετά την εκπαίδευση φαίνονται παρακάτω.
|
||||||
\InsertFigure{!ht}{0.7}{fig:scn1_mf1}{../source/figures_scn1/model_1_mfs_all_inputs.png}{Περιγραφή...}
|
\InsertFigure{H}{0.7}{fig:scn1_mf1}{../source/figures_scn1/model_1_mfs_all_inputs.png}{Συναρτήσεις συμμετοχής πριν/μετά για το Model~1 (TSK0-2MF).}
|
||||||
\InsertFigure{!ht}{0.7}{fig:scn1_mf2}{../source/figures_scn1/model_2_mfs_all_inputs.png}{Περιγραφή...}
|
\InsertFigure{H}{0.7}{fig:scn1_mf2}{../source/figures_scn1/model_2_mfs_all_inputs.png}{Συναρτήσεις συμμετοχής πριν/μετά για το Model~2 (TSK0-3MF).}
|
||||||
\InsertFigure{!ht}{0.7}{fig:scn1_mf3}{../source/figures_scn1/model_3_mfs_all_inputs.png}{Περιγραφή...}
|
\InsertFigure{H}{0.7}{fig:scn1_mf3}{../source/figures_scn1/model_3_mfs_all_inputs.png}{Συναρτήσεις συμμετοχής πριν/μετά για το Model~3 (TSK1-2MF).}
|
||||||
\InsertFigure{!ht}{0.7}{fig:scn1_mf4}{../source/figures_scn1/model_4_mfs_all_inputs.png}{Περιγραφή...}
|
\InsertFigure{H}{0.7}{fig:scn1_mf4}{../source/figures_scn1/model_4_mfs_all_inputs.png}{Συναρτήσεις συμμετοχής πριν/μετά για το Model~4 (TSK1-3MF).}
|
||||||
Να πούμε κάποια λόγια και μικρές παρατηρήσεις
|
|
||||||
|
Από τα παραπάνω παρατηρούμε ότι οι MF αναπροσαρμόζονται ομαλά μετά την εκπαίδευση.
|
||||||
|
Με 3 MF/είσοδο αυξάνεται η εκφραστικότητα, αλλά ενδέχεται να αυξηθεί το ρίσκο υπερεκπαίδευσης αν δεν υπάρξει επαρκές regularization/early stopping μέσω validation.
|
||||||
|
|
||||||
\subsection{Διαγράμματα μάθησης}
|
\subsection{Διαγράμματα μάθησης}
|
||||||
- Έπειτα Να βάλουμε σαν τετράδα τα διαγράμματα μάθησης (πχ στο σχήμα χχ παραθέτουμε τα διαγράμματα)
|
Παρακάτω παραθέτουμε τα διαγράμματα μάθησης.
|
||||||
\begin{figure}[!ht]
|
\begin{figure}[H]
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_1_learning_curves.png}
|
\centering
|
||||||
\hspace{1em}
|
\begin{subfigure}{0.48\textwidth}
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_2_learning_curves.png} \\
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_1_learning_curves.png}
|
||||||
\vspace{1em}
|
\caption{Learning curves — Model~1}
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_3_learning_curves.png}
|
\end{subfigure}\hfill
|
||||||
\hspace{1em}
|
\begin{subfigure}{0.48\textwidth}
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_4_learning_curves.png} \\
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_2_learning_curves.png}
|
||||||
\caption{Σχεδίαση και απόκριση γραμμικού ελεγκτή.} % Προσάρμοσέ μου τα caption να να έχει ένα η κάθε εικόνα
|
\caption{Learning curves — Model~2}
|
||||||
|
\end{subfigure}
|
||||||
|
|
||||||
|
\vspace{0.9em}
|
||||||
|
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_3_learning_curves.png}
|
||||||
|
\caption{Learning curves — Model~3}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_4_learning_curves.png}
|
||||||
|
\caption{Learning curves — Model~4}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Καμπύλες μάθησης (train/validation) για τα 4 μοντέλα.}
|
||||||
\label{fig:scn1_learning_curves}
|
\label{fig:scn1_learning_curves}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
Να πούμε κάποια λόγια και μικρές παρατηρήσεις
|
|
||||||
|
|
||||||
\subsection {Σφάλματα πρόβλεψης}
|
Παρατηρούμε μια σταθερή αποκλιμάκωση του train error και επιλογή εποχών μέσω του ελαχίστου validation.
|
||||||
- Έπειτα Να βάλουμε σαν τετράδα τα σφάλματα (πχ στο σχήμα χχ παραθέτουμε τα )
|
Τα μοντέλα με \emph{linear} έξοδο (ιδίως με 2 MF) συγκλίνουν ταχύτερα.
|
||||||
\begin{figure}[!ht]
|
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_1_error.png}
|
\subsection{Σφάλματα πρόβλεψης (residuals)}
|
||||||
\hspace{1em}
|
Στο σχήμα \ref{fig:scn1_error} βλέπουμε τα σφάλματα πρόβλεψης.
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_2_error.png} \\
|
\begin{figure}[H]
|
||||||
\vspace{1em}
|
\centering
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_3_error.png}
|
\begin{subfigure}{0.48\textwidth}
|
||||||
\hspace{1em}
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_1_error.png}
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_4_error.png} \\
|
\caption{Residuals — Model~1}
|
||||||
\caption{Σχεδίαση και απόκριση γραμμικού ελεγκτή.} % Προσάρμοσέ μου τα caption να να έχει ένα η κάθε εικόνα
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_2_error.png}
|
||||||
|
\caption{Residuals — Model~2}
|
||||||
|
\end{subfigure}
|
||||||
|
|
||||||
|
\vspace{0.9em}
|
||||||
|
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_3_error.png}
|
||||||
|
\caption{Residuals — Model~3}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_4_error.png}
|
||||||
|
\caption{Residuals — Model~4}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Χρονοσειρές σφάλματος πρόβλεψης στα δεδομένα ελέγχου.}
|
||||||
\label{fig:scn1_error}
|
\label{fig:scn1_error}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
Να πούμε κάποια λόγια και μικρές παρατηρήσεις
|
|
||||||
|
|
||||||
\subsection {Σύγκριση actual - predicted} % Ίσως θέλει προραρμογή ο τίτλος
|
Από τα διαγράμματα παρατηρούμε ότι, για τα καλύτερα μοντέλα, τα σφάλματα πρόβλεψης (residuals) κατανέμονται τυχαία γύρω από το μηδέν, χωρίς να εμφανίζουν συγκεκριμένο μοτίβο.
|
||||||
- Έπειτα Να βάλουμε σαν τετράδα τα σφάλματα (πχ στο σχήμα χχ παραθέτουμε τα )
|
Αντίθετα, αν τα σφάλματα παρουσίαζαν κάποια εμφανή δομή ή συστηματική τάση, αυτό θα σήμαινε ότι το μοντέλο δεν περιγράφει επαρκώς τη σχέση εισόδου–εξόδου και πιθανόν θα χρειαζόταν μεγαλύτερη πολυπλοκότητα (π.χ. περισσότερες συναρτήσεις συμμετοχής).
|
||||||
\begin{figure}[!ht]
|
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_1_pred_vs_actual.png}
|
\subsection{Σύγκριση Actual–Predicted}
|
||||||
\hspace{1em}
|
Όσων αφορά τη σύγκριση μεταξύ του μοντέλου πρόβλεψης από την εκτέλεση του script έχουμε τα αποτελέσματα του σχήματος \ref{fig:scn1_predicted_vs_actual}:
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_2_pred_vs_actual.png} \\
|
\begin{figure}[H]
|
||||||
\vspace{1em}
|
\centering
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_3_pred_vs_actual.png}
|
\begin{subfigure}{0.48\textwidth}
|
||||||
\hspace{1em}
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_1_pred_vs_actual.png}
|
||||||
\includegraphics[width=0.48\textwidth]{../source/figures_scn1/model_4_pred_vs_actual.png} \\
|
\caption{Predicted vs Actual — Model~1}
|
||||||
\caption{Σχεδίαση και απόκριση γραμμικού ελεγκτή.} % Προσάρμοσέ μου τα caption να να έχει ένα η κάθε εικόνα
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_2_pred_vs_actual.png}
|
||||||
|
\caption{Predicted vs Actual — Model~2}
|
||||||
|
\end{subfigure}
|
||||||
|
|
||||||
|
\vspace{0.9em}
|
||||||
|
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_3_pred_vs_actual.png}
|
||||||
|
\caption{Predicted vs Actual — Model~3}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn1/model_4_pred_vs_actual.png}
|
||||||
|
\caption{Predicted vs Actual — Model~4}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Συσχέτιση προβλέψεων με τις πραγματικές τιμές (ideal: γραμμή $y=x$).}
|
||||||
\label{fig:scn1_predicted_vs_actual}
|
\label{fig:scn1_predicted_vs_actual}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
Να πούμε κάποια λόγια και μικρές παρατηρήσεις
|
|
||||||
|
|
||||||
\subsection {Συνολικά}
|
\subsection{Συνολικά αποτελέσματα}
|
||||||
Να αναφαίρουμε σε πίνακα τους δείκτες
|
Συνολικά έχουμε:
|
||||||
Metrics | Model-1 Model-2 Model-3 Model-4
|
\begin{table}[H]
|
||||||
----------------------------------------------------
|
\centering
|
||||||
MSE | 16.926 17.141 12.895 30.475
|
\begin{tabular}{lcccc}
|
||||||
RMSE | 4.1142 4.1401 3.591 5.5204
|
\textbf{Metrics} & \textbf{Model-1} & \textbf{Model-2} & \textbf{Model-3} & \textbf{Model-4} \\
|
||||||
R2 | 0.66468 0.66043 0.74454 0.39627
|
\hline
|
||||||
NMSE | 0.33532 0.33957 0.25546 0.60373
|
MSE & 16.926 & 17.141 & 12.895 & 30.475 \\
|
||||||
NDEI | 0.57907 0.58272 0.50543 0.777
|
RMSE & 4.1142 & 4.1401 & 3.5910 & 5.5204 \\
|
||||||
|
$R^2$ & 0.66468 & 0.66043 & 0.74454 & 0.39627 \\
|
||||||
|
NMSE & 0.33532 & 0.33957 & 0.25546 & 0.60373 \\
|
||||||
|
NDEI & 0.57907 & 0.58272 & 0.50543 & 0.77700 \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Δείκτες απόδοσης στο test set για τα 4 μοντέλα του Σεναρίου~1.}
|
||||||
|
\label{tab:scn1_metrics}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
Να σχολιάσουμε τα αποτελέσματα
|
Παρατηρούμε πως το \textbf{Model~3 (TSK1-2MF)} πετυχαίνει την καλύτερη ισορροπία (χαμηλότερα MSE/RMSE, υψηλότερο $R^2$), επιβεβαιώνοντας ότι \emph{γραμμική έξοδος με μετριοπαθή διαμέριση (2 MF)} είναι επαρκής για το Airfoil.
|
||||||
|
Η αύξηση σε 3 MF (Model~4) αυξάνει την πολυπλοκότητα και επιδεινώνει τη γενίκευση.
|
||||||
\section {Σενάριο 2 - Dataset με υψηλή διαστασιμότητα}
|
|
||||||
|
|
||||||
|
|
||||||
\section {Συμπεράσματα}
|
|
||||||
|
|
||||||
|
|
||||||
|
% =====================================================================
|
||||||
|
\section{Σενάριο 2 — Dataset με υψηλή διαστασιμότητα (Superconductivity)}
|
||||||
|
\subsection{Στόχος και μεθοδολογία}
|
||||||
|
Σε αυτό το σενάριο ο στόχος μας είναι η αποδοτική μοντελοποίηση με περιορισμό της εκθετικής αύξησης κανόνων.
|
||||||
|
Ακολουθούμε:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item \textbf{Split 60/20/20} σε Train/Val/Test και \textbf{Min–Max} κλιμάκωση με \emph{στατιστικά train}.
|
||||||
|
\item \textbf{5-fold CV grid search} πάνω σε δύο \emph{ελεύθερες} παραμέτρους:
|
||||||
|
\begin{itemize}
|
||||||
|
\item πλήθος χαρακτηριστικών $k\_{\text{feat}}\in\{5,8,11,15\}$ (επιλογή με ReliefF),
|
||||||
|
\item ακτίνα επιρροής SC $r_\alpha\in\{0.25,0.5,0.75,1.0\}$ (καθορίζει περίπου \#κανόνων).
|
||||||
|
\end{itemize}
|
||||||
|
\item \textbf{Τελική εκπαίδευση} με τα βέλτιστα $(k_{\text{feat}}^{*}, r_{\alpha}^{*})$ και αξιολόγηση στο test.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\subsection{Διαγνωστικά Grid Search}
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.8\textwidth]{../source/figures_scn2/scn2_cv_heatmap.png}
|
||||||
|
\caption{Heatmap μέσου σφάλματος CV ανά $(k\_{\text{feat}}, r_\alpha)$ — με επικάλυψη του \#κανόνων.}
|
||||||
|
\label{fig:scn2_heatmap}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn2/scn2_error_vs_rules.png}
|
||||||
|
\caption{Μέσο CV σφάλμα ως προς τον αριθμό κανόνων.}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.48\textwidth}
|
||||||
|
\includegraphics[width=\linewidth]{../source/figures_scn2/scn2_error_vs_features.png}
|
||||||
|
\caption{Καλύτερο CV σφάλμα ανά πλήθος χαρακτηριστικών.}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Σχέση σφάλματος με πολυπλοκότητα (κανόνες) και μείωση διαστασιμότητας (χαρακτηριστικά).}
|
||||||
|
\label{fig:scn2_tradeoffs}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Παρατηρούμε πως υπάρχει το τυπικό \emph{U-σχήμα} ως προς τους κανόνες: λίγοι κανόνες υποπροσαρμόζουν, υπερβολικά πολλοί οδηγούν σε υπερεκπαίδευση.
|
||||||
|
Ως προς τα χαρακτηριστικά, μια \emph{μέτρια} τιμή $k\_{\text{feat}}$ δίνει την καλύτερη ισορροπία θορύβου/πληροφορίας.
|
||||||
|
|
||||||
|
\subsection{Τελικό μοντέλο: καμπύλες, προβλέψεις, residuals}
|
||||||
|
Για το τελικό μοντέλο μετά την εκπαίδευση και αξιολόγηση έχουμε:
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.65\textwidth]{../source/figures_scn2/scn2_final_learning_curves.png}
|
||||||
|
\caption{Καμπύλες μάθησης του τελικού μοντέλου (train/validation).}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.65\textwidth]{../source/figures_scn2/scn2_final_pred_vs_actual.png}
|
||||||
|
\caption{Σύγκριση \emph{Predicted vs Actual} στο test set.}
|
||||||
|
\label{fig:scn2_pred_vs_actual}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.65\textwidth]{../source/figures_scn2/scn2_final_error_series.png}
|
||||||
|
\caption{Residuals (σειρά σφάλματος) στο test set.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Ενδεικτικές συναρτήσεις συμμετοχής (subset)}
|
||||||
|
\begin{figure}[!ht]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.85\textwidth]{../source/figures_scn2/scn2_final_mfs_subset.png}
|
||||||
|
\caption{Ενδεικτικές MF για επιλεγμένες εισόδους πριν/μετά την εκπαίδευση.}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Δείκτες απόδοσης τελικού μοντέλου (Test set)}
|
||||||
|
Στην εκτέλεση που παραθέτουμε, το τελικό μοντέλο προέκυψε με \emph{12 κανόνες} και η επίδοση στο test είναι:
|
||||||
|
\begin{table}[!ht]
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{lcc}
|
||||||
|
\textbf{Metric} & \textbf{Τιμή} \\
|
||||||
|
\hline
|
||||||
|
MSE & 208.506 \\
|
||||||
|
RMSE & 14.4397 \\
|
||||||
|
$R^2$ & 0.820108 \\
|
||||||
|
NMSE & 0.179892 \\
|
||||||
|
NDEI & 0.424137 \\
|
||||||
|
\end{tabular}
|
||||||
|
\caption{Απόδοση τελικού μοντέλου στο test (Superconductivity).}
|
||||||
|
\label{tab:scn2_metrics}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
Παρατηρούμε πως η επίδοση είναι ισχυρή ($R^2\approx0.82$) με σχετικά μικρό αριθμό κανόνων, επιβεβαιώνοντας ότι ο συνδυασμός \emph{ReliefF + SC} ελέγχει αποτελεσματικά την πολυπλοκότητα.
|
||||||
|
|
||||||
|
\subsection{Συμπεράσματα}
|
||||||
|
Η επιλογή χαρακτηριστικών και η ρύθμιση της ακτίνας $r_\alpha$ είναι κρίσιμες.
|
||||||
|
Το grid search με 5-fold CV παρείχε αξιόπιστη εκτίμηση σφάλματος και οδήγησε σε μοντέλο με \emph{καλή γενίκευση} και \emph{περιορισμένο} πλήθος κανόνων.
|
||||||
|
Αν υιοθετούσαμε \emph{Grid Partition} με 2–3 MF/είσοδο για ίδιο πλήθος χαρακτηριστικών, ο αριθμός κανόνων θα κλιμακωνόταν εκθετικά ($\sim m^{d}$), καθιστώντας το μοντέλο δυσκολότερο στην εκπαίδευση και λιγότερο ελέγξιμο.
|
||||||
|
Το SC αποφεύγει αυτή την «έκρηξη κανόνων» δημιουργώντας data-driven κανόνες με συμπαγή κάλυψη του χώρου εισόδου.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% =====================================================================
|
||||||
|
\subsection{Επίλογος}
|
||||||
|
Αναπτύξαμε μια ολοκληρωμένη διαδικασία παλινδρόμησης με μοντέλα TSK, η οποία καλύπτει όλα τα στάδια — από τον σωστό διαχωρισμό και την προεπεξεργασία των δεδομένων, μέχρι την εκπαίδευση, την αξιολόγηση και την ανάλυση των αποτελεσμάτων.
|
||||||
|
|
||||||
|
Στο \textbf{Σενάριο~1} φάνηκε ότι ένα μοντέλο με γραμμική έξοδο και μικρό αριθμό συναρτήσεων συμμετοχής μπορεί να αποδώσει ικανοποιητικά.
|
||||||
|
Στο \textbf{Σενάριο~2} διαπιστώσαμε ότι ο συνδυασμός \emph{επιλογής χαρακτηριστικών, Subtractive Clustering και διασταυρούμενης επικύρωσης (cross validation)} επιτρέπει τη δημιουργία αποδοτικών και εύκολα ερμηνεύσιμων μοντέλων, χωρίς την εκθετική αύξηση της πολυπλοκότητας που εμφανίζεται στις παραδοσιακές μεθόδους grid partition.
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user