Jednotka 3 / 11

Čištění a předběžné zpracování dat: Chybějící hodnota, odlehlá hodnota a konverze typu

zisky:

  • Schopnost rozlišit příčinu chybějících hodnot (náhodné, systematické, smysluplné) a zvolit vhodnou strategii a vypočítat hodnotu naplnění pouze z tréninku
  • Schopnost prozkoumat odlehlé hodnoty před jejich odstraněním a rozlišit mezi chybou dat a skutečnou vzácnou událostí
  • Schopnost zabránit tiché ztrátě sledováním dopadu každého kroku na počet řádků/prázdných míst, přičemž nesrovnalosti typu a formátu jsou standardem

Přibližně 60-80 procent času datového vědce připadá na čištění; V branži se tomu napůl žertovně říká „data wrangling“ (data wrangling nebo data cleaning). Protože data z reálného světa nejsou téměř nikdy připravena k analýze: data jsou ve smíšených formátech, čísla jsou uložena jako text, některé buňky jsou prázdné, zákazník se ve stejné tabulce objeví třikrát se dvěma různými pravopisy. V této jednotce pokryjeme tři základní aspekty čištění: chybějící hodnoty, odlehlé hodnoty a převod typu/formát. Umělá inteligence je v této práci mimořádně rychlým pomocníkem; Ale jste to vy, kdo rozhoduje o tom, co a jak čistit, protože každá volba čištění mění analýzu.

Zlaté pravidlo úklidu: každá změna je rozhodnutí

Smazání buňky, doplnění chybějící hodnoty střední hodnotou, oříznutí odlehlé hodnoty – žádná z těchto operací není „neutrální“. Každá změní data a ovlivní výsledek. Takže zlaté pravidlo čištění: zapište každou změnu do kódu, poznamenejte si zdůvodnění, nikdy nepřepisujte původní data. Umělá inteligence vám poskytne kód pro rychlé vyčištění, ale je vaší odpovědností pochopit, co tento kód dělá; Nespouštějte jej, aniž byste viděli, kolik řádků je pryč, když řeknete „smazat prázdné řádky“.

Upozornění: Nikdy neupravujte původní nezpracovaná data. Zapište vyčištěnou verzi do samostatného souboru/tabulky. Tímto způsobem, pokud zjistíte chybu, můžete se vrátit na začátek a zachovat reprodukovatelnost.

Chybějící hodnoty: proč je prázdný, co dělat

Chybějící hodnota (v pandách se obvykle objevuje jako NaN — „Not a Number“) je, když je buňka prázdná. Ale příčina mezery určuje řešení. Existují tři typické situace. Náhodně chybí: snímač chvíli nefungoval; Může být rozumné jej vyplnit. Systematické chybí: pole formuláře je požadováno pouze pro určité zákazníky; Mezera je zde ve skutečnosti informace. Významně chybí: pokud je „datum vrácení“ prázdné, zákazník se nevrátil; Tato mezera znamená 0 ​​nebo "žádná", není vyplněna.

Hlavní strategie:

strategie

Kdy je to vhodné?

riziko

Smazat řádek

Četnost chybějících údajů je velmi nízká (<5 %) a náhodná

Ztráta dat a reprezentace

Smazat sloupec

Většina sloupce je prázdná (> 60 %)

ztráta informací

Průměrná/střední výplň

Číselné, chybí náhodně

Snižuje rozptyl a narušuje rozložení

Kategorie "neznámé"

Chybí kategorické, systematické

Generuje další kategorie

Predikce s modelem

Složitý, vzácný sloup

Riziko úniku, složitost

Kritický bod: imputační hodnota by měla být vypočítána pouze z tréninkových dat a stejná hodnota by měla být aplikována na testovací data. Pokud zahrnete průměr testovacích dat, vytvoříte únik (jednotka 10). Medián (střední hodnota ordinálních dat) je často preferován před průměrem, protože je robustnější vůči odlehlým hodnotám než průměr.

Odlehlé hodnoty: chyba nebo skutečnost?

Odlehlá hodnota může být jedna ze dvou věcí: chyba dat (999 ve sloupci věk) nebo skutečná, ale vzácná událost (objednávka zákazníka ve výši 2 milionů USD). Záměna těchto dvou hodnot je katastrofální: odstraňte skutečnou odlehlou hodnotu a zahodíte důležité informace; Pokud pustíte chybu, vaše průměry utrpí. Proto je nutné nejprve prozkoumat odlehlou hodnotu, nikoli ji automaticky mazat.

Běžné metody detekce: metoda IQR (mezikvartilní rozsah; hodnoty, které jsou více než 1,5násobkem rozdílu mezi 25% a 75% kvintily dat, jsou považovány za odlehlé hodnoty) a z-skóre (počet standardních odchylek od střední hodnoty; obvykle odlehlá hodnota, pokud je větší než 3). AI zapíše kód pro tyto výpočty během několika sekund; Než však řeknete „smazat“, zkontrolujte, jaké jsou tyto hodnoty.

Konverze typu a formátu: tichý zdroj chyb

Jednou z největších bolestí hlavy je záměna datových typů. Pokud je sloupec "částka" uložen jako text, nelze jej přidat; Program nesprávně přečte číslo v tureckém formátu, například „1 250,50“ místo „tisíc dvě stě padesát“. Data ("01/03/2024" den-měsíc nebo měsíc-den?), kategorie ("Muž"/"muž"/"M" jsou to samé?) a jednotky (TL nebo kuruş?) tiše poskytují nesprávné výsledky. Velkou částí úklidu je zatažení těchto nesrovnalostí do normy: data do jednoho formátu, kategorie do jednoho pravopisu, čísla do jednoho celku.

tři mini pouzdra

Případ 1 – Průměrná past. Tým vyplnil 320 chybějících hodnot ve sloupci příjmů průměrem (48 500 $). Nedostatky však byly systematické: šlo o segment s nízkými příjmy, který nikdy nepřiznal příjem. Průměrné plnění tuto skupinu uměle obohatilo a kreditní model byl špatný. Lekce: před vyplněním se zeptejte „proč je to prázdné“.

Případ 2 – Odlehlá hodnota, která by neměla být vymazána. Maloobchodní analytik vymazal 4 obrovské objednávky (každá 1,8 milionu TL) v prodejních datech a myslel si, že to byly „chyby“. Jednalo se však o skutečné podnikové zakázky a činily 22 % z celkového obratu. Model prognózy po vypuštění zcela minul institucionální poptávku. Lekce: prozkoumejte odlehlou hodnotu, než ji smažete.

Případ 3 – Katastrofa formátu data. V CSV byla data smíchána do „2024-03-01“ a „01.03.2024“. Když byl kód napsaný YZ analyzován podle prvního formátu, 6 400 řádků se stalo NaT jako "neplatné datum" a bylo tiše vyloučeno z analýzy. Analytik si toho všiml, až když se počet řádků snížil. Poučení: po převodu vždy zkontrolujte počet řádků a mezer.

Čtyři kopírovatelné šablony

1) Chybějící hodnotová mapa:

Mám pandy df. Napište kód, který vytvoří tabulku zobrazující počet a procento chybějících (NaN) pro každý sloupec. Poté samostatně vypište sloupce s chybou přesahující 40 % a sloupce s chybějící mírou pod 5 %. Vygenerujte pouze tento diagnostický kód, nikoli strategii, kterou navrhujete; Učiním rozhodnutí.

2) Kontrola odlehlých hodnot (nevymazáno):

Napište kód, který ZJIŠŤUJE (nikoli smaže!) odlehlé hodnoty pro můj sloupec „částka“ pomocí metody IQR. Umístěte odlehlé řádky do samostatného df, abych je mohl ručně prozkoumat. Vytiskněte také počet odlehlých hodnot a jejich podíl na součtu.

3) Standardizace typu/formátu:

Napište kód, který standardizuje následující sloupce:- "datum": může mít různé formáty ("2024-03-01" a "01.03.2024"); převeďte je všechny na datum a čas, spočítejte ty nepřeložitelné a nahlaste (tiše vyhoďte). - "gender": "Muž"/"muž"/"M" -> "M", "Žena"/"žena"/"F" -> "K". - "částka": turecký formátovaný text ("1.250,50") -> desetinné číslo. Vytiskněte, kolik řádků je ovlivněno po každém převodu.

4) Zkontrolujte před/po čištění:

Napište kód, který porovná df.shape, chybějící počet a souhrnné statistiky (průměr, medián, min, max) vybraných sloupců před a po kroku čištění. Účel: zjistit, co se čištěním změní.

Slabá výzva / Silná výzva

Slabá výzva:

Vymažte tato data.

"Jasný" je nejednoznačný; AI neví, jaké chybějící části by se měly smazat, co vyplnit, který sloupec zpracovat a jak. Výsledek: slepé, nevratné změny.

Výkonná výzva:

Vaše role: asistent čištění dat. df sloupce: customer_id (int), registration_date (smíšený formát textu), income_tl (text, "1 200,00"), město (text, nekonzistentní pravopis). Pravidla:- Změna původního df; Pracujte na kopii s názvem df_clean.- Převeďte příjem_tl na číslo, počítejte, co nelze přeložit.- Změňte datum záznamu na datum a nahlaste chybu.- Nemažte žádné řádky bez mého souhlasu; Ukažte kandidáty samostatně. Po každém kroku vytiskněte df_temiz.shape a chybějící číslo.

Zde je zdroj chráněn, každá transformace se počítá, smazání je ponecháno na člověku.

Časté chyby

  • Vyplňování mezer, aniž byste se ptali „proč je prázdný?“ Doplnění systematických/významných chybějících průměrem zkresluje údaje.
  • Odstranění odlehlé hodnoty bez jejího prozkoumání. Vyřazení skutečných, ale vzácných událostí ničí důležité informace.
  • Výpočet hodnoty výplně ze všech dat. Zahrnutí testovacích dat způsobí únik; stačí počítat z tréninku.
  • Nekontroluje se počet řádků/prázdných míst po převodu. Řádky, které jsou tiše NaT/NaN, jsou z analýzy vyloučeny.
  • Přepsání původních dat. Návratnost a reprodukovatelnost jsou ztraceny.
Tip: Proveďte čištění s porovnáním „před-po“. Po každém kroku vytiskněte df.shape, chybějící počet a souhrnné statistiky kritických sloupců. Takže hned vidíte, že jeden krok nečekaně zničí 6000 řádků.

V souhrnu

Čištění je časově nejnáročnější a nejvíce rozhodnutí vyžadující fázi datové vědy. Každá změna mění data, takže každá je vědomým rozhodnutím. U chybějících hodnot se zeptejte „proč je prázdný?“ Zkontrolujte všechny odlehlé hodnoty před jejich odstraněním; Uveďte typ a formát na standardní. Vypočítejte hodnotu plnění pouze z tréninkových dat, ponechte si originál a sledujte dopad každého kroku jeho počítáním. Umělá inteligence je v tomto oboru obrovským akcelerátorem, ale lidé rozhodují o tom, co budete čistit a proč.

Aplikační úkol

Vezměte (nebo vytvořte) malou tabulku a schválně do ní vložte tři problémy: chybějící n-tici hodnot, odlehlou hodnotu, smíšený formát data. Vyžádejte si diagnostiku a standardizační kód od AI pomocí výše uvedených šablon; porovnat počet řádků a mezer před/po každém kroku. Pokuste se zachytit alespoň jednu „tichou ztrátu“ a poznamenejte si, jak jste si toho všimli.

kontrolní seznam

  • [ ] Ponechal jsem původní nezpracovaná data a pracoval jsem na kopii?
  • [ ] Položil jsem otázku „proč je prázdný“ pro každý chybějící sloupec?
  • [ ] Zkontroloval jsem odlehlé hodnoty před jejich odstraněním?
  • [ ] Vypočítal jsem hodnotu výplně pouze z tréninkových dat?
  • [ ] Kontroluji počet řádků/prázdných míst po každém kroku a eliminuji tichou ztrátu?