Gevinster:
- Evne til at skelne årsagen til manglende værdier (tilfældig, systematisk, meningsfuld) og vælge den passende strategi og beregne fyldeværdien ud fra træning alene
- Evne til at undersøge outliers før sletning af dem og skelne mellem en datafejl og en ægte sjælden hændelse
- Evne til at forhindre tavs tab ved at overvåge virkningen af hvert trin på antallet af linjer/blanketter og samtidig bringe type- og formatuoverensstemmelser til standarden
Cirka 60-80 procent af en dataforskers tid går til rengøring; I branchen kaldes dette halvt i spøg for "datawrangling" (datakrangel eller datarensning). Fordi data fra den virkelige verden næsten aldrig er klar til analyse: datoer er i blandede formater, tal gemmes som tekst, nogle celler er tomme, en kunde vises tre gange i den samme tabel med to forskellige stavemåder. I denne enhed vil vi dække tre grundlæggende aspekter af oprydning: manglende værdier, outliers og type/formatkonvertering. Kunstig intelligens er en ekstraordinær hurtig assistent i dette arbejde; Men det er dig, der bestemmer, hvad der skal gøres rent og hvordan, for hvert rengøringsvalg ændrer analysen.
Rengøringens gyldne regel: hver ændring er en beslutning
Sletning af en celle, udfyldning af en manglende værdi med middelværdi, trimning af en outlier - ingen af disse er "neutrale" operationer. Hver ændrer dataene og påvirker resultatet. Så den gyldne regel for oprydning: skriv hver ændring i koden, bemærk begrundelsen, overskriv aldrig de originale data. AI giver dig hurtig oprydningskode, men det er dit ansvar at forstå, hvad den kode gør; Kør det ikke uden at se, hvor mange linjer der er gået, når du siger "slet tomme linjer".
Forsigtig: Rediger aldrig de originale rådata. Skriv den rensede version til en separat fil/tabel. På denne måde, hvis du opdager en fejl, kan du gå tilbage til udgangspunktet og bevare reproducerbarheden.
Manglende værdier: hvorfor er det tomt, hvad skal man gøre
En manglende værdi (som normalt vises som NaN - "Ikke et tal" i pandaer) er, når en celle er tom. Men årsagen til kløften bestemmer løsningen. Der er tre typiske situationer. Tilfældigt mangler: sensor virkede ikke et øjeblik; Det kan være rimeligt at udfylde det. Systematisk mangler: et formularfelt spørges kun for visse kunder; Gabet her er faktisk information. Manglende væsentligt: hvis "returdato" er blank, vendte kunden ikke tilbage; Dette mellemrum betyder 0 eller "ingen", det er ikke udfyldt.
Vigtigste strategier:
Strategi
Hvornår er det passende?
risiko
Slet række
Manglende frekvens er meget lav (<5%) og tilfældig
Tab af data og repræsentation
Slet en kolonne
Det meste af kolonnen er tom (>60 %)
tab af information
Gennemsnitlig/median fyld
Numerisk, mangler tilfældigt
Det reducerer variansen og forvrænger fordelingen
Kategori "ukendt"
Kategorisk, systematisk mangler
Genererer yderligere kategorier
Forudsigelse med model
Kompleks, dyrebar søjle
Lækagerisiko, kompleksitet
Kritisk punkt: imputationsværdien bør kun beregnes ud fra træningsdataene, og den samme værdi bør anvendes på testdataene. Hvis du medtager gennemsnittet af testdataene, skaber du lækage (Enhed 10). Medianen (den midterste værdi af ordinaldata) foretrækkes ofte frem for middelværdien, fordi den er mere robust over for outliers end middelværdien.
Outliers: fejl eller reel?
En outlier kan være en af to ting: en datafejl (999 i alderskolonnen) eller en reel, men sjælden hændelse (en kundes ordre på 2 millioner USD). Det er katastrofalt at forveksle de to: slet en sand afviger, og du smider vigtig information væk; Hvis du giver slip på en fejl, vil dine gennemsnit lide. Derfor er det nødvendigt at undersøge afvigelsen først, ikke at slette den automatisk.
Almindelige detektionsmetoder: IQR-metode (interkvartilområde; værdier, der er mere end 1,5 gange forskellen mellem 25 % og 75 % kvintiler af dataene, betragtes som outliers) og z-score (antallet af standardafvigelser væk fra gennemsnittet, en værdi er; normalt en outlier, hvis den er større end 3). AI skriver koden til disse beregninger på sekunder; Men før du siger "slet", skal du kontrollere, hvad disse værdier er.
Type- og formatkonvertering: tavs fejlkilde
En af de mest hovedpine er datatypeforvirring. Hvis en "beløb"-kolonne er gemt som tekst, kan du ikke tilføje; Programmet læser forkert et tyrkisk formateret tal som "1.250,50" i stedet for "et tusinde to hundrede og halvtreds". Datoer ("01/03/2024" dag-måned eller måned-dag?), kategorier ("Mand"/"mand"/"M" er det samme?) og enheder (TL eller kuruş?) giver ukorrekte resultater. En stor del af oprydningen er at trække disse uoverensstemmelser ind i standarden: datoer i ét format, kategorier i én stavemåde, tal i én enhed.
tre minisager
Case 1 — Gennemsnitsfælden. Et hold udfyldte de 320 manglende værdier i indkomstkolonnen med gennemsnittet ($48.500). Men manglerne var systematiske: Det var lavindkomstsegmentet, der aldrig havde opgivet indkomst. Gennemsnitlig fyldning gjorde denne gruppe kunstigt rig, og kreditmodellen var forkert. Lektion: spørg "hvorfor er det tomt", før du udfylder det.
Tilfælde 2 — Outlier, der ikke bør slettes. En detailanalytiker slettede 4 enorme ordrer (1,8 millioner TL hver) i salgsdataene og troede, at de var "fejl". Det var dog reelle virksomhedsordrer og udgjorde 22 % af den samlede omsætning. Prognosemodellen efter sletning savnede fuldstændig institutionel efterspørgsel. Lektion: Undersøg afvigelsen, før du sletter den.
Tilfælde 3 — Datoformatkatastrofe. I en CSV blev datoerne blandet i både "2024-03-01" og "01.03.2024". Da koden skrevet af YZ blev parset i henhold til det første format, blev 6.400 linjer NaT som "ugyldig dato" og blev stille og roligt udelukket fra analyse. Det bemærkede analytikeren først, da antallet af linjer faldt. Lektion: Kontroller altid antallet af linjer og tomme felter efter konvertering.
Fire kopierbare skabeloner
1) Manglende værdikort:
Jeg har pandaer df. Skriv kode, der producerer en tabel, der viser antallet og procentdelen af manglende (NaN) for hver kolonne. Angiv derefter separat kolonnerne med en manglende sats på over 40 % og dem med en manglende sats under 5 %. Bare generer denne diagnosekode, ikke hvilken strategi du foreslår; Jeg vil tage beslutningen.
2) Outlier-inspektion (ikke sletning):
Skriv kode, der DETECTER (ikke sletter!) outliers for min "beløb"-kolonne ved hjælp af IQR-metoden. Læg de yderste rækker i en separat df, så jeg manuelt kan undersøge dem. Udskriv også antallet af outliers og deres andel i totalen.
3) Type/format standardisering:
Skriv kode, der standardiserer følgende kolonner:- "dato": kan være blandede formater ("2024-03-01" og "01.03.2024"); konverter dem alle til datetime, tæl de uoversættelige og rapporter (smid væk lydløst). - "gender": "Mand"/"mand"/"M" -> "M", "Female"/"female"/"F" -> "K". - "beløb": Tyrkisk formateret tekst ("1.250,50") -> decimaltal. Udskriv, hvor mange rækker der er berørt efter hver konvertering.
4) Tjek før/efter rengøring:
Skriv kode, der sammenligner df.shape, manglende antal og opsummerende statistik (middelværdi, median, min, max) for udvalgte kolonner før og efter et oprydningstrin. Formål: at se, hvad rengøring ændrer.
Svag prompt / Stærk prompt
Svag prompt:
Ryd disse data.
"Klar" er tvetydig; AI ved ikke, hvilke manglende dele der skal slettes, hvad der skal udfyldes, hvilken kolonne der skal behandles og hvordan. Resultatet: blinde, irreversible ændringer.
Kraftig prompt:
Din rolle: assistent til datarensning. df-kolonner: kunde_id (int), registreringsdato (tekst i blandet format), revenue_tl (tekst, "1.200,00"), by (tekst, inkonsekvent stavning). Regler:- Ændring af original df; Arbejd på kopien ved navn df_clean.- Konverter indkomst_tl til tal, tæl hvad der ikke kan oversættes.- Skift record_date til datetime, rapporter fejlen.- Slet ikke nogen rækker uden min godkendelse; Vis kandidaterne separat. Efter hvert trin skal du udskrive df_temiz.shape og det manglende nummer.
Her er kilden beskyttet, hver transformation tælles, sletning overlades til mennesket.
Almindelige fejl
- At udfylde hullerne uden at spørge "hvorfor er den tom?" At udfylde systematisk/signifikant mangler med middelværdien forvrænger dataene.
- Sletning af outlieren uden at undersøge den. Kassering af virkelige, men sjældne begivenheder ødelægger vigtig information.
- Beregning af polstringsværdien ud fra alle data. Inkludering af testdata skaber lækage; bare regn ud fra træning.
- Kontrollerer ikke antallet af rækker/blanketter efter konvertering. Rækker, der lydløst er NaT/NaN, er udelukket fra analyse.
- Overskrivning af de originale data. Returnering og reproducerbarhed går tabt.
Tip: Kør rensningen med en "før-efter" sammenligning. Udskriv df.shape, manglende antal og opsummerende statistikker over kritiske kolonner efter hvert trin. Så du ser med det samme, at et trin uventet ødelægger 6.000 rækker.
Sammenfattende
Rensning er den mest tidskrævende og beslutningskrævende fase af datavidenskab. Hver ændring ændrer dataene, så hver enkelt er en bevidst beslutning. For manglende værdier, spørg "hvorfor er den tom?" Gennemgå eventuelle afvigelser, før du sletter dem; Bring type og format til standard. Beregn kun fyldværdien ud fra træningsdataene, behold originalen, og spor virkningen af hvert trin ved at tælle det. AI er en enorm accelerator i denne branche, men mennesker bestemmer, hvad du renser og hvorfor.
Ansøgningsopgave
Tag (eller opret) en lille tabel og indsæt bevidst tre problemer i den: en manglende værdi-tupel, en outlier, et blandet datoformat. Anmod om diagnose og standardiseringskode fra AI med ovenstående skabeloner; sammenligne antallet af rækker og tomme felter før/efter hvert trin. Prøv at fange mindst ét "stille tab" og noter, hvordan du bemærkede det.
tjekliste
- [ ] Beholdt jeg de originale rådata og arbejdede på kopien?
- [ ] Har jeg stillet spørgsmålet "hvorfor er den tom" for hver manglende kolonne?
- [ ] Har jeg gennemgået outliers, før jeg slettede dem?
- [ ] Har jeg kun beregnet polstringsværdien ud fra træningsdata?
- [ ] Kontrollerer jeg antallet af linjer/blanketter efter hvert trin og eliminerer tavse tab?