Fitimet:
- Aftësia për të njohur llojet e rrjedhjeve të të dhënave (objektivi, koha, parapërpunimi, rreshti i grupuar) dhe kërkimi i rezultatit 'shumë i mirë për të qenë i vërtetë' si alarm
- Aftësia për të parandaluar rrjedhjet me ndarje të hershme të grupit të provës, tubacionit dhe ndarjes së saktë (kronologjike/grupore)
- Aftësia për ta bërë analizën të riprodhueshme me fara fikse, kontrollin e versionit dhe heqjen e hapave manualë
Ka dy gabime që harxhojnë më shumë përpjekje në shkencën e të dhënave, dhe të dyja janë tinëzare sepse çojnë në katastrofë pikërisht kur gjithçka "duket se është mirë". E para është rrjedhja e të dhënave: modeli funksionon shkëlqyeshëm në grupin e provës, por rrëzohet në prodhim. E dyta është riprodhueshmëria: ju kryeni një analizë gjashtë muaj më vonë dhe merrni një rezultat krejtësisht të ndryshëm. Kjo njësi i kushtohet njohjes dhe shmangies së thellë të këtyre dy kurtheve. Inteligjenca artificiale mund të rrisë të dy rreziqet (gjeneron shpejt, sugjeron rrjedhje të fshehura, e bën më të lehtë për ju marrjen e hapave manualë) por gjithashtu mund t'i zvogëlojë ato nëse përdoren siç duhet. Dallimi është në disiplinë.
Rrjedhja e të dhënave: modeli i qartë
Rrjedhja e të dhënave është kur modeli sheh informacione gjatë trajnimit që nuk do të ketë në kohën e parashikimit aktual. Modelja “mashtron” me këtë informacion, duken shkëlqyeshëm në grupin e testimit, por duke u rrëzuar në prodhim pa atë informacion. Simptoma e një rrjedhjeje është pothuajse gjithmonë e njëjtë: shumë e mirë për të qenë e vërtetë. Para se të gëzoheni kur shihni saktësi 99%, duhet të kërkoni për rrjedhje.
Llojet kryesore të rrjedhjeve janë:
1. Rrjedhja e golit: Një veçori është rezultat i golit. Në parashikimin "u anulua", kolonat "data e anulimit" ose "shuma e rimbursimit" janë rezultat i objektivit; Ato do të plotësohen vetëm kur rezultati të jetë i qartë.
2. Rrjedhja e kohës: Sjellja e informacionit të së ardhmes në të kaluarën. Kur llogaritni "mesataren e 30 ditëve të fundit", përfshini ditët pas ditës së parashikimit ose ndani seritë kohore në mënyrë të rastësishme.
3. Rrjedhja e para-përpunimit: Transformimet mësimore si shkallëzimi, mbushja, kodimi nga të gjitha të dhënat përpara ndarjes së trajnimit/testimit. Mesatarja e të dhënave të testit ndërhyn në trajnim.
4. Rrjedhja e rreshtave të dyfishta/grupuara: Rreshtat që i përkasin të njëjtit person janë të pranishëm si në trajnim ashtu edhe në testim (dy vizita të të njëjtit pacient në grupe të ndryshme). Modeli e memorizon personin.
Lloji i rrjedhjes
Si lind
Si të parandaloni
rrjedhje e synuar
Kolona që është rezultat i objektivit
Testi "A e kam në momentin e parashikimit".
rrjedhje kohe
Sjellja e së ardhmes në të kaluarën
Ndarja kronologjike, kontrolli i dritares
Rrjedhje e parapërpunimit
Konvertimi para ndarjes
Tubacioni, përshtatet vetëm nga stërvitja
Rrjedhje e grupuar e rreshtave
E njëjta njësi në dy grupe
Ndarë sipas grupit (GroupKFold)
Disiplina e vetme për të parandaluar rrjedhjet
Zgjidhja e zakonshme për të gjitha llojet e rrjedhjeve zbret në një fjali: Izoloni grupin e provës sa më shpejt që të jetë e mundur për të imituar të ardhmen reale dhe mos "i mësoni" asgjë. Në praktikë, kjo do të thotë: së pari ndani, pastaj mësoni të gjitha transformimet vetëm nga trajnimi dhe zbatoni ato në një tubacion (një strukturë që mbledh të gjitha hapat në një zinxhir të vetëm). Për çdo veçori, bëni pyetjen "a e kam këtë informacion në kohën e parashikimit?" Nëse ka kohë, ndajeni në mënyrë kronologjike; Nëse e njëjta njësi është përsëritëse, ndajeni sipas grupit.
Kujdes: Aspekti më i rrezikshëm i një rrjedhjeje është se ai paraqitet si një sukses. Një model i keq padyshim do të prodhojë rezultate të dobëta dhe do të vihet re; Një model i rrjedhur funksionon shkëlqyeshëm, i kënaq të gjithë dhe vihet në prodhim - këtu fillon kolapsi. Kjo është arsyeja pse një rezultat "shumë i mirë" është shkak për alarm, jo për festë.
Riprodhueshmëria: marrja e të njëjtit rezultat dy herë
Riprodhueshmëria është aftësia për të marrë të njëjtin rezultat kur kryeni një analizë përsëri në një kohë tjetër, në një makinë tjetër. Pa këtë, analiza juaj është e rastësishme, jo shkencore. Shkaqet dhe zgjidhjet kryesore që dëmtojnë riprodhueshmërinë:
Hapat manualë: Ndryshimi manual i një qelize në Excel, redaktimi manual i një grafiku. Zgjidhja: keni çdo hap në kod.
Rastësia e pafiksuar: Trajnimi i modelit, marrja e mostrave, ndarja përfshijnë rastësi. Zgjidhje: rregulloni farën e rastësishme (vlera fillestare e gjeneratorit të rastësishëm) (gjendja_rastit=42).
Ndryshimi i versionit: Rezultati mund të ndryshojë kur ndryshon versioni i bibliotekës. Zgjidhja: rregulloni varësitë (requirements.txt, skedari i mjedisit).
Nuk ka regjistrim: Nuk është e qartë se cilat të dhëna, cili kod, cili parametër është përdorur. Zgjidhja: kontrolli i versionit (Git - sistemi që ruan të gjitha versionet e kodit) dhe versionimi i të dhënave.
"Funksionon vetëm në makinën time": Zgjidhja: dokumentoni mjedisin, përdorni kontejnerë (Docker) nëse është e mundur.
tre mini kuti
Rasti 1 - Rrjedhja e synuar. Një analizë shëndetësore paraqiti kolonën "medikamente pas daljes nga spitali" në parashikimin "nëse pacienti do të ripranohet". Kjo kolonë u plotësua vetëm pasi pacienti u lirua. Modeli dha 96%, në prodhim 61%. Projekti 8 javor ishte plehra. Mësimi: pyesni çdo veçori "a është i pranishëm në kohën e parashikimit?"
Rasti 2 - Rrjedhje e parapërpunimit. Një ekip i shkallëzoi të gjitha të dhënat dhe më pas i ndau ato. Mesatarja e të dhënave të testit u përfshi në shkallëzim. Rezultati i CV-së 89%, prodhimi aktual 76%. Suksesi i rremë u zhduk kur u transferova në Pipeline dhe mësova për transformimet vetëm nga trajnimi. Mësimi: ndani së pari, transformoni më vonë.
Rasti 3 - Mos riprodhimi. Një analist donte të përditësonte grafikun që i paraqiti menaxhmentit tre muaj më vonë, por nuk mund të mbante mend se si e prodhoi atë; shumë hapa janë bërë manualisht në Excel. Rezultati nuk funksionoi dhe besimi u trondit. Mësimi: asnjë hap manual, gjithçka është në kod dhe Git.
Katër shabllone të kopjueshëm
1) Inspektimi i rrjedhjeve:
Roli juaj: inspektor i rrjedhjeve. Synimi: "churn" (0/1), data e referencës së parashikimit: data_record. Unë do t'ju jap këtë listë të veçorive. Për ÇDO tipar: (a) a është pasojë e qëllimit, (b) a është i disponueshëm për mua në kohën e parashikimit, (c) a përfshin dritarja kohore të ardhmen? Shënojeni si "të pasigurt/të dyshimtë/rrjedhje" dhe shkruani një arsye. Karakteristikat: [lista]
2) Tubacioni pa rrjedhje:
Vendosni sklearn Pipeline: së pari ndani trenin/testin (shtresor, seed=42), MË PASTAJ vendosni të gjitha parapërpunimit (imputoni, shkallëzoni, kodoni) në tubacion VETËM nga trajnimi. Shpjegoni pse kodi është pa rrjedhje, cili hap është mësuar ku.
3) Kodi i listës së kontrollit të riprodhueshmërisë:
Dua ta bëj analizën time të riprodhueshme. Sugjeroni kodin/strukturën që shton: (1) farën e fortë për të gjitha rastësitë, (2) printimin e versioneve të bibliotekës së përdorur, (3) etiketën e datës/versionit për të dhënat dhe daljen. Gjithashtu më jep një listë kontrolli për t'u siguruar që nuk ka hapa manualë.
4) Ndarja e grupuar (rrjedhja e së njëjtës njësi):
Në të dhënat, i njëjti klient_id ekziston në shumë rreshta. Bëni një ndarje (GroupKFold orGroupShuffleSplit, grup = klient_id) që PARANDALON të njëjtin klient të jetë si në trajnim ashtu edhe në testim. Përfshi kodin për të verifikuar që asnjë klient nuk është në të dy grupet pas ndarjes.
Prompt i dobët / Prompt i fortë
Njoftim i dobët:
Modeli im ktheu saktësi 98%, a nuk është mirë? Optimizo kodin.
Festimi i 98% fsheh rrjedhjen. Përpara optimizimit, duhet pyetur nëse ky rezultat është real apo jo.
Njoftim i fuqishëm:
Roli juaj: inspektor i rrjedhjeve. Modeli im kthen saktësi 98% në grupin e testimit, i cili më tingëllon "shumë i mirë për të qenë i vërtetë". Kontrollo: (1) janë ndonjë veçori rezultat i objektivit, (2) janë konvertimet e bëra përpara ndarjes, (3) janë e njëjta njësi në dy grupe, (4) a ka ndonjë rrjedhje kohore. Listoni çdo pikë të dyshimtë; Përqendrohuni në gjetjen e rrjedhjes, jo në rregullimin e rezultatit.
Këtu, një pikë e lartë trajtohet si një shenjë për t'u marrë në pyetje, jo për t'u festuar.
Gabimet e zakonshme
- Duke festuar rezultatin "shumë të mirë". Një rezultat shumë i mirë për të qenë i vërtetë është një paralajmërim për rrjedhje, jo një arritje.
- Mësimi i transformimit nga të gjitha të dhënat para ndarjes. Rrjedhja më e zakonshme; Ndani së pari me tubacion.
- Ndarja e serive kohore në mënyrë të rastësishme. Modeli sheh të ardhmen; Ndarja kronologjike është e domosdoshme.
- Duke lënë të njëjtën njësi në dy grupe. Modeli memorizon personin; Ndani sipas grupit.
- Të mos hysh manualisht dhe të mos shkruash në kod. Analiza bëhet e papërsëritshme; gjithçka duhet të jetë në kod dhe Git.
Këshillë: Shkruani një "pem nderi" me dy fjali në fillim të projektit tuaj: "Nuk e kam prekur në asnjë mënyrë grupin e provës para se ta shoh në prodhim. Çdo hap është në kod dhe fara është e fiksuar". Nëse nuk mund t'i nënshkruani këto dy fjali me ndershmëri, rezultati juaj nuk është ende i besueshëm.
Në përmbledhje
Rrjedhja e të dhënave dhe mos riprodhueshmëria janë dy gabimet e heshtura më të shtrenjta në shkencën e të dhënave. Rrjedhja është vizioni i modelit për të ardhmen dhe paraqitet si sukses i rremë; Zgjidhja është të ndash grupin e testit herët, të mësosh transformimet vetëm nga trajnimi (pipeline), të bësh çdo veçori pyetjen "A e kam në momentin e parashikimit" dhe të bësh ndarjen e saktë (kronologjike/grupore). Riprodhueshmëria është të jesh në gjendje të marrësh të njëjtin rezultat dy herë; Zgjidhja e tij është të heqë manualisht hapat, të vendosë farën, të ngrijë versionet dhe të mbajë gjithçka në Git. Inteligjenca artificiale mund t'i rrisë ose zvogëlojë këto rreziqe; Është disiplina juaj ajo që përcakton.
Detyra e aplikimit
Merrni listën e veçorive të një modeli që keni ndërtuar (ose një hipotetik) dhe bëni çdo veçori pyetjen "a e kam këtë informacion në kohën e parashikimit?" me shkrim; Gjeni të paktën një kandidat të rrjedhjes. Më pas plotësoni një listë kontrolli për ta bërë analizën tuaj të riprodhueshme: a është fiksuar fara, a ka hapa manualë, a janë regjistruar versionet, a janë në Git. Rregulloni mangësitë.
listë kontrolli
- [ ] A e pyeta rezultatin "shumë i mirë për të qenë i vërtetë" si sinjalizues për rrjedhje?
- [ ] A i mësova të gjitha transformimet pas ndarjes, vetëm nga trajnimi?
- [ ] A e kam ndarë sipas strukturës së kohës/grupit (kronologjike/GroupKFold)?
- [ ] A e kam bërë të gjithë rastësinë të përsëritshme me farë fikse?
- [ ] A i hoqa hapat manualë dhe a mbajta gjithçka në kontrollin e kodit dhe versionit?