Jedinica 2 / 11

Prikupljanje podataka i razumijevanje izvora: shema, uzorkovanje, kvaliteta i svijest o curenju

Dobici:

  • Sposobnost prepoznavanja različitih izvora podataka (baza podataka, API, datoteka, web scraping) i zamki svakog od njih te ispravno razumijevanje sheme
  • Sposobnost provođenja ponovljivog uzorkovanja procjenom predstavlja li uzorak pristranost populacije i odabira
  • Sposobnost uklanjanja curenja podataka u fazi prikupljanja i poštivanje zakonskih/etičkih granica postavljanjem pitanja 'Hoću li to imati u vrijeme predviđanja' u svakom stupcu?

Svaka analiza je dobra onoliko koliko je dobra kvaliteta podataka koje prikupite. Čak će i najnapredniji model na svijetu proizvesti nepouzdane rezultate ako radi s podacima koji su netočno prikupljeni, pristrano uzorkovani ili sadrže informacije o budućnosti. U informatici je ovo načelo sažeto kao "smeće unutra, smeće van" (garbage in, garbage out). U ovoj ćemo jedinici pokriti fazu prikupljanja podataka: razumijevanje izvora, uzorkovanje, postavljanje pitanja o kvaliteti i pozornost na rizik od curenja podataka od prvog dana. Umjetna inteligencija moćna je pomoć u ovoj fazi; Piše SQL upit, sažima API dokument, sastavlja ugovor o podacima. Ali ljudsko biće je to koje odlučuje koje ćete podatke prikupljati i predstavljaju li vas ti podaci.

Upoznavanje izvora podataka

Podaci dolaze s različitih mjesta, a svaki izvor ima svoje zamke. Baza podataka (strukturirani podaci pohranjeni u tablicama, obično upitani SQL-om) je najčešći izvor; Pouzdan je, ali je potrebno dobro razumjeti njegovu shemu. API (Application Programming Interface) pruža podatke uživo, ali nosi rizik od ograničenja brzine i promjena formata. Datoteke (CSV, Excel, JSON) su fleksibilne, ali sklone nedosljednosti formata. Web scraping je moćan, ali ima zakonska i etička ograničenja; Ne može se skrapirati svako mjesto.

Pažnja: Za web scraping i automatsko prikupljanje podataka pridržavajte se uvjeta korištenja stranice, datoteke robots.txt i KVKK/GDPR. Neovlašteno prikupljanje podataka stvara zakonsku odgovornost. U kontekstu informacijske sigurnosti, koristite alate za prikupljanje podataka samo na sustavima za koje ste ovlašteni i za potrebe obrane/analize; Neovlašteni pristup ili struganje je zabranjeno.

Razumijevanje sheme: upoznavanje s podacima

Prije prikupljanja skupa podataka, morate razumjeti njegovu shemu (imena stupaca, njihove vrste podataka, njihova značenja i njihove međusobne odnose). AI je ovdje vrlo korisna u stvaranju "rječnika podataka" — tablice koja objašnjava što svaki stupac znači. Ali objašnjenja koja AI proizvodi su predviđanja; Potvrdite pravo značenje svakog stupca s timom koji je izradio podatke. Na primjer, stupac pod nazivom "status" može sadržavati 0/1/2; Samo izvorni tim zna jesu li oni "na čekanju/odobreni/otkazani" ili nešto drugo.

Sljedeća tablica sažima osnovne vrste resursa i upozorenja:

Izvor

jaka točka

zamka

Kako AI pomaže

SQL baza podataka

Strukturan, pouzdan

Složeni JOIN-ovi

Piše nacrt upita

API

podaci uživo

Ograničenje brzine, promjena oblika

Sažeci dokumenata, kod za povlačenje

CSV/Excel

Fleksibilan, brz

Nedosljednost formata

Čitanje/raščlanjivanje koda

web struganje

Širok doseg

Pravno/etičko ograničenje

Raščlanjivanje nacrta (unutar ovlaštenja)

Podaci zapisnika/događaja

detaljno

ogroman volumen

Upit za filtriranje

Ilustracija: predstavlja li dio cjelinu?

Većinu vremena radite s uzorkom (podskup odabran iz populacije), a ne s cijelim podacima. Ključno pitanje je: predstavlja li ovaj uzorak populaciju? Pristranost odabira je najčešća zamka. Na primjer, ako uzorkujete samo korisnike iz mobilne aplikacije, nećete vidjeti korisnike weba i vaši će rezultati biti pogrešni. Nasumično uzorkovanje (svaki zapis ima jednaku šansu da bude odabran) najsigurnije je u većini slučajeva; ali u podacima o vremenskoj seriji, dijeljenje se radi kronološki, a ne nasumično (vidjet ćemo to u jedinicama 7 i 10).

Curenje svijesti od prvog dana

Curenje podataka je izvor većine katastrofa i obično se javlja tijekom faze prikupljanja podataka. Primjer: kada predviđate "je li otkazano", ako podacima dodate stupac "datum otkazivanja", model gleda u budućnost. Tijekom faze prikupljanja, postavite jedno pitanje za svaki stupac: "Hoću li doista imati ove informacije u trenutku kada budem predviđao?" Ako je odgovor ne, taj stupac curi. Ovu ćemo temu detaljno obraditi u jedinici 10; Ali svijest treba početi od prvog dana.

tri mini kućišta

Slučaj 1 — Problem reprezentacije. Jedna banka je za svoj model kreditnog rizika prikupila podatke samo o odobrenim kreditima (18.500 zapisa). Odbijanja nisu bila u podacima. Model je bio u krivu u stvarnom svijetu jer nikada nije vidio kako će se ponašati odbijenice. Pouka: uzorak bi trebao biti reprezentativan za cjelokupnu populaciju iz koje donosite odluku.

Slučaj 2 — Tiha promjena oblika. Tim je svaki dan izvlačio podatke o cijenama iz API-ja. Jednog je dana pružatelj API-ja promijenio valutu iz USD u EUR, ali naziv domene ostao je isti. Podaci su prikupljani u pogrešnoj jedinici 12 dana; 3200 redaka je oštećeno. Lekcija: Redovito provjeravajte dosljednost volumena i formata u API podacima.

Slučaj 3 — Rano curenje. Analitičar je uključio stupac "razlog zatvaranja računa" prilikom prikupljanja podataka za procjenu "odljeva". Ovaj stupac je popunjen tek nakon odlaska kupca. Model je dao 97% točnosti na ispitnom skupu; Nije funkcioniralo u produkciji jer je taj stupac bio prazan u vrijeme predviđanja. Lekcija: postavite svakom stupcu pitanje "imam li ga u vrijeme predviđanja?"

Četiri predloška za kopiranje

1) Ekstrakcija rječnika podataka:

Vaša uloga: pomoćnik podatkovnog znanstvenika. Ispod su nazivi stupaca i ogledne (anonimne) vrijednosti tablice. Za svaki stupac navedite njegovo procijenjeno značenje, vrstu podataka i potencijalne rizike kvalitete u tablici. Označite stupce u koje niste sigurni kao "potrebna potvrda"; stvaranje značenja. Stupci: [zalijepite ovdje]

2) Šifra uzorkovanja (slučajna, ponovljiva):

Imam pande df. Napišite kôd koji izvlači reprezentativni 5% nasumični uzorak iz 200 000 redaka. Koristite random_state=42 (za ponovljivost). Dodajte kod da provjerite je li distribucija klase uzorka slična populaciji.

3) Pitanje skeniranja curenja:

Dat ću vam ovaj popis stupaca. Moj cilj je predvidjeti "je li otkazano" (0/1). Za svaki stupac procijenite hoću li ga doista imati u vrijeme predviđanja i označite ga kao "sigurno / sumnjivo / curenje". Napiši svoje obrazloženje u jednoj rečenici. Stupci: [popis]

4) Nacrt SQL upita za povlačenje:

Imam tablice "narudžbe" i "kupci" u PostgreSQL-u. Napišite JOIN upit koji kombinira narudžbe u zadnjih 90 dana s gradom kupca i vraća ukupan iznos i broj narudžbi po gradu. Objasnite filter datuma i kako se rukuje NULL gradovima. Pokrenut ću upit i potvrditi ga.

Slab upit / Jak upit

Slab upit:

Izvuci mi dobar uzorak podataka iz ove baze podataka.

"Dobro" je višeznačno; Koja slika, koje razdoblje, koja veličina, koja namjena nije jasna. AI će proizvesti samo generički, moguće pogrešan upit.

Snažan upit:

Vaša uloga: SQL asistent. Imam tablicu "transakcije": stupci id, customer_id, datum (vremenska oznaka), iznos (numerički), kanal (tekst: 'web'/'mobile'). Zadatak: Napišite ponovljivi (deterministički s ORDER BY) upit koji vraća 10 000 reprezentativnih redaka iz svakog kanala za 2024. godinu. Svrha: komparativna analiza kanala. Navedite pretpostavke svog upita.

Ovdje je jasna tablica, namjena, veličina i ponovljivost.

Uobičajene greške

  • Ne dovodeći u pitanje reprezentativnost uzorka. Lako dostupni podaci nisu točni podaci; pristranost odabira iskrivljuje rezultat.
  • Prilagodba značenja stupaca AI-ju. Izvorni tim zna značenje; Nemojte koristiti AI predviđanje bez potvrde.
  • Ne prati se promjena formata/jedinice API-ja. Tiha promjena danima prikuplja pokvarene podatke.
  • Ignoriranje curenja u fazi prikupljanja. Ako se pitanje "Imam li to u vrijeme predviđanja" ne postavi rano, model će dati lažni uspjeh.
  • Prikupljanje neovlaštenih ili nezakonitih podataka. Kršenje robots.txt, uvjeta korištenja i KVKK je ozbiljan rizik.
Savjet: Čuvajte "podatkovnu karticu" od jedne stranice za svaki novi izvor podataka: izvor, datum povlačenja, broj redaka, poznate granice i stupce u kojima postoji rizik od curenja. Ova kartica sprema pitanje "koji su to podaci" i mogućnost ponovljivosti mjesecima kasnije.

Ukratko

Kvaliteta analize ograničena je kvalitetom prikupljenih podataka. Dobro poznavati izvor (baza podataka, API, datoteka, scrape) i shemu; provjerite je li uzorak reprezentativan za populaciju; Uklonite curenje od prvog dana postavljajući pitanje svakom stupcu "imam li ga u vrijeme predviđanja?" AI je izvrstan akcelerator za rad s upitima i dokumentima, ali ljudi odlučuju koje će podatke prikupiti i njihovu reprezentativnost. Ograničenja ovlasti, zakona i povjerljivosti uvijek su na prvom mjestu.

Zadatak aplikacije

Odaberite izvor podataka (iz vlastite tvrtke ili hipotetski). Nabavite nacrt rječnika podataka od umjetne inteligencije pomoću gornjeg predloška "ekstrakcija rječnika podataka"; Zatim ručno procijenite svaki stupac da vidite je li procurio. Pokušajte pronaći barem jedan sumnjivi stupac i u jednoj rečenici napišite zašto je to rizično.

popis za provjeru

  • [ ] Jesam li potvrdio izvor podataka i shemu s izvornim timom?
  • [ ] Jesam li provjerio je li uzorak reprezentativan za populaciju?
  • [ ] Jesam li svakom stupcu postavio pitanje "hoću li ga imati u vrijeme procjene?"
  • [ ] Jesam li napravio uzorkovanje ponovljivim (fiksno sjeme)?
  • [ ] Jesam li provjerio zakonska/etička (nadležna tijela, robots.txt, KVKK) ograničenja prikupljanja?