· ~5 λεπτά ανάγνωσης

Ποιότητα αέρα στη Μαδρίτη: clustering, ταξινόμηση και transfer learning

Ομαδικό project σε δεδομένα ποιότητας αέρα της Μαδρίτης: K-Means απέναντι σε DBSCAN, SVM απέναντι σε Naive Bayes, και ένα μικρό νευρωνικό δίκτυο που συμπεριφέρθηκε καλύτερα με transfer learning.

Στόχος

Αυτό ήταν το τελικό project του μαθήματος Ανάλυση Δεδομένων και Μηχανική Μάθηση στο μεταπτυχιακό μου, ομαδικό με δύο συμφοιτητές. Πήραμε το δημόσιο dataset «Air Quality Madrid» (ωριαίες μετρήσεις ρύπων από τους σταθμούς παρακολούθησης της πόλης) και κάναμε τρεις ερωτήσεις: υπάρχουν κρυφά προφίλ ρύπανσης, μπορεί ένα μοντέλο να προβλέψει την κατηγορία ποιότητας του αέρα, και μπορεί να προβλέψει την ακριβή τιμή του δείκτη;

Προετοιμασία των δεδομένων

Τα διερευνητικά γραφήματα καθόρισαν την υπόλοιπη δουλειά. Ο πίνακας συσχέτισης έδειξε ισχυρή θετική συσχέτιση ανάμεσα στα οξείδια του αζώτου και το PM10. Τα ιστογράμματα είχαν έντονη δεξιά ασυμμετρία: οι περισσότερες ώρες είναι καθαρές, και μια μακριά ουρά δεν είναι. Τα box plots, σε λογαριθμική κλίμακα, έδειξαν πολλές ακραίες μέρες. Τις κρατήσαμε, γιατί είναι πραγματικά επεισόδια ρύπανσης και όχι σφάλματα αισθητήρων, και είναι ακριβώς αυτό που πρέπει να χειριστεί ένα χρήσιμο μοντέλο.

Clustering: απόσταση ή πυκνότητα;

Κάναμε clustering στα CO, NO2 και PM10, κανονικοποιημένα ώστε κανένας ρύπος να μην κυριαρχεί λόγω μονάδων, με ευκλείδεια απόσταση.

ΑλγόριθμοςΡυθμίσεις που δοκιμάστηκανΚαλύτερηSilhouette
K-Meansk = 3, 4, 5k = 4περίπου 0,41
DBSCANmin_samples = 20, eps = 0,5, 0,6, 0,8eps = 0,6πάνω από 0,60

Το K-Means ήταν πιο γρήγορο και πιο εύκολο να εξηγηθεί, αλλά στριμώχνει τα δεδομένα σε στρογγυλά clusters παρόμοιου μεγέθους, και η ρύπανση δεν έρχεται σε μπάλες. Το DBSCAN βρήκε έναν πυκνό πυρήνα κανονικών συνθηκών και σημείωσε τις αραιές ώρες υψηλής ρύπανσης ως θόρυβο, που για αυτό το πρόβλημα είναι η χρήσιμη απάντηση: ξεχωρίζει τη συνηθισμένη ρύπανση από τα επεισόδια.

Ταξινόμηση: πρόβλεψη της κατηγορίας CAQI

ΜοντέλοΑκρίβειαΠού έκανε λάθη
SVM, πυρήνας RBF98%Σχεδόν πουθενά· ο confusion matrix είναι σχεδόν διαγώνιος
Gaussian Naive Bayes74%Στις μεσαίες κατηγορίες 1-3, π.χ. ένα πραγματικό «υψηλό» που προβλέφθηκε «μέτριο» ή «πολύ υψηλό»

Το Naive Bayes υποθέτει ότι κάθε ρύπος είναι ανεξάρτητος από τους άλλους, και εδώ προφανώς δεν είναι: όταν ανεβαίνει το NO2, το PM10 τείνει να ανεβαίνει μαζί του. Το SVM μπορεί να μάθει αυτά τα κοινά μοτίβα.

Παλινδρόμηση: πρόβλεψη της τιμής CAQI

Φτιάξαμε ένα μικρό feed-forward δίκτυο σε PyTorch: είσοδος τα κανονικοποιημένα χαρακτηριστικά των ρύπων, δύο κρυφά επίπεδα με 64 και 32 μονάδες ReLU, μία έξοδος, εκπαίδευση με Adam πάνω στο μέσο τετραγωνικό σφάλμα. Μετά συγκρίναμε δύο τρόπους εκπαίδευσης. Τα δεδομένα εκπαίδευσης χωρίστηκαν σε ένα κομμάτι «πηγή» και ένα κομμάτι «στόχο»:

Μοντέλο (test set, 20%)R²MAE
Custom0,8821,29
Transfer learning0,9018,10

Οι βασικοί αριθμοί είναι κοντά, αλλά τα γραφήματα λένε την ιστορία. Το training loss του μοντέλου transfer ξεκινά χαμηλά, γιατί ήδη ξέρει το σχήμα του προβλήματος. Και στο γράφημα πραγματικών έναντι προβλεπόμενων τιμών, το custom μοντέλο χάνει τον έλεγχο στις υψηλές τιμές: για πραγματικές τιμές γύρω στο 400 πρόβλεψε έως 1.700, ενώ το μοντέλο transfer έμεινε κοντά στην ιδανική γραμμή.

Τι έμαθα

Τα συμπεράσματα που γράψαμε ήταν: τα ασύμμετρα δεδομένα με πραγματικές ακραίες τιμές είναι ο κανόνας στα περιβαλλοντικά δεδομένα· οι μέθοδοι βάσει πυκνότητας τους ταιριάζουν περισσότερο από αυτές βάσει απόστασης· τα μοντέλα που πιάνουν συσχετίσεις νικούν αυτά που υποθέτουν ανεξαρτησία· και η προεκπαίδευση έκανε το δίκτυο πολύ πιο σταθερό στις ακραίες τιμές.

Κοιτώντας το ξανά με πιο καχύποπτο μάτι, αυτοί είναι οι έλεγχοι που θα πρόσθετα πριν εμπιστευτώ τους αριθμούς:

Ομαδικό project μαθήματος για το MSc στην Κυβερνοασφάλεια & Επιστήμη Δεδομένων του Πανεπιστημίου Πειραιώς, σε δημόσιο dataset.

Θέλεις τα configs ή τον κώδικα από αυτό το lab, ή έχεις κάποια ερώτηση; Στείλε μου email στο kostaspapas1023@gmail.com

← όλα τα άρθρα