Pelnas:
- Gebėjimas atpažinti skirtingus duomenų šaltinius (duomenų bazę, API, failą, žiniatinklio iššifravimą) ir kiekvieno spąstus bei teisingai suprasti schemą
- Galimybė atlikti pakartojamą atranką įvertinant, ar imtis atspindi populiaciją ir atrankos šališkumą
- Galimybė pašalinti duomenų nutekėjimą rinkimo etape ir laikytis teisinių / etinių ribų, kiekviename stulpelyje užduodant klausimą „Ar turėsiu juos numatymo metu“?
Kiekviena analizė yra tokia pat gera, kaip ir jūsų renkamų duomenų kokybė. Netgi pažangiausias pasaulyje modelis duos nepatikimų rezultatų, jei jis dirbs su duomenimis, kurie surinkti neteisingai, atrinkti šališkai arba turi informacijos apie ateitį. Informatikos moksle šis principas apibendrintas kaip „šiukšlės į, šiukšlės išvežamos“ (gabage in, garage out). Šiame skyriuje apžvelgsime duomenų rinkimo etapą: šaltinio supratimą, atranką, kokybės klausimų uždavimą ir duomenų nutekėjimo pavojų nuo pirmos dienos. Dirbtinis intelektas yra galinga pagalba šiame etape; Rašo SQL užklausą, apibendrina API dokumentą, rengia duomenų sutarties projektus. Bet tai yra žmogus, kuris nusprendžia, kokius duomenis renkate ir ar tie duomenys reprezentuoja jus.
Susipažinimas su duomenų šaltiniais
Duomenys gaunami iš skirtingų vietų, ir kiekvienas šaltinis turi savo spąstus. Duomenų bazė (struktūriniai duomenys, saugomi lentelėse, dažniausiai užklausomi naudojant SQL) yra labiausiai paplitęs šaltinis; Tai patikima, tačiau būtina gerai suprasti jo schemą. API (Application Programming Interface) teikia tiesioginius duomenis, tačiau kyla greičio apribojimų ir formato pasikeitimų rizika. Failai (CSV, „Excel“, JSON) yra lankstūs, tačiau linkę į formatų nenuoseklumą. Žiniatinklio nuskaitymas yra galingas, bet turi teisinių ir etinių apribojimų; Ne kiekvieną svetainę galima nubraukti.
Dėmesio: norėdami rinkti žiniatinklio duomenis ir automatiškai rinkti duomenis, laikykitės svetainės naudojimo sąlygų, failo robots.txt ir KVKK / GDPR. Neteisėtas duomenų rinkimas užtraukia teisinę atsakomybę. Informacijos saugumo kontekste duomenų rinkimo įrankius naudokite tik tose sistemose, kurioms esate įgalioti, ir gynybos/analizės tikslais; Neleistina prieiga arba grandymas yra draudžiamas.
Schemos supratimas: susipažinimas su duomenimis
Prieš rinkdami duomenų rinkinį, turite suprasti jo schemą (stulpelių pavadinimus, duomenų tipus, reikšmes ir tarpusavio ryšius). AI čia labai naudinga kuriant „duomenų žodyną“ – lentelę, paaiškinančią, ką reiškia kiekvienas stulpelis. Tačiau AI pateikiami paaiškinimai yra prognozės; Patvirtinkite kiekvieno stulpelio tikrąją reikšmę su komanda, kuri parengė duomenis. Pavyzdžiui, stulpelyje „status“ gali būti 0/1/2; Tik pradinė komanda žino, ar tai „laukiama / patvirtinta / atšaukta“, ar kažkas kita.
Šioje lentelėje apibendrinami pagrindiniai išteklių tipai ir įspėjimai:
Šaltinis
stiprioji vieta
spąstai
Kaip AI padeda
SQL duomenų bazė
Konstrukcinis, patikimas
Sudėtingi JOIN
Rašo užklausos juodraštį
API
gyvi duomenys
Greičio apribojimas, formos keitimas
Dokumentų suvestinės, ištraukite kodą
CSV / Excel
Lankstus, greitas
Formato nenuoseklumas
Skaityti / analizuoti kodą
tinklo grandymas
Platus pasiekiamumas
Teisinė/etinė riba
Nagrinėjamas juodraštis (valdžioje)
Žurnalo / įvykių duomenys
išsamiai
didžiulė apimtis
Filtravimo užklausa
Iliustracija: ar dalis atspindi visumą?
Dažniausiai dirbate su imtimi (iš populiacijos pasirinktu poaibiu), o ne su visais duomenimis. Svarbus klausimas: ar ši imtis reprezentuoja populiaciją? Atrankos šališkumas yra dažniausiai pasitaikantys spąstai. Pavyzdžiui, jei tik atrinksite naudotojus iš programos mobiliesiems, žiniatinklio naudotojų nematysite ir jūsų rezultatai bus klaidinantys. Atsitiktinė atranka (kiekvienas įrašas turi vienodą galimybę būti pasirinktam) yra saugiausias daugeliu atvejų; tačiau laiko eilučių duomenyse skaidymas atliekamas chronologiškai, o ne atsitiktinai (tai matysime 7 ir 10 skyriuose).
Informacijos nutekėjimas nuo pirmos dienos
Duomenų nutekėjimas yra daugumos nelaimių šaltinis ir dažniausiai atsiranda duomenų rinkimo etape. Pavyzdys: numatant „ar buvo atšaukta“, jei prie duomenų pridedate stulpelį „atšaukimo data“, modelis žiūri į ateitį. Rinkimo fazėje užduokite vieną klausimą kiekvienam stulpeliui: „Ar iš tikrųjų turėsiu šią informaciją tuo metu, kai numatysiu? Jei atsakymas yra ne, tas stulpelis nutekėjo. Šią temą išsamiai aptarsime 10 skyriuje; Tačiau sąmoningumas turėtų prasidėti nuo pirmos dienos.
trys mini dėklai
1 atvejis. Atstovavimo problema. Vienas bankas rinko duomenis tik apie savo kredito rizikos modeliui patvirtintas paskolas (18 500 įrašų). Atmetimų duomenyse nebuvo. Modelis buvo klaidingas realiame pasaulyje, nes niekada nematė, kaip elgsis atstumtieji. Pamoka: imtis turi reprezentuoti visą populiaciją, iš kurios priimate sprendimą.
2 atvejis – tylios formos keitimas. Komanda kiekvieną dieną rinko kainų duomenis iš API. Vieną dieną API teikėjas pakeitė valiutą iš USD į EUR, tačiau domeno pavadinimas liko toks pat. Duomenys buvo renkami netinkamame vienete 12 dienų; Sugadinta 3200 eilučių. Pamoka: Reguliariai tikrinkite API duomenų apimties ir formato nuoseklumą.
3 atvejis – ankstyvas nuotėkis. Analitikas įtraukė stulpelį „sąskaitos uždarymo priežastis“, rinkdamas duomenis „nutraukimo“ įvertinimui. Šis stulpelis buvo užpildytas tik klientui išėjus. Bandymo rinkinyje modelis davė 97% tikslumą; Gamyboje jis neveikė, nes numatymo metu ta stulpelis buvo tuščias. Pamoka: kiekviename stulpelyje užduokite klausimą „ar turiu jį numatymo metu?
Keturi kopijuojami šablonai
1) Duomenų žodyno ištraukimas:
Jūsų vaidmuo: duomenų mokslininko asistentas. Žemiau pateikiami lentelės stulpelių pavadinimai ir pavyzdinės (anoniminės) reikšmės. Lentelėje nurodykite kiekvieno stulpelio numatomą reikšmę, duomenų tipą ir galimą kokybės riziką. Stulpelius, kuriais nesate tikri, pažymėkite kaip „reikia patvirtinimo“; reiškia kūrimą.Stulpeliai: [įklijuokite čia]
2) Atrankos kodas (atsitiktinis, kartojamas):
Turiu pandas df. Parašykite kodą, kuris iš 200 000 eilučių išskiria reprezentatyvų 5% atsitiktinį pavyzdį. Naudokite random_state=42 (atkuriamumui). Pridėkite kodą, kad patikrintumėte, ar imties klasių pasiskirstymas yra panašus į populiaciją.
3) Klausimas dėl nuotėkio nuskaitymo:
Pateiksiu jums šį stulpelių sąrašą. Mano tikslas – nuspėti „ar atšaukta“ (0/1). Kiekviename stulpelyje įvertinkite, ar iš tikrųjų jį turėsiu numatymo metu ir pažymėkite kaip „saugus / įtartinas / nutekėjęs“. Vienu sakiniu parašykite savo pagrindimą. Stulpeliai: [sąrašas]
4) SQL ištraukimo užklausos juodraštis:
„PostgreSQL“ turiu „užsakymų“ ir „klientų“ lenteles. Parašykite JOIN užklausą, kuri sujungia pastarųjų 90 dienų užsakymus su kliento miestu ir pateikia bendrą užsakymų sumą ir skaičių kiekviename mieste. Paaiškinkite datos filtrą ir kaip tvarkomi NULL miestai. Aš paleisiu užklausą ir ją patikrinsiu.
Silpnas raginimas / Stiprus raginimas
Silpnas raginimas:
Iš šios duomenų bazės gaukite gerą duomenų pavyzdį.
„Geras“ yra dviprasmiškas; Kuris paveikslas, koks laikotarpis, koks dydis, kokia paskirtis – neaišku. AI pateiks tik bendrą, galbūt klaidingą užklausą.
Galingas raginimas:
Jūsų vaidmuo: SQL asistentas. Turiu „operacijų“ lentelę: stulpelių ID, kliento_id, data (laiko žyma), suma (skaitinė), kanalas (tekstas: „žiniatinklis“/„mobilusis“). Užduotis: Parašykite pakartojamą (deterministinę su ORDER BY) užklausą, kuri pateikia 10 000 tipinių eilučių iš kiekvieno kanalo 2024 m. Tikslas: kanalų lyginamoji analizė. Išvardykite savo užklausos prielaidas.
Čia aišku lentelė, paskirtis, dydis ir pakartojamumas.
Dažnos klaidos
- Neabejoja imties reprezentatyvumu. Lengvai prieinami duomenys nėra tikslūs duomenys; atrankos šališkumas iškreipia rezultatą.
- Stulpelių reikšmių pritaikymas AI. Šaltinio komanda žino prasmę; Nenaudokite AI prognozės jos nepatvirtinus.
- Nestebi API formato / vieneto pakeitimo. Tylusis pakeitimas kelias dienas renka sugadintus duomenis.
- Nepaisydami nuotėkio surinkimo etape. Jei klausimas „Ar turiu tai prognozavimo metu“ neužduodamas anksti, modelis duos klaidingą sėkmę.
- Neleistinų ar neteisėtų duomenų rinkimas. Pažeisti robots.txt, naudojimo sąlygas ir KVKK yra rimta rizika.
Patarimas: laikykite vieno puslapio „duomenų kortelę“ kiekvienam naujam duomenų šaltiniui: šaltinis, ištraukimo data, eilučių skaičius, žinomos ribos ir stulpeliai, kuriems kyla nutekėjimo pavojus. Ši kortelė išsaugo klausimą „kokie buvo šie duomenys“ ir atkuriamumą po kelių mėnesių.
Apibendrinant
Analizės kokybę riboja surinktų duomenų kokybė. Gerai žinoti šaltinį (duomenų bazė, API, failas, scrape) ir schemą; įsitikinkite, kad imtis reprezentuoja populiaciją; Pašalinkite nuotėkį nuo pirmos dienos klausdami kiekvieno stulpelio „ar turiu jį numatymo metu? AI yra puikus užklausų ir dokumentų darbo greitintuvas, tačiau žmonės nusprendžia, kokius duomenis rinkti ir kokius duomenis jie reprezentuoja. Valdžios ribos, įstatymai ir konfidencialumas visada yra pirmoje vietoje.
Taikymo užduotis
Pasirinkite duomenų šaltinį (iš savo verslo arba hipotetinį). Gaukite duomenų žodyno juodraštį iš AI naudodami anksčiau pateiktą šabloną „duomenų žodyno ištraukimas“; Tada rankiniu būdu įvertinkite kiekvieną stulpelį, kad pamatytumėte, ar jis nebuvo nutekėjęs. Pabandykite surasti bent vieną įtartiną/nutekėjusią skiltį ir vienu sakiniu parašykite, kodėl tai rizikinga.
kontrolinis sąrašas
- [ ] Ar patvirtinau duomenų šaltinį ir schemą su šaltinio komanda?
- [ ] Ar patikrinau, ar imtis reprezentuoja populiaciją?
- [ ] Ar kiekviename stulpelyje uždaviau klausimą "ar turėsiu sąmatos metu?"
- [ ] Ar mėginių ėmimą padariau kartojamą (fiksuota sėkla)?
- [ ] Ar patikrinau teisinius / etinius (autoritetas, robots.txt, KVKK) rinkimo ribas?