Dobički:
- Sposobnost razlikovanja vzroka manjkajočih vrednosti (naključnih, sistematičnih, pomembnih) in izbire ustrezne strategije ter izračuna vrednosti polnjenja samo z usposabljanjem
- Sposobnost pregledati odstopanja, preden jih izbrišete, in razlikovati med podatkovno napako in resničnim redkim dogodkom
- Sposobnost preprečevanja tihe izgube s spremljanjem vpliva vsakega koraka na število vrstic/praznin, medtem ko se nedoslednosti vrste in formata prilagodijo standardu
Približno 60–80 odstotkov časa podatkovnega znanstvenika porabi za čiščenje; V industriji temu napol v šali pravijo »data wrangling« (prepir podatkov ali čiščenje podatkov). Ker podatki iz resničnega sveta skoraj nikoli niso pripravljeni za analizo: datumi so v mešanih oblikah, številke so shranjene kot besedilo, nekatere celice so prazne, stranka se trikrat pojavi v isti tabeli z dvema različnima zapisoma. V tej enoti bomo obravnavali tri osnovne vidike čiščenja: manjkajoče vrednosti, izstopajoče vrednosti in pretvorbo tipa/formata. Umetna inteligenca je izjemno hiter pomočnik pri tem delu; Toda vi se odločite, kaj boste čistili in kako, saj vsaka izbira čiščenja spremeni analizo.
Zlato pravilo čiščenja: vsaka sprememba je odločitev
Brisanje celice, izpolnjevanje manjkajoče vrednosti s srednjo vrednostjo, obrezovanje izstopajoče vrednosti – nobena od teh operacij ni »nevtralna«. Vsak spremeni podatke in vpliva na rezultat. Torej zlato pravilo čiščenja: zapišite vsako spremembo v kodo, upoštevajte utemeljitev, nikoli ne prepišite izvirnih podatkov. AI vam omogoča hitro čiščenje kode, vendar je vaša odgovornost, da razumete, kaj ta koda počne; Ne zaženite ga, ne da bi videli, koliko vrstic je izginilo, ko rečete "izbriši prazne vrstice".
Pozor: Nikoli ne spreminjajte izvirnih neobdelanih podatkov. Očiščeno različico zapišite v ločeno datoteko/tabelo. Tako se lahko, če opazite napako, vrnete na začetek in ohranite ponovljivost.
Manjkajoče vrednosti: zakaj je prazno, kaj storiti
Manjkajoča vrednost (običajno prikazana kot NaN — »Ni številka« v pandah) je, ko je celica prazna. Toda vzrok vrzeli določa rešitev. Obstajajo tri tipične situacije. Naključno manjka: senzor za trenutek ni deloval; Morda bi ga bilo smiselno izpolniti. Sistematično manjka: polje obrazca se zahteva samo za določene stranke; Vrzel tukaj je pravzaprav informacija. Pomembno manjka: če je "datum vračila" prazen, stranka ni vrnila; Ta prostor pomeni 0 ali "brez", ni zapolnjen.
Glavne strategije:
Strategija
Kdaj je primerno?
tveganje
Izbriši vrstico
Stopnja manjkajočih je zelo nizka (<5 %) in naključna
Izguba podatkov in reprezentacije
Izbriši stolpec
Večina stolpca je prazna (>60%)
izguba informacij
Povprečna/srednja zapolnjenost
Številka, naključno manjka
Zmanjša varianco in popači porazdelitev
Kategorija "neznano"
Kategorično, sistematično manjka
Ustvari dodatne kategorije
Napoved z modelom
Kompleksen, dragocen stolpec
Tveganje puščanja, zapletenost
Kritična točka: imputirano vrednost je treba izračunati samo iz podatkov o usposabljanju in isto vrednost je treba uporabiti za testne podatke. Če vključite povprečje testnih podatkov, ustvarite uhajanje (enota 10). Mediana (srednja vrednost ordinalnih podatkov) ima pogosto prednost pred povprečjem, ker je robustnejša glede izstopajočih vrednosti kot povprečje.
Izstopanja: napaka ali resničnost?
Izjemna vrednost je lahko ena od dveh stvari: podatkovna napaka (999 v stolpcu starosti) ali resničen, a redek dogodek (strankino naročilo za 2 milijona USD). Zamenjati to dvoje je katastrofalno: izbrišite resnični izstop in zavrzite pomembne informacije; Če opustite napako, bodo vaša povprečja trpela. Zato je treba najprej pregledati odstopanje, ne pa ga samodejno izbrisati.
Pogoste metode odkrivanja: metoda IQR (interkvartilni razpon; vrednosti, ki so več kot 1,5-kratna razlika med 25 % in 75 % kvintili podatkov, se štejejo za izstopajoče vrednosti) in z-rezultat (število standardnih odstopanj od povprečja, ki je vrednost; običajno izstopajoče vrednosti, če je večje od 3). AI napiše kodo za te izračune v nekaj sekundah; Toda preden rečete "izbriši", preverite, katere so te vrednosti.
Pretvorba vrste in formata: tihi vir napak
Eden največjih preglavic je zmeda podatkovnih vrst. Če je stolpec "znesek" shranjen kot besedilo, ne morete dodati; Program nepravilno prebere turško oblikovano število, kot je "1.250,50" namesto "tisoč dvesto petdeset". Datumi ("01/03/2024" dan-mesec ali mesec-dan?), kategorije ("Moški"/"moški"/"M" so ista stvar?) in enote (TL ali kuruş?) tiho dajejo napačne rezultate. Velik del čiščenja je povlečenje teh nedoslednosti v standard: datume v eno obliko, kategorije v eno črkovanje, številke v eno enoto.
trije mini kovčki
Primer 1 – Povprečna past. Ekipa je izpolnila 320 manjkajočih vrednosti v stolpcu dohodka s povprečjem (48.500 $). Toda pomanjkljivosti so bile sistematične: to je bil segment z nizkimi dohodki, ki nikoli ni prijavil dohodkov. Zaradi povprečne polnosti je bila ta skupina umetno bogata, kreditni model pa je bil napačen. Nauk: vprašajte "zakaj je prazno", preden ga izpolnite.
2. primer – izstop, ki ga ne smete izbrisati. Maloprodajni analitik je izbrisal 4 ogromna naročila (1,8 milijona TL vsako) v podatkih o prodaji, saj je mislil, da so "napake". Vendar so bila to prava podjetja in so predstavljala 22 % celotnega prometa. Model napovedi po izbrisu je popolnoma zgrešil institucionalno povpraševanje. Lekcija: preglejte izstopajočo vrednost, preden jo izbrišete.
Primer 3 – Katastrofa formata datuma. V datoteki CSV so bili datumi pomešani v »2024-03-01« in »01.03.2024«. Ko je bila koda, ki jo je napisal YZ, razčlenjena v skladu s prvim formatom, je 6400 vrstic postalo NaT kot "neveljaven datum" in je bilo tiho izključenih iz analize. Analitik je to opazil šele, ko se je število vrstic zmanjšalo. Lekcija: po pretvorbi vedno preverite število vrstic in presledkov.
Štiri predloge za kopiranje
1) Manjkajoč zemljevid vrednosti:
Imam pande df. Napišite kodo, ki ustvari tabelo, ki prikazuje število in odstotek manjkajočih (NaN) za vsak stolpec. Nato ločeno navedite stolpce z manjkajočo stopnjo, ki presega 40 %, in tiste z manjkajočo stopnjo pod 5 %. Samo ustvarite to kodo diagnoze, ne pa strategije, ki jo predlagate; Jaz se bom odločil.
2) Izjemni pregled (brez brisanja):
Napišite kodo, ki ZAZNA (ne izbriše!) odstopanja za moj stolpec "znesek" z uporabo metode IQR. Zunanje vrstice postavite v ločen df, da jih lahko ročno pregledam. Izpišite tudi število izstopajočih vrednosti in njihov delež v skupnem seštevku.
3) Standardizacija tipa/formata:
Napišite kodo, ki standardizira naslednje stolpce:- "datum": lahko sta v mešani obliki ("2024-03-01" in "01.03.2024"); vse jih pretvorite v datum in čas, preštejte neprevedljive in poročajte (tiho zavrzite). - "spol": "Moški"/"moški"/"M" -> "M", "Ženski"/"ženski"/"Ž" -> "K". - "znesek": turško oblikovano besedilo ("1.250,50") -> decimalno število. Natisnite, koliko vrstic je prizadetih po vsaki pretvorbi.
4) Preverite pred/po čiščenju:
Napišite kodo, ki primerja df.shape, manjkajoče število in statistiko povzetka (povprečje, mediana, min, maks) izbranih stolpcev pred in po koraku čiščenja. Namen: videti, kaj čiščenje spremeni.
Šibek poziv/močan poziv
Šibek poziv:
Počisti te podatke.
"Jasno" je dvoumno; AI ne ve, katere manjkajoče dele je treba izbrisati, kaj izpolniti, kateri stolpec obdelati in kako. Rezultat: slepe, nepopravljive spremembe.
Močan poziv:
Vaša vloga: pomočnik pri čiščenju podatkov. df stolpci: customer_id (int), registration_date (besedilo v mešani obliki), prihodek_tl (besedilo, "1.200,00"), mesto (besedilo, nedosledno črkovanje). Pravila:- Spreminjanje izvirnega df; Delajte na kopiji z imenom df_clean.- Pretvorite dohodek_tl v število, preštejte tisto, česar ni mogoče prevesti.- Spremenite record_date v datetime, prijavite napako.- Ne izbrišite nobene vrstice brez moje odobritve; Pokažite kandidate ločeno. Po vsakem koraku natisnite df_temiz.shape in manjkajočo številko.
Tukaj je vir zaščiten, vsaka transformacija šteje, brisanje je prepuščeno človeku.
Pogoste napake
- Zapolnjevanje vrzeli brez vprašanja "zakaj je prazno?" Zapolnjevanje sistematičnih/pomembnih manjkajočih s srednjo vrednostjo popači podatke.
- Brisanje odstopanja, ne da bi ga pregledali. Zavrženje resničnih, a redkih dogodkov uniči pomembne informacije.
- Izračun vrednosti zapolnitve iz vseh podatkov. Vključitev testnih podatkov povzroči uhajanje; samo izračunaj iz treninga.
- Ne preverjam števila vrstic/praznin po pretvorbi. Vrstice, ki so tiho NaT/NaN, so izključene iz analize.
- Prepisovanje izvirnih podatkov. Povratnost in ponovljivost sta izgubljena.
Namig: zaženite čiščenje s primerjavo "prej-potem". Natisnite df.shape, manjkajoče število in statistiko povzetka kritičnih stolpcev po vsakem koraku. Tako takoj vidite, da en korak nepričakovano uniči 6000 vrstic.
Če povzamem
Čiščenje je najbolj dolgotrajna in odločitev zahteva faza podatkovne znanosti. Vsaka sprememba spremeni podatke, zato je vsaka zavestna odločitev. Za manjkajoče vrednosti vprašajte "zakaj je prazno?" Preglejte morebitne izstopajoče vrednosti, preden jih izbrišete; Vrsto in obliko prilagodite standardu. Izračunajte vrednost polnjenja samo iz podatkov o vadbi, obdržite izvirnik in sledite vplivu vsakega koraka s štetjem. Umetna inteligenca je izjemen pospeševalnik v tem poslu, vendar ljudje odločajo, kaj čistite in zakaj.
Aplikacijska naloga
Vzemite (ali ustvarite) majhno tabelo in vanjo namerno vstavite tri težave: manjkajočo torko vrednosti, izstopajočo vrednost, mešano obliko datuma. Zahtevajte kodo za diagnozo in standardizacijo od AI z zgornjimi predlogami; primerjajte število vrstic in presledkov pred/po vsakem koraku. Poskusite ujeti vsaj eno "tiho izgubo" in zabeležite, kako ste jo opazili.
kontrolni seznam
- [ ] Ali sem obdržal izvirne neobdelane podatke in delal na kopiji?
- [ ] Ali sem za vsak manjkajoči stolpec postavil vprašanje "zakaj je prazen"?
- [ ] Ali sem pregledal odstopanja, preden sem jih izbrisal?
- [ ] Ali sem izračunal vrednost oblazinjenja samo iz podatkov o usposabljanju?
- [ ] Ali preverjam število vrstic/praznin po vsakem koraku in odpravljam tiho izgubo?