Egység 3 / 11

Adattisztítás és előfeldolgozás: hiányzó érték, kiugró érték és típuskonverzió

Nyereség:

  • Képes megkülönböztetni a hiányzó értékek okát (véletlenszerű, szisztematikus, értelmes) és kiválasztani a megfelelő stratégiát, és kiszámítani a kitöltési értéket egyedül a képzésből
  • Képes megvizsgálni a kiugró értékeket a törlésük előtt, és különbséget tenni az adathibák és a valóban ritka események között
  • Képes megakadályozni a csendes elvesztést azáltal, hogy figyeli az egyes lépések hatását a sorok/üresek számára, miközben típus- és formátumbeli inkonzisztenciákat hoz a szabványba

Az adattudósok idejének körülbelül 60-80 százaléka a takarításra megy; Az iparban ezt félig tréfásan "data wrangling"-nak (data wrangling vagy adattisztítás) hívják. Mivel a valós adatok szinte soha nem állnak készen elemzésre: a dátumok vegyes formátumúak, a számok szövegként vannak tárolva, egyes cellák üresek, egy ügyfél háromszor jelenik meg ugyanabban a táblázatban, két különböző írásmóddal. Ebben az egységben a tisztítás három alapvető aspektusával foglalkozunk: hiányzó értékek, kiugró értékek és típus/formátum átalakítás. A mesterséges intelligencia rendkívül gyors asszisztens ebben a munkában; De Ön dönti el, hogy mit és hogyan kell tisztítani, mert minden tisztítási lehetőség megváltoztatja az elemzést.

A takarítás aranyszabálya: minden változás döntés

Egy cella törlése, a hiányzó érték kitöltése az átlaggal, a kiugró érték levágása – ezek egyike sem „semleges” művelet. Mindegyik megváltoztatja az adatokat és befolyásolja az eredményt. Tehát a tisztítás aranyszabálya: minden változást írjon a kódba, vegye figyelembe az indoklást, soha ne írja felül az eredeti adatokat. Az AI gyors tisztító kódot ad, de az Ön felelőssége, hogy megértse, mit csinál a kód; Ne futtassa anélkül, hogy ne látná, hány sor ment el, amikor azt mondja, hogy "üres sorok törlése".

Figyelem: Soha ne módosítsa az eredeti nyers adatokat. A megtisztított verziót írd egy külön fájlba/táblázatba. Így, ha hibát észlel, visszatérhet az elsőhöz, és megőrizheti a reprodukálhatóságot.

Hiányzó értékek: miért üres, mit kell tenni

A hiányzó érték (amely általában NaN - "Nem szám" néven jelenik meg a pandáknál) az, ha egy cella üres. De a rés oka meghatározza a megoldást. Három tipikus helyzet van. Véletlen hiányzik: az érzékelő egy pillanatig nem működött; Ésszerű lehet kitölteni. Hiányzik szisztematikus: az űrlapmezőt csak bizonyos ügyfeleknél kérik; A hiány itt valójában az információ. Jelentősen hiányzik: ha a "visszaküldés dátuma" üres, akkor az ügyfél nem tért vissza; Ez a hely 0-t vagy „nincs”-t jelent, nincs kitöltve.

Főbb stratégiák:

Stratégia

Mikor megfelelő?

kockázatot

Sor törlése

A hiányzók aránya nagyon alacsony (<5%) és véletlenszerű

Adatvesztés és reprezentáció

Oszlop törlése

Az oszlop nagy része üres (>60%)

információvesztés

Átlagos/medián kitöltöttség

Numerikus, véletlenszerűen hiányzik

Csökkenti a szórást és torzítja az eloszlást

"ismeretlen" kategória

Kategorikus, szisztematikus hiányzik

További kategóriákat generál

Jóslás modellel

Összetett, értékes oszlop

Szivárgási kockázat, összetettség

Kritikus pont: az imputációs értéket csak a betanítási adatokból kell kiszámítani, és ugyanazt az értéket kell alkalmazni a tesztadatokra. Ha megadja a tesztadatok átlagát, akkor szivárgást hoz létre (10. egység). A mediánt (az ordinális adatok középső értéke) gyakran előnyben részesítik az átlaggal szemben, mert robusztusabb a kiugró értékekre, mint az átlag.

Outliers: hiba vagy valós?

A kiugró érték két dolog egyike lehet: adathiba (999 a kor oszlopban) vagy valós, de ritka esemény (egy ügyfél 2 millió dolláros rendelése). A kettő összekeverése katasztrofális: töröl egy valódi kiugró értéket, és kidobja a fontos információkat; Ha elengedi a hibát, az átlagai szenvedni fognak. Ezért először a kiugrót kell megvizsgálni, nem pedig automatikusan törölni.

Elterjedt kimutatási módszerek: IQR módszer (interkvartilis tartomány; az adatok 25%-os és 75%-os kvintilisének különbségének több mint 1,5-szeresét kitevő értékek számítanak kiugró értéknek) és a z-score (az átlagtól való eltérések száma egy érték; általában kiugró érték, ha nagyobb, mint 3). Az AI másodpercek alatt írja ki a kódot ezekhez a számításokhoz; De mielőtt azt mondaná, hogy „töröl”, ellenőrizze, mik ezek az értékek.

Típus- és formátumkonverzió: csendes hibaforrás

Az egyik leginkább fejfájást az adattípus-zavar okozza. Ha egy "összeg" oszlop szövegként van tárolva, nem adhat hozzá; A program hibásan olvas be egy török ​​formátumú számot, például „1250,50” az „ezerkétszázötven” helyett. A dátumok ("01/03/2024" nap-hónap vagy hónap-nap?), a kategóriák ("Férfi"/"férfi"/"M" ugyanaz?) és az egységek (TL vagy kuruş?) csendben helytelen eredményeket adnak. A tisztítás nagy része az, hogy ezeket a következetlenségeket a szabványba húzzuk: a dátumok egy formátumba, a kategóriák egy elírásba, a számok egy egységbe.

három mini tok

1. eset – Az átlagos csapda. Egy csapat az átlaggal (48 500 USD) töltötte ki a 320 hiányzó értéket a jövedelem oszlopban. A hiányosságok azonban szisztematikusak voltak: ez az alacsony jövedelmű szegmens, amely soha nem vallott be jövedelmet. Az átlagos kitöltöttség mesterségesen gazdagította ezt a csoportot, és a hitelmodell rossz volt. Tanulság: kérdezze meg, hogy „miért üres”, mielőtt kitölti.

2. eset – Kiugró érték, amelyet nem szabad törölni. Egy kiskereskedelmi elemző 4 hatalmas (egyenként 1,8 millió TL) rendelést törölt az eladási adatokból, azt gondolva, hogy ezek "hibák". Ezek azonban valós vállalati megrendelések voltak, és a teljes forgalom 22%-át tették ki. A törlés utáni előrejelzési modell teljes mértékben figyelmen kívül hagyta az intézményi keresletet. Tanulság: vizsgálja meg a kiugró értéket, mielőtt törölné.

3. eset – Dátumformátumú katasztrófa. Egy CSV-fájlban a dátumokat a „2024-03-01” és a „2024.03.01. Amikor az YZ által írt kódot az első formátum szerint értelmezték, 6400 sor NaT lett "érvénytelen dátumként", és csendben kizárták az elemzésből. Az elemző ezt csak akkor vette észre, amikor csökkent a sorok száma. Tanulság: átalakítás után mindig ellenőrizze a sorok és üresek számát.

Négy másolható sablon

1) Hiányzó értéktérkép:

Pandáim vannak df. Írjon kódot, amely egy táblázatot állít elő, amely megmutatja a hiányzók (NaN) számát és százalékát minden oszlophoz. Ezután külön sorolja fel azokat az oszlopokat, amelyeknél a hiányzó arány meghaladja a 40%-ot, és azokat az oszlopokat, amelyeknél az arány 5% alatti. Csak generálja ezt a diagnosztikai kódot, ne azt, hogy milyen stratégiát javasol; én meghozom a döntést.

2) Kiugró ellenőrzés (nem törlés):

Írjon olyan kódot, amely az "összeg" oszlopomhoz tartozó kiugró értékeket ÉRDEKL (nem törli!) IQR módszerrel. Tedd a szélső sorokat egy külön df-be, hogy manuálisan megvizsgálhassam őket. Nyomtassa ki a kiugró értékek számát és részarányát is.

3) Típus/formátum szabványosítás:

Írjon olyan kódot, amely szabványosítja a következő oszlopokat:- "dátum": lehet vegyes formátumú ("2024-03-01" és "01.03.2024"); konvertálja mindegyiket dátumidőre, számolja meg a lefordíthatatlanokat, és jelentse (hangtalanul dobja el). - "nem": "Férfi"/"férfi"/"M" -> "M", "Nő"/"nő"/"F" -> "K". - "összeg": török ​​formátumú szöveg ("1.250,50") -> decimális szám. Nyomtassa ki, hogy az egyes konverziók után hány sort érint.

4) Tisztítás előtt/után ellenőrizze:

Írjon olyan kódot, amely összehasonlítja a df.shapet, a hiányzó számokat és a kiválasztott oszlopok összesítő statisztikáit (átlag, medián, min, max) a tisztítási lépés előtt és után. Cél: annak megtekintése, hogy a tisztítás milyen változásokat mutat.

Gyenge felszólítás / Erős felszólítás

Gyenge felszólítás:

Törölje ezeket az adatokat.

A "Clear" kétértelmű; Az AI nem tudja, milyen hiányzó részeket kell törölni, mit kell kitölteni, melyik oszlopot kell feldolgozni és hogyan. Az eredmény: vak, visszafordíthatatlan változások.

Erőteljes felszólítás:

Az Ön szerepe: adattisztító asszisztens. df oszlopok: customer_id (int), regisztrációs_dátum (vegyes formátumú szöveg), bevétel_tl (szöveg, "1200,00"), város (szöveg, következetlen helyesírás). Szabályok: - Az eredeti df megváltoztatása; Dolgozzon a df_clean nevű példányon.- Konvertálja a bevételi_tl-t számmá, számolja meg, ami nem fordítható.- Módosítsa a rekord_dátumát datetime-re, jelentse a hibát.- Ne töröljön egyetlen sort sem az én jóváhagyásom nélkül; Mutasd külön a jelölteket! Minden lépés után nyomtassa ki a df_temiz.shape fájlt és a hiányzó számot.

Itt a forrás védve van, minden átalakítás számít, a törlés az emberre van bízva.

Gyakori hibák

  • A hiányosságok pótlása a "miért üres?" A szisztematikus/jelentős hiányosságok átlaggal való kitöltése torzítja az adatokat.
  • A kiugró érték törlése vizsgálat nélkül. A valós, de ritka események elvetése megsemmisíti a fontos információkat.
  • A kitöltési érték kiszámítása az összes adatból. A vizsgálati adatok bevonása szivárgást okoz; csak számolj az edzésből.
  • Nem ellenőrzi a sorok/üres mezők számát az átalakítás után. A csendesen NaT/NaN sorokat kizárjuk az elemzésből.
  • Az eredeti adatok felülírása. A megtérülés és a reprodukálhatóság elveszett.
Tipp: Futtassa le a tisztítást "előtte-utána" összehasonlítással. Minden lépés után kinyomtathatja a df.shapet, a hiányzó számokat és a kritikus oszlopok összesítő statisztikáit. Így azonnal látja, hogy egy lépés váratlanul 6000 sort tönkretesz.

Összefoglalva

A tisztítás az adattudomány legidő- és döntésigényesebb szakasza. Minden változtatás megváltoztatja az adatokat, így mindegyik tudatos döntés. Hiányzó értékek esetén kérdezze meg a "miért üres?" Tekintse át a kiugró értékeket, mielőtt törli őket; A típust és a formátumot állítsa szabványossá. Számítsa ki a kitöltési értéket csak a képzési adatokból, tartsa meg az eredetit, és kövesse nyomon az egyes lépések hatását számlálással. A mesterséges intelligencia óriási gyorsító ebben az üzletben, de az emberek döntik el, hogy mit és miért takarítanak meg.

Pályázati feladat

Vegyünk (vagy hozzunk létre) egy kis táblázatot, és szándékosan illesszünk be három problémát: egy hiányzó értéksor, egy kiugró érték, egy vegyes dátumformátum. Kérjen diagnózist és szabványosítási kódot az MI-től a fenti sablonokkal; Hasonlítsa össze a sorok és az üres helyek számát az egyes lépések előtt/után. Próbálj meg elkapni legalább egy „néma veszteséget”, és jegyezd meg, hogyan vetted észre.

ellenőrző lista

  • [ ] Megőriztem az eredeti nyers adatokat, és dolgoztam a másolaton?
  • [ ] Feltettem a „miért üres” kérdést minden hiányzó oszlopnál?
  • [ ] Átnéztem a kiugró értékeket a törlés előtt?
  • [ ] Csak edzésadatokból számítottam ki a kitöltési értéket?
  • [ ] Minden lépés után ellenőrzöm a sorok/üresek számát, és kiküszöbölöm a csendes veszteséget?