Κέρδη:
- Ικανότητα διάκρισης της αιτίας των τιμών που λείπουν (τυχαία, συστηματική, ουσιαστική) και επιλογή της κατάλληλης στρατηγικής και υπολογισμός της αξίας πλήρωσης μόνο από την προπόνηση
- Δυνατότητα εξέτασης ακραίων τιμών πριν από τη διαγραφή τους και διάκρισης μεταξύ ενός σφάλματος δεδομένων και ενός αληθινού σπάνιου συμβάντος
- Δυνατότητα αποτροπής αθόρυβης απώλειας παρακολουθώντας τον αντίκτυπο κάθε βήματος στον αριθμό των γραμμών/κενών, ενώ παράλληλα φέρνουν τις ασυνέπειες τύπου και μορφής στο πρότυπο
Περίπου το 60-80 τοις εκατό του χρόνου ενός επιστήμονα δεδομένων πηγαίνει στον καθαρισμό. Στη βιομηχανία, αυτό μισοαστεία ονομάζεται «διαμάχη δεδομένων» (διαμάχη δεδομένων ή καθαρισμός δεδομένων). Επειδή τα δεδομένα του πραγματικού κόσμου δεν είναι σχεδόν ποτέ έτοιμα για ανάλυση: οι ημερομηνίες είναι σε μικτές μορφές, οι αριθμοί αποθηκεύονται ως κείμενο, ορισμένα κελιά είναι κενά, ένας πελάτης εμφανίζεται τρεις φορές στον ίδιο πίνακα με δύο διαφορετικές ορθογραφίες. Σε αυτήν την ενότητα θα καλύψουμε τρεις βασικές πτυχές της εκκαθάρισης: τιμές που λείπουν, ακραίες τιμές και μετατροπή τύπου/μορφής. Η τεχνητή νοημοσύνη είναι ένας εξαιρετικά γρήγορος βοηθός σε αυτό το έργο. Αλλά είστε εσείς που αποφασίζετε τι θα καθαρίσετε και πώς, γιατί κάθε επιλογή καθαρισμού αλλάζει την ανάλυση.
Ο χρυσός κανόνας του καθαρισμού: κάθε αλλαγή είναι μια απόφαση
Διαγραφή κελιού, συμπλήρωση μιας τιμής που λείπει με τη μέση τιμή, περικοπή μιας ακραίας τιμής—καμία από αυτές δεν είναι «ουδέτερη» πράξεις. Κάθε ένα αλλάζει τα δεδομένα και επηρεάζει το αποτέλεσμα. Επομένως, ο χρυσός κανόνας της εκκαθάρισης: γράψτε κάθε αλλαγή στον κώδικα, σημειώστε τη λογική, μην αντικαθιστάτε ποτέ τα αρχικά δεδομένα. Το AI σας δίνει έναν γρήγορο κώδικα εκκαθάρισης, αλλά είναι δική σας ευθύνη να κατανοήσετε τι κάνει αυτός ο κώδικας. Μην το εκτελέσετε χωρίς να δείτε πόσες γραμμές έχουν φύγει όταν λέτε "διαγραφή κενών γραμμών".
Προσοχή: Μην τροποποιείτε ποτέ τα αρχικά μη επεξεργασμένα δεδομένα. Γράψτε την καθαρισμένη έκδοση σε ξεχωριστό αρχείο/πίνακα. Με αυτόν τον τρόπο, εάν εντοπίσετε ένα σφάλμα, μπορείτε να επιστρέψετε στο πρώτο και να διατηρήσετε την αναπαραγωγιμότητα.
Λείπουν τιμές: γιατί είναι κενό, τι να κάνετε
Μια τιμή που λείπει (που συνήθως εμφανίζεται ως NaN — "Not a Number" στα πάντα) είναι όταν ένα κελί είναι κενό. Αλλά η αιτία του κενού καθορίζει τη λύση. Υπάρχουν τρεις χαρακτηριστικές καταστάσεις. Λείπει τυχαία: ο αισθητήρας δεν λειτούργησε για μια στιγμή. Ίσως είναι λογικό να το συμπληρώσετε. Λείπει συστηματικά: ένα πεδίο φόρμας ζητείται μόνο για ορισμένους πελάτες. Το κενό εδώ είναι στην πραγματικότητα πληροφορίες. Σημαντική έλλειψη: εάν η "ημερομηνία επιστροφής" είναι κενή, ο πελάτης δεν επέστρεψε. Αυτό το διάστημα σημαίνει 0 ή "κανένα", δεν συμπληρώνεται.
Κύριες στρατηγικές:
Στρατηγική
Πότε είναι κατάλληλο;
κίνδυνος
Διαγραφή σειράς
Το ποσοστό ελλείψεων είναι πολύ χαμηλό (<5%) και τυχαίο
Απώλεια δεδομένων και εκπροσώπησης
Διαγραφή στήλης
Το μεγαλύτερο μέρος της στήλης είναι άδειο (>60%)
απώλεια πληροφοριών
Μέση/μέση πλήρωση
Αριθμητικό, λείπει τυχαία
Μειώνει τη διακύμανση και παραμορφώνει την κατανομή
Κατηγορία "άγνωστο"
Κατηγορηματικά, συστηματικά λείπουν
Δημιουργεί πρόσθετες κατηγορίες
Πρόβλεψη με μοντέλο
Σύνθετη, πολύτιμη στήλη
Κίνδυνος διαρροής, πολυπλοκότητα
Κρίσιμο σημείο: η τεκμαρτή τιμή πρέπει να υπολογίζεται μόνο από τα δεδομένα εκπαίδευσης και η ίδια τιμή πρέπει να εφαρμόζεται στα δεδομένα της δοκιμής. Εάν συμπεριλάβετε τον μέσο όρο των δεδομένων δοκιμής, δημιουργείτε διαρροή (Μονάδα 10). Η διάμεσος (η μεσαία τιμή των τακτικών δεδομένων) συχνά προτιμάται από τη μέση, επειδή είναι πιο ανθεκτική σε ακραίες τιμές από τη μέση τιμή.
Outliers: λάθος ή πραγματικό;
Μια ακραία τιμή μπορεί να είναι ένα από δύο πράγματα: ένα σφάλμα δεδομένων (999 στη στήλη ηλικία) ή ένα πραγματικό αλλά σπάνιο συμβάν (παραγγελία 2 εκατομμυρίων δολαρίων πελάτη). Η σύγχυση των δύο είναι καταστροφική: διαγράψτε μια πραγματική ακραία τιμή και πετάτε σημαντικές πληροφορίες. Εάν αφήσετε ένα λάθος, οι μέσοι όροι σας θα υποφέρουν. Ως εκ τούτου, είναι απαραίτητο να εξετάσετε πρώτα το ακραίο, όχι να το διαγράψετε αυτόματα.
Συνήθεις μέθοδοι ανίχνευσης: Μέθοδος IQR (διατεταρτημόριο εύρος, τιμές που είναι περισσότερες από 1,5 φορές τη διαφορά μεταξύ των πεμπτημάδων 25% και 75% των δεδομένων θεωρούνται ακραίες τιμές) και z-score (ο αριθμός των τυπικών αποκλίσεων μακριά από τη μέση τιμή, συνήθως ακραία αν είναι μεγαλύτερη από 3). Το AI γράφει τον κωδικό για αυτούς τους υπολογισμούς σε δευτερόλεπτα. Αλλά προτού πείτε "διαγραφή", ελέγξτε ποιες είναι αυτές οι τιμές.
Μετατροπή τύπου και μορφής: σιωπηλή πηγή σφάλματος
Ένας από τους πιο πονοκεφάλους είναι η σύγχυση τύπων δεδομένων. Εάν μια στήλη "ποσό" είναι αποθηκευμένη ως κείμενο, δεν μπορείτε να προσθέσετε. Το πρόγραμμα διαβάζει εσφαλμένα έναν αριθμό με τουρκική μορφή όπως "1.250,50" αντί για "χίλια διακόσια πενήντα". Οι ημερομηνίες ("01/03/2024" ημέρα-μήνας ή μήνας-ημέρα;), οι κατηγορίες ("Άνδρας"/"άνδρας"/"M" είναι το ίδιο πράγμα;) και οι μονάδες (TL ή kuruş;) παράγουν σιωπηλά εσφαλμένα αποτελέσματα. Ένα μεγάλο μέρος της εκκαθάρισης είναι η ενσωμάτωση αυτών των ασυνεπειών στο πρότυπο: ημερομηνίες σε μία μορφή, κατηγορίες σε μία ορθογραφία, αριθμοί σε μία ενότητα.
τρεις μίνι θήκες
Περίπτωση 1 — Η μέση παγίδα. Μια ομάδα συμπλήρωσε τις 320 τιμές που λείπουν στη στήλη εισοδήματος με τον μέσο όρο (48.500 $). Αλλά οι ελλείψεις ήταν συστηματικές: αυτές ήταν το τμήμα χαμηλού εισοδήματος που δεν είχε δηλώσει ποτέ εισόδημα. Η μέση πλήρωση έκανε αυτή την ομάδα τεχνητά πλούσια και το πιστωτικό μοντέλο ήταν λάθος. Μάθημα: ρωτήστε «γιατί είναι κενό» πριν το συμπληρώσετε.
Περίπτωση 2 — Έξω που δεν πρέπει να διαγραφεί. Ένας αναλυτής λιανικής διέγραψε 4 τεράστιες παραγγελίες (1,8 εκατομμύρια TL η καθεμία) στα δεδομένα πωλήσεων, θεωρώντας ότι ήταν «λάθη». Ωστόσο, αυτές ήταν πραγματικές εταιρικές παραγγελίες και ήταν το 22% του συνολικού τζίρου. Το μοντέλο πρόβλεψης μετά τη διαγραφή έχασε εντελώς τη θεσμική ζήτηση. Μάθημα: εξετάστε την ακραία τιμή πριν τη διαγράψετε.
Περίπτωση 3 — Καταστροφή μορφής ημερομηνίας. Σε ένα CSV, οι ημερομηνίες αναμίχθηκαν σε "2024-03-01" και "01.03.2024". Όταν ο κώδικας που γράφτηκε από τον YZ αναλύθηκε σύμφωνα με την πρώτη μορφή, 6.400 γραμμές έγιναν NaT ως "μη έγκυρη ημερομηνία" και εξαιρέθηκαν σιωπηλά από την ανάλυση. Ο αναλυτής το παρατήρησε μόνο όταν ο αριθμός των γραμμών μειώθηκε. Μάθημα: ελέγχετε πάντα τον αριθμό των γραμμών και των κενών μετά τη μετατροπή.
Τέσσερα πρότυπα με δυνατότητα αντιγραφής
1) Χάρτης τιμών που λείπει:
Έχω pandas df. Γράψτε κώδικα που δημιουργεί έναν πίνακα που δείχνει τον αριθμό και το ποσοστό των ελλείψεων (NaN) για κάθε στήλη. Στη συνέχεια, αναφέρετε χωριστά τις στήλες με ποσοστό ελλείψεων άνω του 40% και εκείνες με ποσοστό λείπει κάτω από 5%. Απλώς δημιουργήστε αυτόν τον κωδικό διάγνωσης, όχι τη στρατηγική που προτείνετε. Θα πάρω την απόφαση.
2) Επιθεώρηση ακραίων τιμών (όχι διαγραφή):
Γράψτε κώδικα που ΑΝΙΧΝΕΥΕΙ (όχι διαγράφει!) ακραίες τιμές για τη στήλη "ποσό" μου χρησιμοποιώντας τη μέθοδο IQR. Βάλτε τις απομακρυσμένες σειρές σε ένα ξεχωριστό df ώστε να μπορώ να τις εξετάσω χειροκίνητα. Εκτυπώστε επίσης τον αριθμό των ακραίων τιμών και το μερίδιό τους στο σύνολο.
3) Τυποποίηση τύπου/μορφής:
Γράψτε κώδικα που να τυποποιεί τις ακόλουθες στήλες: - "ημερομηνία": μπορεί να είναι μικτές μορφές ("2024-03-01" και "01.03.2024"); μετατρέψτε τα όλα σε ημερομηνία, μετρήστε τα αμετάφραστα και αναφέρετε (πετάξτε σιωπηλά). - "φύλο": "Αρσενικό"/"αρσενικό"/"Μ" -> "Μ", "Θηλυκό"/"θηλυκό"/"ΣΤ" -> "Κ". - "ποσό": Τουρκικό κείμενο ("1.250,50") -> δεκαδικός αριθμός. Εκτυπώστε πόσες σειρές επηρεάζονται μετά από κάθε μετατροπή.
4) Ελέγξτε πριν/μετά τον καθαρισμό:
Γράψτε κώδικα που συγκρίνει το df.shape, το πλήθος που λείπει και τα συνοπτικά στατιστικά στοιχεία (μέσος όρος, διάμεσος, ελάχιστος, μέγιστος) των επιλεγμένων στηλών πριν και μετά από ένα βήμα εκκαθάρισης. Σκοπός: να δούμε τι αλλάζει ο καθαρισμός.
Αδύναμη προτροπή / Ισχυρή προτροπή
Αδύναμη προτροπή:
Διαγράψτε αυτά τα δεδομένα.
Το "Clear" είναι διφορούμενο. Η τεχνητή νοημοσύνη δεν γνωρίζει ποια μέρη που λείπουν πρέπει να διαγραφούν, τι να συμπληρώσει, ποια στήλη να επεξεργαστεί και πώς. Το αποτέλεσμα: τυφλές, μη αναστρέψιμες αλλαγές.
Ισχυρή προτροπή:
Ο ρόλος σας: βοηθός καθαρισμού δεδομένων. Στήλες df: customer_id (int), register_date (κείμενο μεικτής μορφής), έσοδα_tl (κείμενο, "1.200,00"), πόλη (κείμενο, ασυνεπής ορθογραφία). Κανόνες: - Αλλαγή αρχικού df; Εργαστείτε στο αντίγραφο με το όνομα df_clean.- Μετατρέψτε το εισόδημα_tl σε αριθμό, μετρήστε ό,τι δεν μπορεί να μεταφραστεί.- Αλλαγή record_date σε datetime, αναφέρετε το σφάλμα.- Μην διαγράψετε καμία σειρά χωρίς την έγκρισή μου. Εμφάνιση των υποψηφίων χωριστά. Μετά από κάθε βήμα, εκτυπώστε το df_temiz.shape και τον αριθμό που λείπει.
Εδώ η πηγή προστατεύεται, κάθε μεταμόρφωση μετριέται, η διαγραφή επαφίεται στον άνθρωπο.
Συνήθη λάθη
- Συμπλήρωση των κενών χωρίς να ρωτήσω "γιατί είναι άδειο;" Η συμπλήρωση συστηματικών/σημαντικών ελλείψεων με τον μέσο όρο παραμορφώνει τα δεδομένα.
- Διαγραφή του ακραίου σημείου χωρίς να το εξετάσετε. Η απόρριψη πραγματικών αλλά σπάνιων γεγονότων καταστρέφει σημαντικές πληροφορίες.
- Υπολογισμός της τιμής συμπλήρωσης από όλα τα δεδομένα. Η συμπερίληψη δεδομένων δοκιμής δημιουργεί διαρροή. απλά υπολογίστε από την προπόνηση.
- Μη έλεγχος του αριθμού των σειρών/κενών μετά τη μετατροπή. Οι σειρές που είναι αθόρυβα NaT/NaN εξαιρούνται από την ανάλυση.
- Αντικατάσταση των αρχικών δεδομένων. Η επιστροφή και η αναπαραγωγιμότητα χάνονται.
Συμβουλή: Εκτελέστε τον καθαρισμό με σύγκριση «πριν-μετά». Εκτυπώστε df.shape, πλήθος που λείπει και συνοπτικά στατιστικά στοιχεία κρίσιμων στηλών μετά από κάθε βήμα. Βλέπετε λοιπόν αμέσως ότι ένα βήμα καταστρέφει απροσδόκητα 6.000 σειρές.
Συνοπτικά
Η εκκαθάριση είναι η πιο χρονοβόρα και απαιτητική φάση της επιστήμης δεδομένων. Κάθε αλλαγή αλλάζει τα δεδομένα, επομένως η καθεμία είναι μια συνειδητή απόφαση. Για τιμές που λείπουν, ρωτήστε "γιατί είναι κενό;" Ελέγξτε τυχόν ακραίες τιμές πριν τις διαγράψετε. Φέρτε τον τύπο και τη μορφή στο πρότυπο. Υπολογίστε την τιμή πλήρωσης μόνο από τα δεδομένα εκπαίδευσης, διατηρήστε το πρωτότυπο και παρακολουθήστε τον αντίκτυπο κάθε βήματος μετρώντας το. Η τεχνητή νοημοσύνη είναι ένας τεράστιος επιταχυντής σε αυτήν την επιχείρηση, αλλά οι άνθρωποι αποφασίζουν τι καθαρίζετε και γιατί.
Εργασία εφαρμογής
Πάρτε (ή δημιουργήστε) έναν μικρό πίνακα και εισαγάγετε σκόπιμα τρία προβλήματα σε αυτόν: μια πλειάδα τιμής που λείπει, μια ακραία τιμή, μια μικτή μορφή ημερομηνίας. Ζητήστε κωδικό διάγνωσης και τυποποίησης από AI με τα παραπάνω πρότυπα. συγκρίνετε τον αριθμό των σειρών και των κενών πριν/μετά από κάθε βήμα. Προσπαθήστε να πιάσετε τουλάχιστον μια «σιωπηλή απώλεια» και σημειώστε πώς την προσέξατε.
λίστα ελέγχου
- [ ] Διατήρησα τα αρχικά ακατέργαστα δεδομένα και δούλεψα το αντίγραφο;
- [ ] Έχω κάνει την ερώτηση "γιατί είναι κενή" για κάθε στήλη που λείπει;
- [ ] Εξέτασα τα ακραία στοιχεία πριν τα διαγράψω;
- [ ] Υπολόγισα την τιμή πλήρωσης μόνο από τα δεδομένα εκπαίδευσης;
- [ ] Ελέγχω τον αριθμό των γραμμών/κενών μετά από κάθε βήμα και εξαλείφω τη σιωπηρή απώλεια;