Dobici:
- Sposobnost prepoznavanja nedostajućih tipova podataka (MCAR/MAR/MNAR), odstupanja i grešaka kodiranja i korištenje AI s ispravnim podacima za proizvodnju koda za čišćenje i dijagnostiku
- Sposobnost da vidite kako će svaki korak čišćenja (brisanje, dodjela, transformacija) koji predlaže umjetna inteligencija utjecati na rezultat analize i uspostaviti reverzibilan i dokumentiran tok rada
- Održavanje da su odluke o čišćenju zasnovane na poznavanju procesa koji generiše podatke i da je umjetna inteligencija nadgledani asistent, a ne slijepi automat
Svaki iskusni analitičar zna jednu istinu: većinu vremena empirijskog projekta nije modeliranje, već čišćenje podataka (rad ispravljanja grešaka, propusta i nedosljednosti u podacima i pripremanja podataka za analizu). Kao grubo pravilo, oko 70-80% vremena odlazi na razumijevanje, čišćenje i transformaciju podataka; samo 20-30% je ostalo za stvarnu analizu. U ovoj cjelini vidjet ćemo korak po korak kako umjetna inteligencija (AI) olakšava ovaj težak teret, ali koje odluke bi ipak trebale ostati na vama i zašto.
Hajde da prvo stavimo dvije osnovne činjenice. Prvo, odluke o čišćenju se zasnivaju na vašem znanju o procesu koji proizvodi podatke: samo vi znate zašto nedostaje vrijednost, zašto je broj prevelik. AI ne vidi podatke, ne zna kontekst; Piše kod, ne donosi odluke. Drugo, svaki korak čišćenja može promijeniti rezultat analize. Brisanje outlier-a može invertirati koeficijent; Popunjavanje nedostajućih vrijednosti srednjom vrijednosti može umjetno smanjiti varijansu. Dakle, čišćenje bi trebalo da bude reverzibilno i dokumentovano: nikada ne dirajte neobrađene podatke, uradite svaki korak u kodu, zabeležite uticaj svakog koraka.
Postupak čišćenja korak po korak
1. Upoznajte podatke. Prvo pogledajte strukturu: broj redova (zapažanja) i kolona (varijable), tip svake varijable (numerička, kategorička, datumska), zbirnu statistiku, broj nedostajućih. Možete zatražiti od AI za ovaj kod "profila podataka"; Ali čitate izlaz i postavljate pitanja poput "zašto je ova varijabla došla kao tekst?"
2. Razumjeti i klasificirati podatke koji nedostaju. Podaci koji nedostaju podijeljeni su u tri vrste. MCAR (Nedostaje potpuno nasumično): nedostatak nije zbog ničega, na primjer, slučajno je otkazao senzor. MAR (Nedostaje nasumično): nedostatak zavisi od drugih posmatranih varijabli, na primjer stariji ljudi češće ostavljaju pitanje praznim, ali znate godine. MNAR (Missing Not At Random): nedostatak zavisi od same neopažene vrednosti, na primer, ljudi sa visokim zaradama ne prijavljuju svoje prihode. Ova razlika je kritična jer određuje metodu rješenja i AI ne može odlučiti o tome umjesto vas.
3. Pozabavite se nedostatkom. Opcije: brisanje po listi, srednja/srednja imputacija, višestruka imputacija zasnovana na modelu. Brisanje u MCAR-u je relativno sigurno, ali smanjuje veličinu uzorka. Višestruka dodjela je prikladnija u MAR-u. Nijedna jednostavna metoda ne garantuje nepristrasnost u MNAR; Treba modelirati mehanizam nedostatka ili barem izvršiti analizu osjetljivosti. Ispunjavanje srednjih vrednosti je lako, ali opasno: smanjuje varijansu, slabi odnose i skriva neizvesnost.
4. Ispitajte izuzetke. Outlier je zapažanje koje stoji veoma daleko od ostalih. Razdvojite dva pitanja: Da li je ovo greška (999 godina je napisano u unosu podataka) ili je stvarna, ali izvanredna vrijednost (prihod milijardera)? Fix bugs; Nemojte brisati istinske vanjske vrijednosti jer predstavljaju podatke. Brisanje odstupanja "jer smeta" iskrivljujete podatke prema ishodu.
5. Kodiranje i konzistentnost. Standardizirajte kategorije ("muški", "muški", "E" sve u jedan kod), dovedite datume u jedan format, jedinice u jednu skalu, otkrijte duple redove. Ovo je najmanje rizična faza u kojoj AI najbolje pomaže.
6. Dokumentirajte i zamrznite. Zabilježite svaki korak s kodom i redom za komentare, držeći neobrađene i očišćene podatke odvojeno. Dakle, kada sudija pita "zašto su ova zapažanja odbačena?" imate spreman odgovor.
Oprez: Nemojte donositi odluke o čišćenju na osnovu rezultata. Brisanje reda sa natpisom "Kada izbrišete ovu liniju, koeficijent postaje značajan" je najpodmukliji oblik p-hakiranja, koji ćemo vidjeti u sljedećoj jedinici.
Tabela poređenja: nedostajuće metode podataka
Metoda
Kada je prikladno?
rizik
Uloga AI
Izbrišite red
MCAR, niska stopa propuštanja
Uzorak postaje manji, pristranost u MAR/MNAR
Piše kod; ti odlučuješ
Srednja/srednja dodjela
Brza preliminarna analiza
Smanjuje varijansu, skriva vezu
Lako je, ali ne preporučujem; treba upozoriti
Višestruki zadaci (MI)
MAR, važne varijable
Ako nije pravilno instaliran, to će dovesti u zabludu
Preporuča kod i paket (miševi)
Modeliranje mehanizama
MNAR
Kompleksno, pretpostavka intenzivno
Samo nacrt; potreban je stručnjak
Četiri upita za kopiranje
1. Profiliranje podataka:
Vaša uloga: pomoćnik za čišćenje podataka. Ne dijelim podatke, želim R kod. Imam data.frame pod nazivom 'digit'; varijable: id, starost (brojčano), prihod (brojčano), obrazovanje (kategorično), region (kategorički), datum (datum). Zadatak: napisati kod koji proizvodi tip, broj koji nedostaje i stopu za svaku varijablu, zbirnu statistiku za numeričke i tabelu učestalosti za kategoričke. Dodajte red za komentare.
2. Dijagnoza nedostajućih podataka:
Napišite kod koji ispituje obrazac koji nedostaje za gornje 'cifrene' podatke: - stopu nedostatka svake varijable, - jednostavnu tabelu/graf koji pokazuje odnos nedostatka prema drugim varijablama. Pogledaću izlaz koda i napraviti razliku MCAR/MAR/MNAR; Vi samo proizvodite dijagnostički alat, NEMOJTE odlučivati o metodi dodjele.
3. Vanredni pregled (ne brisanje):
Napišite kod za promjenljivu 'prihod' koja ispituje odstupnike BEZ BRISANJA: okvir, granice zasnovane na IQR-u i tabelu sa popisom zapažanja izvanrednih vrijednosti + vrijednosti. Videću da li su ovo greške ili stvarne. Dodajte automatsko brisanje.
4. Standardizacija kodiranja:
U varijabli 'obrazovanje' vrijednosti se pišu mješovito: "Osnovna škola","osnovna škola","PRIMARY","Gimnazija","srednja škola","Univerzitet","univ". Napišite R kod koji ih rekodira u konzistentne kategorije; Jasno prikaži tabelu mapiranja kako bih mogao potvrditi svaku konverziju. Postavite vrijednost koju ne prepoznajete na "UNKNOWN".
Slaba prompt / Jaka prompt
Slab upit:
Očistite podatke, popunite praznine, odbacite nedostatke.
Ovaj zahtjev je opasan: daje slijepi autoritet AI. Kakva vrsta nestalih, kakvo punjenje, koja kontradiktorna istina - ništa od toga nije jasno. Rezultat može biti tajno pristrasan skup podataka.
Snažan upit:
Vaša uloga: pomoćnik u čišćenju, vi niste donosilac odluka. Idite korak po korak i napišite kod koji izvještava o uticaju SVAKOG koraka: 1) pokažite obrazac koji nedostaje (NE brišite/popunite), 2) navedite kandidate koji su izvan granica (NE brišite), 3) popravite nedosljednosti kategorije sa tabelom mapiranja. Odštampajte broj redova i zbirnu statistiku nakon svakog koraka kako bih mogao vidjeti i potvrditi promjenu. Automatsko umetanje dodjele/brisanja.
Razlika je jasna: snažna volja pozicionira AI kao nadgledanog pomoćnika, koji proizvodi reverzibilne i dokumentovane korake.
tri mini kofera
Slučaj 1 — Zamka prosječnog dodjeljivanja. Podaci o prihodima jednog analitičara za 5.000 ljudi nedostajali su 18%. Rekao je AI da "popuni praznine"; AI ih je sve prosečio. Rezultat: varijansa prihoda je smanjena za 22%, a koeficijent odnosa obrazovanja i prihoda se pokazao slabijim nego što je bio. Tačan način: nedostatak je bio MAR (zbog obrazovanja), morao se popuniti višestrukim zadatkom (miševi). Pouka: način punjenja zavisi od mehanizma.
Slučaj 2 — Čišćenje vanrednog stanja preokreće nalaz. U podacima o jednoj firmi bile su 3 veoma velike firme (0,6% ukupnog posmatranja). Oni su izbrisani na osnovu prijedloga AI za "čišćenje"; Koeficijent ekonomije obima se pretvorio iz pozitivne u negativnu. Međutim, te 3 kompanije bile su stvarne i važan dio industrije. Ispravan način je bio izvještavanje sa potpunom i robusnom procjenom umjesto brisanja. Pouka: stvarni odstupnici su podaci, a ne šum.
Slučaj 3 — Tiha greška kodiranja. Na jednom panelu, varijabla datuma je došla u dva različita formata ("2020-03-01" i "01/03/2020"). Kada ih je kombinovani kod koji je proizvela AI zamijenio za različite vrijednosti, 1.400 opservacija nije se podudaralo i stope rasta su postale smiješne. Ne bi bilo važno da analitičar ne provjeri broj redova. Lekcija: brojanje zapažanja i provjera razuma nakon svakog koraka su obavezni.
Uobičajene greške
- Slijepo popunjavanje praznine prosjekom. Smanjuje varijansu, skriva nesigurnost i stvara pristrasnost u MAR/MNAR. Prvo klasificirajte mehanizam.
- Brisanje odstupanja "jer smeta". Pravi outliers predstavljaju podatke; brisanje je savijanje rezultata. Ispravi ono što nije u redu, zadrži ono što je stvarno.
- Dodirivanje neobrađenih podataka. Nikada ne mijenjajte neobrađene podatke; Čišćenje obavite s kodom u zasebnoj kopiji kako biste ga mogli vratiti.
- Ne merenje uticaja koraka. Ako se broj redova i zbirna statistika ne provjere nakon svakog koraka, tihe greške će se akumulirati.
- Čišćenje kao rezultat. Logika "Kada dodate ovu liniju, rezultat postaje bolji" je p-hakovanje; Čišćenje treba planirati prije i nezavisno od rezultata analize.
Savjet: Zadržite tabelu „prije/poslije“ koja stavlja istu osnovnu statistiku (srednja vrijednost, medijan, broj zapažanja, nekoliko korelacija) jednu pored druge prije i poslije čišćenja. Neočekivani skok najbolji je predznak skrivene greške.
Ukratko
Čišćenje podataka je faza empirijskog rada koja najviše oduzima vrijeme i zahtijeva odluke. AI je moćan generator koda u ovome, ali ne može biti najbolji: klasifikujete tip podataka koji nedostaje (MCAR/MAR/MNAR), određujete da li je odstupanje greška ili stvaran, održavate svaki korak reverzibilnim i dokumentovanim. Umjesto da slijepoj umjetnoj inteligenciji date "jasno" ovlaštenje, uspostavite tok rada korak po korak čiji se utjecaj mjeri i potvrđuje. Provjera broja zapažanja i zbirne statistike nakon svakog koraka najbolji je lijek za tihe greške.
Zadatak aplikacije
Odaberite najmanje dvije varijable koje sadrže nedostajuće i odstupnike u skupu podataka (vaši vlastiti podaci ili skup uzoraka). Zatražite dijagnostički kod od AI preko gornjeg promta "korak po korak, nemojte brisati/popuniti" i pokrenite ga. Klasificirajte nedostatak kao MCAR/MAR/MNAR i napišite svoje opravdanje u jednoj rečenici. Ispitajte kontradiktorne kandidate jednog po jednog i odlučite koji je pogrešan, a koji pravi. Konačno, napravite tabelu "prije-poslije" prije/poslije čišćenja i prijavite ako ima bilo kakvih neočekivanih promjena.
kontrolna lista
- [ ] Očistio sam neobrađene podatke u zasebnoj kopiji bez promjene.
- [ ] Klasificirao sam nedostatak kao MCAR/MAR/MNAR i u skladu s tim odabrao metodu.
- [ ] Ispitivao sam odlike jedan po jedan da li su greške ili stvarne; Nisam ga slijepo izbrisao.
- [ ] Provjerio sam broj zapažanja i zbirne statistike nakon svakog koraka čišćenja.
- [ ] Dokumentovao sam sve korake sa kodom i linijom za komentare; reverzibilan.
- [ ] Čišćenje sam bazirao na poznavanju procesa koji proizvodi podatke, a ne na rezultatu analize.