Vienība 2 / 11

Datu tīrīšana un sagatavošana: trūkst datu, novirzes un kodēšana

Ieguvumi:

  • Spēja atpazīt trūkstošos datu tipus (MCAR/MAR/MNAR), novirzes un kodēšanas kļūdas un izmantot AI ar pareiziem datiem, lai izveidotu tīrīšanas kodu un diagnostiku
  • Spēja redzēt, kā katrs mākslīgā intelekta ierosinātais tīrīšanas solis (dzēšana, piešķiršana, pārveidošana) ietekmēs analīzes rezultātu un izveido atgriezenisku un dokumentētu darbplūsmu
  • Uzturot, ka tīrīšanas lēmumi ir balstīti uz zināšanām par procesu, kas ģenerē datus, un ka mākslīgais intelekts ir uzraudzīts palīgs, nevis akls automāts

Katrs pieredzējis analītiķis zina vienu patiesību: empīriskā projekta laikā lielākoties nav modelēšana, bet gan datu tīrīšana (darbs, kurā tiek labotas kļūdas, izlaidumi un neatbilstības datos un sagatavoti analīzei). Aptuveni 70–80% laika tiek veltīti datu izpratnei, tīrīšanai un pārveidošanai; tikai 20-30% paliek faktiskajai analīzei. Šajā nodaļā mēs soli pa solim redzēsim, kā mākslīgais intelekts (AI) atvieglo šo smago slogu, taču kādi lēmumi joprojām ir jāpieņem jums un kāpēc.

Vispirms liksim divus pamata faktus. Pirmkārt, tīrīšanas lēmumi ir balstīti uz jūsu zināšanām par procesu, kas rada datus: tikai jūs zināt, kāpēc trūkst vērtības, kāpēc skaitlis ir pārāk liels. AI neredz datus, nezina kontekstu; Raksta kodu, nepieņem lēmumus. Otrkārt, katrs tīrīšanas posms var mainīt analīzes rezultātu. Izņemot izņēmumu, koeficientu var apgriezt; Aizpildot trūkstošo ar vidējo, var mākslīgi samazināt dispersiju. Tāpēc tīrīšanai ir jābūt atgriezeniskai un dokumentētai: nekad nepieskarieties neapstrādātajiem datiem, veiciet katru koda darbību, reģistrējiet katras darbības ietekmi.

Soli pa solim tīrīšanas darbplūsma

1. Zināt datus. Vispirms skatiet struktūru: rindu (novērojumu) un kolonnu (mainīgo) skaits, katra mainīgā veids (ciparu, kategorisks, datums), statistikas kopsavilkums, trūkstošo skaits. Jūs varat lūgt AI šo "datu profila" kodu; Bet jūs izlasiet izvadi un uzdodat tādus jautājumus kā "kāpēc šis mainīgais nāca kā teksts?"

2. Izprast un klasificēt trūkstošos datus. Trūkstošie dati ir sadalīti trīs veidos. MCAR (Missing Completely At Random): pazudis nav nekā dēļ, piemēram, nejauši sabojājies sensors. MAR (Missing At Random): trūkums ir atkarīgs no citiem novērotajiem mainīgajiem, piemēram, vecāki cilvēki biežāk atstāj tukšu jautājumu, bet jūs zināt vecumu. MNAR (Missing Not At Random): pazušana ir atkarīga no pašas nenovērotās vērtības, piemēram, augsti pelnošie neziņo par saviem ienākumiem. Šī atšķirība ir būtiska, jo tā nosaka risinājuma metodi, un AI nevar to izlemt jūsu vietā.

3. Tikt galā ar trūkumu. Iespējas: sarakstveida dzēšana, vidējā/vidējā imputācija, uz modeli balstīta daudzkārtēja imputācija. Dzēšana MCAR ir salīdzinoši droša, taču samazina izlases lielumu. Vairāku uzdevumu piešķiršana ir piemērotāka MAR. Neviena vienkārša metode negarantē objektīvu MNAR; Trūkuma mehānisms ir jāmodelē vai vismaz jāveic jutīguma analīze. Vidēja aizpildīšana ir vienkārša, bet bīstama: tā samazina dispersiju, vājina attiecības un slēpj nenoteiktību.

4. Pārbaudiet novirzes. Ārējais rādītājs ir novērojums, kas atrodas ļoti tālu no citiem. Atdaliet divus jautājumus: vai tā ir kļūda (datu ievadē bija rakstīts 999 gadu vecums) vai arī tā ir reāla, bet neparasta vērtība (miljardiera ienākumi)? Labot kļūdas; Neizdzēsiet patiesās novirzes, jo tās atspoguļo datus. Izdzēšot nobīdi “jo tas traucē”, tiek novirzīti dati uz rezultātu.

5. Kodēšana un konsekvence. Standartizējiet kategorijas ("Vīrietis", "Vīrietis", "E" viss vienā kodā), apvienojiet datumus vienā formātā, vienības vienā mērogā, atklājiet dublētās rindas. Šis ir vismazāk riskants posms, kurā AI palīdz vislabāk.

6. Dokumentējiet un iesaldējiet. Ierakstiet katru darbību ar kodu un komentāru rindiņu, atsevišķi saglabājot neapstrādātos un notīrītos datus. Tātad, kad tiesnesis jautā: "kāpēc šie novērojumi tika atcelti?" jums ir gatava atbilde.

Uzmanību: nepieņemiet tīrīšanas lēmumus, pamatojoties uz rezultātiem. Rindas dzēšana ar uzrakstu "Kad jūs izdzēšat šo rindiņu, koeficients kļūst nozīmīgs" ir vismānīgākais p-uzlaušanas veids, ko mēs redzēsim nākamajā vienībā.

Salīdzinājuma tabula: trūkst datu metožu

Metode

Kad tas ir piemērots?

risku

AI loma

Dzēst rindu

MCAR, zems trūkstošais rādītājs

Izlase kļūst mazāka, novirze MAR/MNAR

Uzraksta kodu; jūs izlemjat

Vidējā/vidējā piešķiršana

Ātra sākotnējā analīze

Samazina dispersiju, slēpj attiecības

Tas ir vienkārši, bet neiesaka; vajadzētu brīdināt

Vairāki uzdevumi (MI)

MAR, svarīgi mainīgie

Ja tas nav pareizi instalēts, tas būs maldinošs

Iesaka kodu un iepakojumu (pelēm)

Mehānismu modelēšana

MNAR

Sarežģīts, pieņēmumu ietilpīgs

Tikai melnraksts; nepieciešams eksperts

Četras kopējamas uzvednes

1. Datu profilēšana:

Jūsu loma: datu tīrīšanas palīgs. Es nedalos ar datiem, es gribu R kodu. Man ir datu rāmis ar nosaukumu 'digit'; mainīgie: id, vecums (skaitlis), ienākumi (skaitliski), izglītība (kategoriska), reģions (kategorisks), datums (datums). Uzdevums: uzrakstiet kodu, kas rada veidu, trūkstošo skaitu un ātrumu katram mainīgajam, kopsavilkuma statistiku skaitliskiem un biežuma tabulu kategoriskiem. Pievienojiet komentāra rindiņu.

2. Trūkstošo datu diagnostika:

Uzrakstiet kodu, kas pārbauda iepriekš minēto "ciparu" datu trūkstošo modeli: - katra mainīgā lieluma trūkstošo koeficientu, - vienkāršu tabulu/grafiku, kas parāda iztrūkuma saistību ar citiem mainīgajiem. Es apskatīšu koda izvadi un atšķiršu MCAR/MAR/MNAR; Jūs vienkārši izveidojat diagnostikas rīku, NEPIEŅEMIET piešķiršanas metodi.

3. Ārējā pārbaude (nav dzēšana):

Uzrakstiet kodu mainīgajam 'ienākumam', kas pārbauda novirzes BEZ DZĒSŠANAS: boxplot, IQR balstītas robežas un tabula, kurā uzskaitīti novirzes novērojumi + vērtības. Es paskatīšos, vai tās ir kļūdas vai patiesas. Pievienojiet automātisku dzēšanu.

4. Kodēšanas standartizācija:

Mainīgajā "izglītība" vērtības tiek rakstītas jauktas: "Pamatskola", "Pamatskola", "PRIMĀRA", "Vidusskola", "vidusskola", "Universitāte", "universitāte". Uzrakstiet R kodu, kas tos pārkodē konsekventās kategorijās; Skaidri parādiet kartēšanas tabulu, lai es varētu apstiprināt katru reklāmguvumu. Iestatiet vērtību, kuru neatpazīstat, uz "UNKNOWN".

Vāja uzvedne / spēcīga uzvedne

Vāja uzvedne:

Notīriet datus, aizpildiet nepilnības, izmetiet novirzes.

Šī prasība ir bīstama: tā piešķir AI aklu autoritāti. Kāda veida trūkst, kāds pildījums, kāda pretrunīga patiesība - nekas no tā nav skaidrs. Rezultāts var būt slepeni neobjektīva datu kopa.

Spēcīga uzvedne:

Jūsu loma: uzkopšanas palīgs, jūs neesat lēmumu pieņēmējs. Veiciet soli pa solim un ierakstiet kodu, kas ziņo par KATRA soļa ietekmi: 1) parādiet trūkstošo modeli (NEDZĒSĪT/AIZPILDĪT), 2) uzskaitiet izņēmuma kandidātus (NEDzēš), 3) izlabojiet kategoriju neatbilstības kartēšanas tabulā. Pēc katras darbības izdrukājiet rindu skaitu un statistikas kopsavilkumu, lai varētu redzēt un apstiprināt izmaiņas. Automātiska piešķiršanas/dzēšanas ievietošana.

Atšķirība ir skaidra: spēcīga griba pozicionē AI kā uzraudzītu palīgu, veicot atgriezeniskas un dokumentētas darbības.

trīs mini futrāļi

1. gadījums — vidējais uzdevuma slazds. Viena analītiķa ienākumu dati par 5000 cilvēkiem trūka 18%. Viņš teica AI "aizpildīt nepilnības"; AI vidēji noteica tos visus. Rezultāts: ienākumu dispersija samazinājās par 22%, un izglītības un ienākumu attiecības koeficients izrādījās vājāks nekā tas bija. Pareizs veids: trūkums bija MAR (izglītības dēļ), bija jāaizpilda ar vairākkārtēju uzdevumu (pelēm). Nodarbība: uzpildes metode ir atkarīga no mehānisma.

2. gadījums — izņēmuma tīrīšana apvērš konstatējumu. Viena uzņēmuma datos bija 3 ļoti lieli uzņēmumi (0,6% no kopējā novērojuma). Tie tika izdzēsti ar AI "tīrīšanas" ieteikumu; Apjomradītu ietaupījumu koeficients kļuva no pozitīva uz negatīvu. Tomēr šie 3 uzņēmumi bija reāli un svarīga nozares daļa. Pareizais veids bija ziņojuma sniegšana ar pilnu un stabilu aprēķinu, nevis dzēšanu. Mācība: patiesas novirzes ir dati, nevis troksnis.

3. gadījums — klusās kodēšanas kļūda. Vienā panelī datuma mainīgais bija divos dažādos formātos ("2020-03-01" un "01/03/2020"). Kad AI radītais kombinācijas kods tos sajauca ar dažādām vērtībām, 1400 novērojumi nesakrita, un pieauguma tempi kļuva smieklīgi. Tam nebūtu nozīmes, ja analītiķis nepārbaudītu rindu skaitu. Nodarbība: novērojumu skaitīšana un saprāta pārbaude pēc katra soļa ir obligāta.

Biežas kļūdas

  • Akli aizpildot robu ar vidējo. Tas samazina dispersiju, slēpj nenoteiktību un rada MAR/MNAR novirzes. Vispirms klasificējiet mehānismu.
  • Izņēmuma dzēšana "jo tas traucē". Patiesas novirzes atspoguļo datus; dzēšana ir rezultāta saliekšana. Labojiet to, kas ir nepareizi, saglabājiet to, kas ir īsts.
  • Pieskaroties neapstrādātiem datiem. Nekad nemodificējiet neapstrādātus datus; Veiciet visu tīrīšanu, izmantojot kodu atsevišķā kopijā, lai to varētu atjaunot.
  • Nemērot soļu ietekmi. Ja rindu skaits un kopsavilkuma statistika netiek pārbaudīta pēc katras darbības, tiks uzkrātas klusās kļūdas.
  • Rezultātā tīrīšana. Loģika "Kad jūs pievienojat šo rindu, rezultāts kļūst labāks" ir p-hacking; Tīrīšana jāplāno pirms analīzes rezultāta un neatkarīgi no tā.
Padoms. Saglabājiet tabulu “pirms/pēc”, kurā pirms un pēc tīrīšanas tiek rādīta viena un tā pati pamata statistika (vidējais, mediāna, novērojumu skaits, dažas korelācijas). Negaidīts lēciens ir labākais slēptās kļūdas priekšvēstnesis.

Rezumējot

Datu tīrīšana ir laikietilpīgākā un lēmumu pieņemšanas prasīgākā empīriskā darba fāze. AI ir jaudīgs kodu ģenerators, taču tas nevar izsaukt šāvienu: jūs klasificējat trūkstošo datu tipu (MCAR/MAR/MNAR), nosakāt, vai novirze ir kļūda vai patiesa, katrs solis ir atgriezenisks un dokumentēts. Tā vietā, lai mākslīgā intelekta aklajam piešķirtu “skaidras” pilnvaras, izveidojiet soli pa solim darbplūsmu, kuras ietekme tiek izmērīta un apstiprināta. Novērojumu skaita un statistikas kopsavilkuma pārbaude pēc katra soļa ir labākais līdzeklis pret klusajām kļūdām.

Lietojumprogrammas uzdevums

Atlasiet vismaz divus mainīgos, kas satur trūkstošos un novirzes datu kopā (jūsu dati vai izlases kopa). Pieprasiet diagnostikas kodu no AI, izmantojot iepriekš minēto uzvedni “soli pa solim, nedzēst/aizpildīt”, un palaidiet to. Klasificējiet trūkumu kā MCAR/MAR/MNAR un vienā teikumā uzrakstiet savu pamatojumu. Pa vienam pārbaudiet pretrunīgos kandidātus un izlemiet, kurš no tiem ir kļūda un kurš ir īsts. Visbeidzot, pirms/pēc tīrīšanas izveidojiet tabulu "pirms pēc" un ziņojiet, ja ir kādas negaidītas izmaiņas.

kontrolsaraksts

  • [ ] Es iztīrīju neapstrādātos datus atsevišķā kopijā, tos nemainot.
  • [ ] Es klasificēju trūkumu kā MCAR/MAR/MNAR un atbilstoši izvēlējos metodi.
  • [ ] Es pārbaudīju novirzes pēc kārtas, vai tās ir kļūdas vai patiesas; Es to akli neizdzēsu.
  • [ ] Es pārbaudīju novērojumu skaitu un apkopoto statistiku pēc katra tīrīšanas posma.
  • [ ] Es dokumentēju visas darbības ar kodu un komentāru rindiņu; atgriezenisks.
  • [ ] Es tīrīšanu balstīju uz zināšanām par procesu, kas rada datus, nevis uz analīzes rezultātu.