Vienetas 3 / 11

Modelių mokymas ir įvertinimas: tiksli metrika, sąžiningas palyginimas

Pelnas:

  • Gebėjimas pasirinkti metriką, atitinkančią problemos tipą ir verslo kontekstą (PR-AUC / atšaukimas nesubalansuotuose duomenyse, MAE / RMSE regresijoje) ir atpažinti per/nepakankamą mokymąsi.
  • Galimybė interpretuoti kiekvieną metriką pagal pradinę liniją ir išmatuoti nuokrypį bei atskirti triukšmą nuo pažangos naudojant kryžminį patvirtinimą
  • Galimybė pranešti apie neoptimistinius rezultatus derinant hiperparametrus su patvirtinimo rinkiniu ir naudojant bandymų rinkinį tik pabaigoje

Modelių mokymas (mokymas: modelių mokymosi iš duomenų procesas) yra labiausiai matomas, bet labiausiai klaidinantis ML inžinerijos žingsnis. Atrodo, nes gaunamas patenkinamas skaičius, pvz., „95 % tikslumas“. Klaidinantis, nes šis skaičius dažnai yra teisingas atsakymas į neteisingą klausimą. Šiame skyriuje edukacija ir vertinimas aptariamas su inžinerijos disciplina; Dirbtinį intelektą naudojame kaip eksperimentinio projektavimo partnerį ir priimame sprendimą matavimais.

Treniruočių ciklo logika

Modelis išmoksta duomenų šabloną sumažindamas praradimo funkciją: funkciją, kuri skaitiniu būdu įvertina modelio paklaidą. Optimizavimo algoritmas (pvz., gradiento nusileidimas) sumažina nuostolius, pakoreguodamas parametrus žingsnis po žingsnio. Siekiama ne įsiminti treniruočių duomenis, o apibendrinti iki precedento neturinčių duomenų.

Du pagrindiniai pavojai:

  • Per didelis pritaikymas: modelis įsimena treniruočių duomenis ir nepavyksta gauti naujų duomenų. Mokymo sėkmė yra didelė, patikrinimo sėkmė menka.
  • Nepakankamas pritaikymas: modelis negali užfiksuoti modelio; Tiek mokymo, tiek patvirtinimo sėkmė yra menka.

Pusiausvyros radimas yra ugdymo menas. Patvirtinimo rinkinys yra skirtas šiai pusiausvyrai stebėti: jei patvirtinimo sėkmė pradeda mažėti, o treniruočių sėkmė didėja, pradėtas perteklinis mokymasis.

Patarimas: kiekviename žingsnyje aprašykite mokymo ir patvirtinimo praradimą. Taškas, kuriame šios dvi kreivės pradeda skirtis, yra ta vieta, kur prasideda mokymasis ir yra tinkamas momentas „anksti sustoti“.

Metrikos pasirinkimas: svarbiausias sprendimas

Dėl neteisingos metrikos geras modelis atrodo blogai, o blogas – gerai. Problema lemia metriką:

  • Nesubalansuota klasifikacija (viena klasė yra labai reta, pvz., sukčiavimas): tikslumas yra klaidinantis. Modelis, kuris sako „vadinkite viską normaliai“, bus tikslūs 99%, bet nepagaus nė vieno apgaulės. Vietoj to naudojamas tikslumas (kiek to, ką sugavau, iš tikrųjų yra teigiama), prisiminimas (kiek to, ką sugavau, yra tikrai teigiama) ir jų balansas F1 arba PR-AUC.
  • Subalansuota klasifikacija: tikslumas ir ROC-AUC gali būti tinkami.
  • Regresija (skaičių įvertinimas): MAE (vidutinė absoliuti paklaida), RMSE (baudžia už dideles klaidas), MAPE (procentinė paklaida).
  • Reitingas / rekomendacija: NDCG, MRR, Recall@K.

Tai, ar svarbu tikslumas ar prisiminimas, priklauso nuo verslo konteksto. Atšaukimas (nepraleidžiant nė vieno paciento) yra vėžio patikros prioritetas; Svarbus bruožų filtro tikslumas (nesiunčiant svarbių el. laiškų į nepageidaujamą el. laišką). Tai verslo, o ne techninis sprendimas, jį kartu priima inžinierius ir savininkas.

Silpnas raginimas / Stiprus raginimas

Silpnas raginimas: „Įvertink mano modelio veikimą, tikslumas 0,97“.

Galingas raginimas: "Turiu sukčiavimo aptikimo modelį; teigiamos klasės rodiklis yra 1,5%. Nurodytas tikslumas yra 0,97. Paaiškinkite, kodėl ši metrika gali būti klaidinanti, nurodykite, kuriai metrikai (tikslumui, atšaukimui, PR-AUC) turėčiau teikti pirmenybę ir kodėl. Taip pat apskaičiuokite, kiek tikslus bazinis modelis "vadinkite viską neigiamai" gautų šiuos duomenis, taigi, pridėtinę vertę galiu matyti šiuos duomenis.

Skirtumas: galingas raginimas pateikia klasės santykį ir verslo kontekstą; taip pat prašoma palyginti pradinį modelį – tai yra svarbiausias metrikos reikšmingumo pagrindas.

Pradinė padėtis: metrika be palyginimo yra beprasmė

Metrika pati savaime nėra gera ar bloga; Pagal pagrindinį modelį jis yra geras ar blogas. Pagrindinis modelis yra paprasčiausias sprendimas, kuris ateina į galvą: „visada pasakyk daugumos klasei“, „pakartok praėjusios savaitės vertę“, „atspėk vidurkį“. Jei jūsų modelis negali aiškiai priimti šio paprasto sprendimo, visas sudėtingumas yra veltui.

Atsargiai: pats sakinys „Mano modelis yra 85 % tikslus“ nieko nesako. Jei bazinis modelis jau gauna 84%, jūsų modelis yra beveik bevertis; Jei bazinis modelis gauna 50%, jūsų modelis yra tobulas. Visada kalbėkite apie pagrindinį modelį.

Kryžminis patvirtinimas ir pasitikėjimas

Vienintelis mokymo/testavimo padalijimas gali būti dėl atsitiktinumo. Kryžminis patvirtinimas: duomenų padalijimas į k dalių ir kiekvienos dalies patikrinimas nuosekliai parodo, koks stabilus yra veikimas. 5 kartus kryžminio patvirtinimo metu gausite penkis skirtingus balus; Jų vidurkis ir standartinis nuokrypis yra svarbūs. Jei vidurkis yra 80%, bet nuokrypis yra ±12%, jūsų modelis yra nestabilus – kitoje duomenų grupėje jis gali veikti labai skirtingai.

Tai taip pat labai svarbu „dviejų modelių palyginimui“. Jei modelis A gavo 81%, o modelis B - 82%, ar B tikrai geresnis? Jei nuokrypis yra ±3%, šis skirtumas gali būti triukšmas. Prieš priimdami sprendimą, apsvarstykite, ar skirtumas yra reikšmingas.

Hiperparametrų derinimas: su patvirtinimu, o ne testavimu

Hiperparametrai (nustatymai nustatyti rankiniu būdu prieš treniruotę – mokymosi greitis, medžio gylis ir kt.) nustatomi su patvirtinimo rinkiniu. Bandymo rinkinys naudojamas tik pabaigoje, vieną kartą. Jei pasirinksite hiperparametrus žiūrėdami į bandymų rinkinį, bandymų rinkinys bus užterštas ir jūsų praneštas našumas bus optimistinis, o iš tikrųjų taip nėra.

Dirbtinis intelektas yra geras pagalbininkas kuriant hiperparametrų paieškos erdvę ir rašant paieškos kodą (tinklelio paieška, atsitiktinė paieška, Bajeso optimizacija). Bet jūs vis tiek nusprendžiate, „kurią metriką optimizuosime?

trys mini dėklai

1 atvejis – tikslumo gaudyklė. Medikų komanda didžiavosi modeliu, kuris aptiko retą ligą: 98 % tikslumas. Kai buvo atliktas bazinio modelio palyginimas, išaiškėjo tiesa: kadangi susirgimų dažnis buvo 2%, modelis, kuris sakė „vadinkite visus sveikus“, taip pat gavo 98%. Modelio atšaukimas buvo tik 11% – trūko daugumos pacientų. Kai metrika buvo konvertuota į PR-AUC, buvo išmatuotas tikrasis našumas ir modelis buvo perkurtas.

2 atvejis – triukšmo klaidinimas dėl eigos. Komanda praleido mėnesius tobulindama modelį nuo 86,2% iki 86,9%. Kryžminis patvirtinimas parodė, kad paklaida buvo ±1,4 %, taigi 0,7 taško „pagerėjimas“ buvo statistinis triukšmas. Komanda iššvaistė tris savaites nerealiam uždarbiui. Pamoka: neskelbkite pergalės nepatikrinę, kad pagerėjimas yra didesnis už nuokrypį.

3 atvejis – bandymo rinkinio užteršimas. Inžinierius pakartotinai žiūrėjo į bandymų rinkinį, kad pasirinktų geriausius hiperparametrus. 91 % gamyba sumažėjo iki 83 %. Kodėl: jis nesąmoningai pasirinko modelį, žiūrėdamas į bandymų rinkinį vis dar ir dar kartą (per daug mokydamasis bandymo rinkinyje). Pateiktas ir faktinis našumas sutapo, kai buvo naudojamas atskiras patvirtinimo rinkinys.

Kopijuojami šablonai

Padėkite man pasirinkti tinkamą šios klasifikavimo problemos metriką. Problema: [kas prognozuojama] Klasių pasiskirstymas: [teigiamas rodiklis

Įvertinkite šių dviejų modelių palyginimą.A modelio kryžminis patvirtinimas: [balų sąrašas]B modelio kryžminis patvirtinimas: [balų sąrašas]Apskaičiuokite vidurkį ir standartinį nuokrypį. Ar skirtumas yra statistiškai reikšmingas, ar tai tik triukšmas nuokrypio ribose? Kurį rekomenduotumėte rinktis ir kodėl?

Patikrinkite šį mokymo kodą dėl šių dalykų:1) Ar hiperparametrai pasirinkti naudojant testo rinkinį arba patvirtinimo rinkinį?2) Ar ankstyvas sustabdymas stebimas naudojant teisingą rinkinį?3) Ar yra kokių nors persimokymo požymių (mokymo / patvirtinimo praradimo skirtumas)?Kodas: [kodas]

Kurį iš MAE, RMSE ir MAPE turėčiau pranešti dėl šios regresijos problemos?Tikslinio kintamojo skalė: [diapazonas]Ar didelės klaidos yra neproporcingai blogos (RMSE), ar jos visos lygios (MAE)?Ar yra verčių, artimų nuliui (ar jos iškraipo MAPE)?Siūlykite su trumpu pagrindimu.

Metrikos pasirinkimo lentelė

Problemos tipas

Tinkama metrika

Reikia vengti

Kodėl

Nesubalansuota klasifikacija

PR-AUC, F1, atšaukti

Tikslumas

Daugumos klasė išpučia metriką

Subalansuota klasifikacija

Tikslumas, ROC-AUC

Patikimas subalansuotais duomenimis

Regresija (reikšmingas skirtumas)

RMSE

MAPE (jei nulis)

Baudžia už dideles klaidas

Regresija (lygus svoris)

MAE

Lengva interpretuoti

Reitingas / rekomendacija

NDCG, Recall@K

Tikslumas

Svarbu tvarka

Dažnos klaidos

  • Tikslumo naudojimas nesubalansuotiems duomenims. Dažniausia metrinė klaida.
  • Neatlikti bazinių modelių palyginimų. Dėl to metrika praranda prasmę.
  • Žvelgiant į hiperparametrų testų rinkinį. Optimistiškas, nerealus rezultatas.
  • Remdamiesi vienu skyriumi. Be kryžminio patvirtinimo nematysite šališkumo.
  • Triukšmas painiojamas su progresu. Maži „patobulinimai“ nuo nukrypimo dažniausiai yra sėkmė.
  • Verslo konteksto ignoravimas. Tikslumo/atsišaukimo balansas yra verslo sprendimas.

Apibendrinant

Tikrasis modelio mokymo įgūdis yra ne sukurti didelį skaičių, o žinoti, ką šis skaičius reiškia. Problema ir verslo kontekstas nustato tinkamą metriką; interpretuoti kiekvieną metriką pagal bazinį modelį; išmatuokite šališkumą naudodami kryžminį patvirtinimą ir nesupainiokite triukšmo su pažanga; Testo rinkinį naudokite tik pabaigoje, vieną kartą. AI yra jūsų partneris kuriant eksperimentą, tačiau sprendimas „pakankamai geras“ priklauso nuo jūsų ir jūsų.

Taikymo užduotis

Klasifikavimo modeliui: (1) parašykite klasės pasiskirstymą, (2) sukurkite tinkamą bazinį modelį ir išmatuokite jo balą, (3) įvertinkite savo modelį 5 kartus kryžminiu patvirtinimu ir praneškite apie vidurkį bei standartinį nuokrypį, (4) apskaičiuokite problemą atitinkančią metriką (pvz., PR-AUC), o ne tikslumą. Užrašykite, ar jūsų modelis lenkia pradinį modelį dideliu skirtumu be šališkumo.

kontrolinis sąrašas

  • [ ] Metriką pasirinkau pagal problemos tipą ir verslo kontekstą.
  • [ ] Sukūriau bazinį modelį ir palyginau su juo.
  • [ ] Nurodžiau vidurkį ir nuokrypį su kryžminiu patvirtinimu.
  • [ ] Patvirtinau, kad pagerėjimas didesnis nei nuokrypis.
  • [ ] Pasirinkau hiperparametrus su patvirtinimo rinkiniu.
  • [ ] Bandymo rinkinį naudojau tik vieną kartą, pačioje pabaigoje.