Dobici:
- Sposobnost prepoznavanja tipova podataka koji nedostaju (MCAR/MAR/MNAR), ekstremnih vrijednosti i pogrešaka kodiranja te korištenje AI s točnim podacima za izradu koda za čišćenje i dijagnostiku
- Sposobnost da se vidi kako će svaki korak čišćenja (brisanje, dodjela, transformacija) predložen od strane umjetne inteligencije utjecati na rezultat analize i uspostaviti reverzibilni i dokumentirani tijek rada
- Zadržavanje da se odluke o čišćenju temelje na poznavanju procesa koji generira podatke i da je umjetna inteligencija nadzirani pomoćnik, a ne slijepi automat
Svaki iskusni analitičar zna jednu istinu: najveći dio vremena empirijskog projekta nije modeliranje, već čišćenje podataka (rad ispravljanja pogrešaka, propusta i nedosljednosti u podacima i njihovo spremanje za analizu). Kao grubo pravilo, oko 70-80% vremena odlazi na razumijevanje, čišćenje i transformaciju podataka; samo 20-30% ostaje za stvarnu analizu. U ovoj cjelini vidjet ćemo korak po korak kako umjetna inteligencija (AI) olakšava ovo teško breme, ali koje bi odluke ipak trebale ostati na vama i zašto.
Najprije stavimo dvije osnovne činjenice. Prvo, odluke o čišćenju temelje se na vašem poznavanju procesa koji proizvodi podatke: samo vi znate zašto vrijednost nedostaje, zašto je broj prevelik. AI ne vidi podatke, ne poznaje kontekst; Piše kod, ne donosi odluke. Drugo, svaki korak čišćenja može promijeniti rezultat analize. Brisanje vanjske vrijednosti može obrnuti koeficijent; Popunjavanje vrijednosti koje nedostaju srednjom vrijednosti može umjetno smanjiti varijancu. Dakle, čišćenje bi trebalo biti reverzibilno i dokumentirano: nikada ne dirajte neobrađene podatke, napravite svaki korak u kodu, zabilježite učinak svakog koraka.
Tijek čišćenja korak po korak
1. Upoznajte podatke. Najprije pogledajte strukturu: broj redaka (opažanja) i stupaca (varijable), tip svake varijable (numerička, kategorička, datum), sažetak statistike, broj nedostajućih. Možete zatražiti od umjetne inteligencije 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 (potpuno nasumičan nedostatak): nedostatak nije uzrokovan ničim, na primjer senzor je slučajno pokvario. MAR (Missing At Random): nedostatak ovisi o drugim promatranim varijablama, na primjer, stariji ljudi češće ostavljaju pitanje praznim, ali vi znate dob. MNAR (Missing Not At Random): nedostatak ovisi o samoj nepromatranoj vrijednosti, na primjer osobe s visokim primanjima ne prijavljuju svoje prihode. Ova je razlika kritična jer određuje metodu rješenja i AI to ne može odlučiti umjesto vas.
3. Suočite se s nedostatkom. Opcije: brisanje po popisu, imputacija srednje vrijednosti/medijana, višestruka imputacija na temelju modela. Brisanje u MCAR-u je relativno sigurno, ali smanjuje veličinu uzorka. Višestruka dodjela prikladnija je u MAR-u. Nijedna jednostavna metoda ne jamči nepristranost u MNAR-u; Trebalo bi modelirati mehanizam nedostatka ili barem provesti analizu osjetljivosti. Ispunjavanje zločesti je lako, ali opasno: smanjuje varijance, slabi odnose i skriva neizvjesnost.
4. Ispitajte izvanredne vrijednosti. Outlier je opažanje koje je vrlo daleko od ostalih. Odvojite dva pitanja: Je li to pogreška (dob 999 je napisana u unosu podataka) ili je to stvarna, ali izvanredna vrijednost (prihod milijardera)? Popravi greške; Nemojte brisati prave izvanredne vrijednosti jer predstavljaju podatke. Brisanje vanjske vrijednosti "jer vam smeta" iskrivljuje podatke prema ishodu.
5. Kodiranje i dosljednost. Standardizirajte kategorije ("Muški", "muški", "E" sve u jedan kod), dovedite datume u jedan format, jedinice u jednu ljestvicu, detektirajte duple retke. Ovo je najmanje rizična faza u kojoj AI najbolje pomaže.
6. Dokumentirajte i zamrznite. Zabilježite svaki korak pomoću koda i retka komentara, držeći sirove i očišćene podatke odvojeno. Dakle, kada sudac pita "zašto su ta opažanja odbačena?" imate spreman odgovor.
Oprez: Ne donosite odluke o čišćenju na temelju rezultata. Brisanje retka koji kaže "Kada izbrišete ovaj redak, koeficijent postaje značajan" je najpodmukliji oblik p-hakiranja, koji ćemo vidjeti u sljedećoj jedinici.
Tablica usporedbe: nedostaju metode podataka
metoda
Kada je prikladno?
rizik
Uloga umjetne inteligencije
Brisanje retka
MCAR, niska stopa nestalih
Uzorak postaje manji, pristranost u MAR/MNAR
Piše kod; vi odlučujete
Dodjeljivanje srednje vrijednosti/medijana
Brza preliminarna analiza
Smanjuje odstupanja, skriva odnos
Lako je, ali se ne preporučuje; treba upozoriti
Višestruka dodjela (MI)
MAR, važne varijable
Ako se ne instalira ispravno, to će dovesti u zabludu
Preporučuje kod i paket (miševi)
Modeliranje mehanizama
MNAR
Složeno, puno pretpostavki
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 koji se zove 'digit'; varijable: ID, dob (numerička), prihod (numerička), obrazovanje (kategorička), regija (kategorička), datum (datum). Zadatak: napisati kod koji proizvodi tip, broj koji nedostaje i stopu za svaku varijablu, sumarnu statistiku za numeričke i tablicu učestalosti za kategoričke. Dodajte redak komentara.
2. Dijagnoza podataka koji nedostaju:
Napišite kod koji ispituje obrazac koji nedostaje za gornje podatke 'znamenke': - stopu nedostatka svake varijable, - jednostavnu tablicu/graf koji prikazuje odnos nedostatka s drugim varijablama. Pogledat ću izlaz koda i napraviti razliku između MCAR/MAR/MNAR; Vi samo izradite dijagnostički alat, NEMOJTE odlučivati o metodi dodjele.
3. Iznimna inspekcija (ne brisanje):
Napišite kod za varijablu 'prihod' koja ispituje outliere BEZ BRISANJA: okvirni prikaz, granice temeljene na IQR-u i tablicu s popisom outlier opažanja + vrijednosti. Vidjet ću jesu li to pogreške ili stvarnost. Dodaj automatsko brisanje.
4. Standardizacija kodiranja:
U varijabli 'obrazovanje' vrijednosti se pišu miješano: "Osnovna škola", "osnovna škola", "OSNOVNA", "Srednja škola", "srednja škola", "Sveučilište", "sveučilište". Napišite R kod koji ih ponovno kodira u dosljedne kategorije; Jasno pokažite tablicu mapiranja kako bih mogao potvrditi svaku konverziju. Postavite vrijednost koju ne prepoznajete na "UNKNOWN".
Slab upit / Jak upit
Slab upit:
Očistite podatke, popunite praznine, odbacite odstupanja.
Ovaj zahtjev je opasan: on daje slijepi autoritet umjetnoj inteligenciji. Kakav nedostatak, kakvo punjenje, kakva proturječna istina - ništa od toga nije jasno. Rezultat može biti tajno pristran skup podataka.
Snažan upit:
Vaša uloga: pomoćnik u čišćenju, niste donositelj odluka. Idite korak po korak i napišite kod koji izvješćuje o utjecaju SVAKOG koraka: 1) pokažite obrazac koji nedostaje (NEMOJTE brisati/popunjavati), 2) popis kandidata koji se izdvajaju (NEMOJTE brisati), 3) popravite nedosljednosti kategorije s tablicom mapiranja. Ispišite broj redaka i sažetak statistike nakon svakog koraka kako bih mogao vidjeti i potvrditi promjenu. Automatsko umetanje dodjele/brisanja.
Razlika je jasna: jaka volja pozicionira AI kao nadziranog pomoćnika, proizvodeći reverzibilne i dokumentirane korake.
tri mini kućišta
Slučaj 1 — Zamka prosječne dodjele. Podacima jednog analitičara o prihodima za 5000 ljudi nedostajalo je 18%. Rekao je AI da "popuni praznine"; AI ih je sve uprosječila. Rezultat: varijanca dohotka smanjena je za 22%, a koeficijent odnosa obrazovanja i dohotka pokazao se slabijim nego što je bio. Ispravan način: nedostatak je bio MAR (zbog obrazovanja), morao se popuniti višestrukim dodjeljivanjem (miševi). Lekcija: način punjenja ovisi o mehanizmu.
Slučaj 2 — Čišćenje vanjske vrijednosti poništava nalaz. Postojale su 3 vrlo velike tvrtke (0,6% ukupnog promatranja) u podacima o jednoj tvrtki. Ovi su izbrisani AI-jevim prijedlogom za "čišćenje"; Koeficijent ekonomije razmjera promijenio se iz pozitivnog u negativan. Međutim, te 3 tvrtke bile su stvarne i važan dio industrije. Ispravan način bio je izvješćivanje s potpunom i robusnom procjenom umjesto brisanja. Lekcija: pravi outlieri su podaci, a ne šum.
Slučaj 3 — Tiha pogreška kodiranja. U jednoj je ploči varijabla datuma došla u dva različita formata ("2020-03-01" i "01/03/2020"). Kada ih je kombinirani kod koji je proizveo AI zamijenio za različite vrijednosti, 1400 opažanja nije se podudaralo i stope rasta postale su smiješne. Ne bi bilo važno da analitičar ne provjerava broj redaka. Lekcija: brojanje promatranja i provjera razuma nakon svakog koraka su obavezni.
Uobičajene greške
- Slijepo popunjavanje praznine prosjekom. Smanjuje varijancu, skriva neizvjesnost i stvara pristranost u MAR/MNAR. Prvo klasificirajte mehanizam.
- Brisanje outliera "jer smeta". Pravi outlieri predstavljaju podatke; brisanje je krivljenje rezultata. Ispravi ono što nije u redu, zadrži ono što je stvarno.
- Dodirivanje neobrađenih podataka. Nikada ne mijenjajte neobrađene podatke; Čistite sve s kodom u zasebnoj kopiji kako biste ga mogli vratiti.
- Ne mjerenje utjecaja koraka. Ako se broj redaka i sažetak statistike ne provjeravaju nakon svakog koraka, nakupit će se tihe pogreške.
- Čišćenje kao rezultat. Logika "Kada dodate ovu liniju, rezultat postaje bolji" je p-hakiranje; Čišćenje treba planirati prije i neovisno o rezultatu analize.
Savjet: Držite tablicu "prije/poslije" koja stavlja iste osnovne statistike (srednja vrijednost, medijan, broj opažanja, nekoliko korelacija) jednu pored druge prije i poslije čišćenja. Neočekivani skok najbolji je vjesnik skrivene pogreške.
Ukratko
Čišćenje podataka najdugotrajnija je faza empirijskog rada koja zahtijeva donošenje odluka. AI je moćan generator koda u ovome, ali ne može odlučiti: klasificirate tip podataka koji nedostaje (MCAR/MAR/MNAR), utvrđujete je li outlier pogreška ili stvaran, svaki korak držite reverzibilnim i dokumentiranim. Umjesto da slijepoj umjetnoj inteligenciji date "jasne" ovlasti, uspostavite tijek rada korak po korak čiji se učinak mjeri i potvrđuje. Provjera broja opažanja i sažete statistike nakon svakog koraka najbolji je protuotrov za tihe pogreške.
Zadatak aplikacije
Odaberite najmanje dvije varijable koje sadrže nedostatke i izvanredne vrijednosti u skupu podataka (vašim podacima ili skupu uzoraka). Zatražite dijagnostički kod od AI-a putem "korak po korak, nemojte brisati/popuniti" upit iznad i pokrenite ga. Klasificirajte nedostatak kao MCAR/MAR/MNAR i napišite svoje obrazloženje u jednoj rečenici. Ispitajte kontradiktorne kandidate jednog po jednog i odlučite koji je pogreška, a koji stvaran. Na kraju izradite tablicu "prije-poslije" prije/poslije čišćenja i prijavite ako dođe do bilo kakvih neočekivanih promjena.
popis za provjeru
- [ ] 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.
- [ ] Ispitao sam odstupnike jedan po jedan jesu li pogreške ili stvarni; Nisam ga slijepo izbrisao.
- [ ] Provjerio sam broj opažanja i zbirnu statistiku nakon svakog koraka čišćenja.
- [] Dokumentirao sam sve korake s kodom i linijom komentara; reverzibilan.
- [ ] Čišćenje sam temeljio na poznavanju procesa koji proizvodi podatke, a ne na rezultatu analize.