Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη στην Επιστήμη Δεδομένων και την Ανάλυση: Ροή εργασιών, Ρόλοι, Όρια, Επικύρωση και Δεοντολογία 2. Συλλογή δεδομένων και κατανόηση πηγών: Σχήμα, δειγματοληψία, ποιότητα και επίγνωση διαρροών 3. Καθαρισμός και προεπεξεργασία δεδομένων: Λείπει τιμή, ακραία τιμή και μετατροπή τύπου 4. Διερευνητική Ανάλυση Δεδομένων (EDA): Διανομές, Σχέσεις και Αρχικές πληροφορίες 5. Μηχανική Χαρακτηριστικών: Δημιουργία παραλλαγών, Κωδικοποίηση, Κλιμάκωση και Αποφυγή Διαρροής 6. Κατασκευή μοντέλου: Ορισμός προβλήματος, επιλογή αλγορίθμου και διαίρεση εκπαίδευσης/δοκιμής 7. Αξιολόγηση μοντέλου: Μετρήσεις, Διασταυρούμενη επικύρωση και Ακραία Μάθηση 8. Οπτικοποίηση και αφήγηση: Ακριβή γραφικά, ειλικρινή γραφικά 9. Δημιουργία κώδικα: Ανάλυση υποβοηθούμενη από AI με Python (pandas) και SQL 10. Διαρροή δεδομένων και αναπαραγωγιμότητα: Σιωπηλές καταστροφές και πειθαρχία 11. Molps foundation, ηθική, ιδιωτικότητα και υπεύθυνη ανάλυση
Μονάδα 5 / 11

Μηχανική Χαρακτηριστικών: Δημιουργία παραλλαγών, Κωδικοποίηση, Κλιμάκωση και Αποφυγή Διαρροής

Κέρδη:

  • Δυνατότητα παραγωγής σημαντικών παραγώγων χαρακτηριστικών με γνώσεις τομέα και κωδικοποίησης κατηγοριών κατηγοριών με κατάλληλες μεθόδους (one-hot, label, target)
  • Δυνατότητα κλιμάκωσης αριθμητικών μεταβλητών σύμφωνα με τον τύπο μοντέλου (τυποποίηση, κανονικοποίηση) και αποφυγή περιττής ή ελλιπούς κλιμάκωσης
  • Δυνατότητα αποφυγής διαρροής χαρακτηριστικών εκμάθησης όλων των μετασχηματισμών μετά τον διαχωρισμό της εκπαίδευσης/δοκιμής και μόνο από την προπόνηση

Υπάρχει ένα παλιό ρητό στη μηχανική μάθηση: «Η εφαρμοσμένη μηχανική μάθηση είναι ουσιαστικά η μηχανική χαρακτηριστικών». Επειδή η επιτυχία ενός μοντέλου προέρχεται συχνά από τις εισροές που δίνετε στο μοντέλο και όχι από τον αλγόριθμο που επιλέγετε. Η μηχανική χαρακτηριστικών είναι η τέχνη της παραγωγής σημαντικών σημάτων από ακατέργαστα δεδομένα από τα οποία μπορεί να μάθει το μοντέλο. Η τεχνητή νοημοσύνη είναι μια πλούσια πηγή ιδεών σε αυτό το στάδιο: όταν ρωτάτε «ποια χαρακτηριστικά μπορούν να παραχθούν από αυτά τα δεδομένα», παραθέτει δεκάδες προτάσεις. Αλλά μερικές από αυτές τις προτάσεις μπορεί να είναι πολύτιμες, μερικές μπορεί να είναι άχρηστες και μερικές μπορεί να είναι επικίνδυνες (διαρροή). Δουλειά σας είναι να το λύσετε.

Γιατί η μηχανική χαρακτηριστικών

Τα ανεπεξέργαστα δεδομένα σπάνια έρχονται στο μοντέλο στην καλύτερη του μορφή. Ενώ η στήλη "ημερομηνία γέννησης" από μόνη της δεν έχει νόημα, η τιμή "ηλικίας" που δημιουργείται από αυτήν είναι ένα ισχυρό σήμα. Μπορείτε να εξαγάγετε χαρακτηριστικά όπως "ημέρα της εβδομάδας", "ημέρα/νύχτα", "είναι αργία" από τη "χρονοσήμανση παραγγελίας". Μπορείτε να συνδυάσετε δύο στήλες για να δημιουργήσετε μια αναλογία ("αναλογία χρέους/εισόδημα"). Εδώ, η μηχανική χαρακτηριστικών μεταφράζει τη γνώση του τομέα σε μαθηματικό σήμα. Και γι' αυτό ακριβώς είναι το στάδιο που απαιτεί την πιο ανθρώπινη ευφυΐα.

Μετατροπή κατηγορικών μεταβλητών σε αριθμούς: κωδικοποίηση

Τα μοντέλα γενικά λειτουργούν με αριθμούς, όχι με κείμενο. Η μετατροπή κατηγορικών μεταβλητών (όπως πόλη, χρώμα, τύπος προϊόντος) σε αριθμούς ονομάζεται κωδικοποίηση. Τρεις κοινές μέθοδοι:

Κωδικοποίηση One-hot: Ανοίγει μια ξεχωριστή στήλη με τιμή 0/1 για κάθε κατηγορία. Για την "πόλη", σχηματίζονται στήλες Κωνσταντινούπολη, Άγκυρα, Σμύρνη. Εάν ένας πελάτης είναι από την Κωνσταντινούπολη, μόνο αυτή η στήλη θα είναι 1. Ιδανική όταν ο αριθμός των κατηγοριών είναι μικρός. Εάν υπάρχουν πάρα πολλές κατηγορίες, παράγει εκατοντάδες στήλες (αυτό ονομάζεται "έκρηξη μεγέθους").

Κωδικοποίηση ετικέτας: Δίνει έναν αριθμό σε κάθε κατηγορία (Istanbul=0, Ankara=1). Είναι απλό, αλλά μπορεί κατά λάθος να διδάξει στο μοντέλο μια ακολουθία (όπως Άγκυρα > Κωνσταντινούπολη). οπότε χρησιμοποιείται με προσοχή σε μη ταξινομημένες κατηγορίες.

Κωδικοποίηση στόχου: Αντικαθιστά κάθε κατηγορία με τον μέσο όρο της μεταβλητής στόχου σε αυτήν την κατηγορία. Είναι πολύ ισχυρό, αλλά η πιο επικίνδυνη πηγή διαρροής: αν λάβετε υπόψη τον στόχο των δεδομένων δοκιμής, το μοντέλο βλέπει το μέλλον. Θα πρέπει να υπολογίζεται μόνο από δεδομένα εκπαίδευσης και προσεκτικά (εντός διασταυρούμενης επικύρωσης).

Κλιμάκωση: μεγάλοι αριθμοί δεν κατακλύζουν το μοντέλο

Ορισμένα μοντέλα (με βάση την απόσταση, γραμμικά μοντέλα, νευρωνικά δίκτυα) είναι ευαίσθητα στην κλίμακα των μεταβλητών. Εάν το "εισόδημα" (0-500.000) και η "ηλικία" (0-100) εμπίπτουν στο ίδιο μοτίβο, το εισόδημα μπορεί να κυριαρχεί απλώς και μόνο επειδή είναι μεγαλύτερο. Η κλιμάκωση το διορθώνει. Δύο συνήθεις μέθοδοι: τυποποίηση (μετατρέπει κάθε τιμή σε "πόσες τυπικές αποκλίσεις μακριά από τη μέση") και κανονικοποίηση (κανονικοποίηση ελάχιστης μέγιστης τιμής — συμπιέζει τις τιμές στο εύρος 0-1). Τα μοντέλα που βασίζονται σε δέντρα (δέντρα απόφασης, τυχαίο δάσος) δεν είναι ευαίσθητα σε κλίμακα, δεν απαιτούν κλιμάκωση.

Προσοχή: Οι παράμετροι κλιμάκωσης και κωδικοποίησης (μέση τιμή, τυπική απόκλιση, χαρτογράφηση κατηγορίας-μέσης τιμής) θα πρέπει να υπολογίζονται μόνο από τα δεδομένα εκπαίδευσης και, στη συνέχεια, το ίδιο θα πρέπει να εφαρμόζεται στα δεδομένα δοκιμής. Η συμπερίληψη των δεδομένων δοκιμής είναι διαρροή και κάνει το μοντέλο σας να φαίνεται καλύτερο από ό,τι είναι στην πραγματικότητα.

Η καρδιά της διαρροής στη μηχανική χαρακτηριστικών

Η δημιουργία χαρακτηριστικών είναι εκεί όπου προέρχεται συχνότερα η διαρροή δεδομένων. Δύο τυπικά λάθη: Διαρροή χρόνου — δημιουργία μιας δυνατότητας που περιλαμβάνει μελλοντικές πληροφορίες (συμπεριλαμβανομένων των ημερών μετά την ημέρα πρόβλεψης κατά τον υπολογισμό του "μέσου όρου των τελευταίων 30 ημερών"). Διαρροή στατιστικών — υπολογισμός ενός χαρακτηριστικού (μέσος όρος κλίμακας, τιμή κωδικοποίησης στόχου) από όλα τα δεδομένα πριν από τον διαχωρισμό εκπαίδευσης/δοκιμής. Κανόνας: μάθετε κάθε μετασχηματισμό αφού κάνετε τον διαχωρισμό τρένου/δοκιμής πρώτα και μόνο από τα δεδομένα εκπαίδευσης. Ο ασφαλέστερος τρόπος για να το κάνετε αυτό τακτικά είναι να χρησιμοποιήσετε τη διοχέτευση — μια δομή που συλλέγει όλους τους μετασχηματισμούς σε μια ενιαία αλυσίδα και τους εφαρμόζει μετά τη διάσπαση.

Μέθοδος

για τι

Κίνδυνος διαρροής

σημείωση

One-hot κωδικοποίηση

Μεταβλητή με λίγες κατηγορίες

χαμηλά

Εκρήγνυται μέγεθος σε πολλές κατηγορίες

Κωδικοποίηση ετικέτας

Ταξινομημένη κατηγορία

χαμηλά

Η εκτός λειτουργίας διδάσκει λάθος σειρά

κωδικοποίηση στόχου

Ισχυρό σήμα πολλαπλών κατηγοριών

πολύ ψηλά

Μόνο από εκπαίδευση, σε βιογραφικό

τυποποίηση

Μοντέλα γραμμικής/απόστασης

μεσαίο

Η παράμετρος εξαρτάται μόνο από την εκπαίδευση

Λειτουργία παραθύρου χρόνου

χρονοσειρές

ψηλά

Προσθέστε το μέλλον

τρεις μίνι θήκες

Περίπτωση 1 — Πολύτιμη περιουσία. Μια ομάδα πίστωσης δημιούργησε τη λειτουργία "αναλογία χρέους προς εισόδημα" από τις στήλες "μηνιαίο εισόδημα" και "μηνιαία πληρωμή χρέους". Αυτό το μεμονωμένο χαρακτηριστικό αύξησε την ακρίβεια του μοντέλου από 71% σε 79%. γιατί ήταν το ποσοστό, όχι το απόλυτο εισόδημα, που καθόρισε πραγματικά τον κίνδυνο. Μάθημα: οι αναλογίες που δημιουργούνται από τη γνώση τομέα είναι ισχυρά σήματα.

Περίπτωση 2 — Διαρροή κωδικοποίησης στόχου. Μια ομάδα μετέτρεψε τον "ταχυδρομικό κώδικα" σε έναν αριθμό με την κωδικοποίηση στόχου (το μέσο ποσοστό ανατροπής σε αυτήν την περιοχή), αλλά το έκανε από όλα τα δεδομένα πριν διαχωριστεί. Το μοντέλο έδωσε 94% στο σετ δοκιμών, πέφτοντας στο 68% στην παραγωγή. 6 εβδομάδες προσπάθειας χαμένες. Μάθημα: Η κωδικοποίηση στόχου γίνεται προσεκτικά, μόνο εντός της εκπαίδευσης.

Περίπτωση 3 — Λήθη κλιμάκωσης. Ένας αναλυτής τροφοδότησε τα έσοδα (0-400.000) και την ηλικία των πελατών (18-75) σε ένα μοντέλο που βασίζεται στην απόσταση χωρίς κλιμάκωση. Το μοντέλο εξέτασε σχεδόν αποκλειστικά το εισόδημα, συνθλίβοντας το φαινόμενο της ηλικίας. Όταν προστέθηκε η κλιμάκωση, η τμηματοποίηση απέκτησε νόημα. Μάθημα: η κλιμάκωση δεν παραμελείται σε μοντέλα απόστασης/γραμμικής.

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Δημιουργία ιδεών χαρακτηριστικών (η εξάλειψη εξαρτάται από εσάς):

Ο ρόλος σας: χαρακτηριστικός βοηθός μηχανικού. Οι στήλες μου df: ημερομηνία_γέννησης, χρόνος_παραγγελίας (χρονική σήμανση), εισόδημα_tl, χρέος_tl, πόλη, κατηγορία_προϊόντος. Στόχος: «θα αποπληρωθεί το δάνειο» (0/1). Προτείνετε 15 χαρακτηριστικά που μπορούν να δημιουργηθούν από αυτές τις στήλες. προσδιορίστε τον κίνδυνο διαρροής (χαμηλό/μέσο/υψηλό) για κάθε ένα. Σημειώστε ξεκάθαρα εκείνα που περιέχουν μελλοντικές πληροφορίες.

2) Ασφαλής κωδικοποίηση (post-split):

Γράψτε κώδικα που να κωδικοποιεί "πόλη" και "κατηγορία_προϊόντος". ΣΗΜΑΝΤΙΚΟ: προσαρμόστε την κωδικοποίηση μόνο στα δεδομένα εκπαίδευσης και, στη συνέχεια, μετατρέψτε τα δεδομένα δοκιμής (με το sklearn OneHotEncoder). Εξηγήστε πώς χειρίζεστε την αόρατη κατηγορία (handle_unknown) στην εκπαίδευση.

3) Μετατροπή χωρίς διαρροές με Pipeline:

Ρύθμιση του sklearn Pipeline: εφαρμόστε το StandardScaler σε αριθμητικές στήλες, το OneHotEncoder σε στήλες κατηγοριών, προσθέστε έναν ταξινομητή στο τέλος. Εγγύηση ότι όλοι οι μετασχηματισμοί μαθαίνονται ΜΕΤΑ τον διαχωρισμό αμαξοστοιχίας/δοκιμών και μόνο από την προπόνηση. Εξηγήστε τον κώδικα και γιατί δεν έχει διαρροές.

4) Λειτουργία παραθύρου χρόνου (έλεγχος διαρροής):

Δημιουργήστε το χαρακτηριστικό "αριθμός παραγγελιών τις τελευταίες 30 ημέρες" για κάθε πελάτη, αλλά ΠΟΤΕ μην συμπεριλάβετε δεδομένα μετά την ημέρα πρόβλεψης. Εξηγήστε γραμμή προς γραμμή ότι ο κώδικας δεν κοιτάζει στο μέλλον. Θα παράσχω τη στήλη της ημερομηνίας αναφοράς.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμη προτροπή:

Προσθέστε καλές ιδιότητες σε αυτά τα δεδομένα.

Το "Καλό" είναι απροσδιόριστο, ο στόχος είναι ασαφής, δεν υπάρχει έλεγχος διαρροής. Η τεχνητή νοημοσύνη δημιουργεί τυχαία, ίσως διαρροή, χαρακτηριστικά.

Ισχυρή προτροπή:

Ο ρόλος σας: μηχανικός χαρακτηριστικών. Στόχος: "ανατροπή σε 30 ημέρες" (0/1), εκτιμώμενη ημερομηνία αναφοράς: save_date. Υπάρχει ιστορικό συναλλαγών στο df.Task: Δημιουργήστε 8 χαρακτηριστικά, απαντήστε στην ερώτηση "Έχω αυτές τις πληροφορίες τη στιγμή της πρόβλεψης" για ΚΑΘΕ. Προσθήκη της ημερομηνίας μετά την ημερομηνία αναφοράς στις λειτουργίες του παραθύρου ώρας. Γράψτε τον κώδικα με τρόπο συμβατό με τη διοχέτευση που θα εκτελεστεί μετά το τμήμα αμαξοστοιχίας/δοκιμών.

Εδώ, ο στόχος, ο χρόνος αναφοράς και ο έλεγχος διαρροής ορίζονται από την αρχή.

Συνήθη λάθη

  • Εκμάθηση του μετασχηματισμού από όλα τα δεδομένα πριν από τη διαίρεση. Εάν η παράμετρος κλιμάκωσης/κωδικοποίησης δει τα δεδομένα δοκιμής, εμφανίζεται διαρροή.
  • Απρόσεκτη χρήση της κωδικοποίησης στόχου. Είναι η πιο ισχυρή αλλά πιο διαρροή μέθοδος. μόνο από την εκπαίδευση, σε διασταυρούμενη επικύρωση.
  • Προσθήκη του μέλλοντος με δυνατότητα παραθύρου χρόνου. Εάν ο υπολογισμός "τελευταίες 30 ημέρες" εισαχθεί μετά την ημέρα πρόβλεψης, το μοντέλο βλέπει το μέλλον.
  • Περιττή κλιμάκωση στο μοντέλο δέντρου και ελλιπής κλιμάκωση στο γραμμικό μοντέλο. Οι αποφάσεις κλιμάκωσης λαμβάνονται σύμφωνα με τον τύπο του μοντέλου.
  • Προσθήκη κάθε πρότασης χαρακτηριστικών του AI χωρίς αμφιβολία. Οι προτάσεις μπορεί να περιλαμβάνουν άχρηστα και διαρροή χαρακτηριστικά.
Συμβουλή: Σημειώστε μια ερώτηση για κάθε χαρακτηριστικό που δημιουργείτε: «Μπορώ να υπολογίσω αυτήν την τιμή με τις πληροφορίες που έχω τη στιγμή που κάνω την πρόβλεψη;» Εάν η απάντηση δεν είναι ξεκάθαρο "ναι", μην χρησιμοποιήσετε τη δυνατότητα. Αυτή η ενιαία πειθαρχία εξαλείφει τις περισσότερες διαρροές που σχετίζονται με χαρακτηριστικά.

Συνοπτικά

Η μηχανική χαρακτηριστικών είναι η τέχνη της παραγωγής σημαντικών σημάτων από ακατέργαστα δεδομένα και συχνά καθορίζει την επιτυχία του μοντέλου περισσότερο από τον αλγόριθμο. Η κωδικοποίηση κατηγοριών (one-hot, label, target), η κλιμάκωση αριθμητικών (τυποποίηση, κανονικοποίηση) και η παραγωγή παραγώγων χαρακτηριστικών με γνώση τομέα είναι τα βασικά εργαλεία. Αλλά αυτή η φάση είναι επίσης η καρδιά της διαρροής: όλοι οι μετασχηματισμοί πρέπει να μαθαίνονται μετά τον διαχωρισμό εκπαίδευσης/δοκιμής και μόνο από τα δεδομένα εκπαίδευσης. Το AI δημιουργεί πολλές ιδέες. Είναι η ανθρώπινη κρίση που ξεχωρίζει το πολύτιμο από το επικίνδυνο.

Εργασία εφαρμογής

Επιλέξτε μια μεταβλητή στόχο και σχεδιάστε τουλάχιστον πέντε παράγωγα χαρακτηριστικά από τις στήλες που έχετε. Για καθένα από αυτά, απαντήστε γραπτώς στην ερώτηση «είμαι διαθέσιμος τη στιγμή της πρόβλεψης» και εξαλείψτε τουλάχιστον ένα ως «υψηλού κινδύνου διαρροής». Στη συνέχεια, κωδικοποιήστε τις ασφαλείς δυνατότητες σε μια διοχέτευση που θα εφαρμοστεί μετά την κατάτμηση.

λίστα ελέγχου

  • [ ] Εφάρμοσα όλους τους μετασχηματισμούς μετά τον διαχωρισμό αμαξοστοιχίας/δοκιμής;
  • [ ] Έμαθα μόνο τις παραμέτρους κλιμάκωσης/κωδικοποίησης από την εκπαίδευση;
  • [ ] Έχω απαντήσει στην ερώτηση "το έχω τη στιγμή της πρόβλεψης" για κάθε χαρακτηριστικό;
  • [ ] Έχω προσέξει ιδιαίτερα τις μεθόδους υψηλού κινδύνου, όπως η κωδικοποίηση στόχου;
  • [ ] Αποφάσισα να κάνω κατάλληλη κλίμακα για τον τύπο του μοντέλου (δέντρο/γραμμικό);