Predictive analytics and AI in agriculture
Explanation
Magyarázat
Hajdu Csaba, 2026
Predictive analytics and AI in agriculture
A szétvágás fegyelme, a torzítás-szórás átváltás, az értékelés ritka osztályon, és a küszöb mint gazdasági döntés.
Hajdu Csaba, 2026
The semester
Miért ez az első blokk, és miért nem a modellekkel kezdünk
Üdv. Ez a hét a prediktív analitikáról szól, és rögtön az elején tisztázok valamit: a modellcsaládokkal fogunk a legkevesebbet foglalkozni. Nem azért, mert nem érdekesek, hanem mert a hibák nagy része nem ott keletkezik. Egy agráradaton a legdrágább hiba az, ha rosszul vágtuk szét az adatot — és ennek az a különös tulajdonsága, hogy szebb eredményt ad, nem rosszabbat.
Agráradaton a túl szép eredmény először gyanú, csak azután eredmény.
Szeretném, ha ez a mondat megmaradna a félévből. Ha agráradaton kilencvennyolc százalékos magyarázott hányadot kapsz, az első reakció nem az öröm, hanem a gyanú. Nem azért, mert lehetetlen — hanem mert a leggyakoribb oka nem a jó modell, hanem a szivárgás. És a szivárgás pont ilyen szép számokat ad: ez a természete.
A szivárgás definíciója: a modell olyan információhoz jut, ami a valós használatkor nem áll rendelkezésre. A tünete jó teszteredmény és rossz üzemi teljesítmény — tehát pont az, amit a legnehezebb időben észrevenni. Az oldalsó rajz a `w08-leakage` demóé. A 0,92 nem a modellről szól, hanem a szétvágásról: a jellemzők között ott a koordináta, tehát a modell a HELYET tanulta meg. Üzemben új tábláról kell jósolni.
A `w08-leakage` demó mérése: 810 pont 9 táblán. A nulla vonal alatt a modell rosszabb a puszta átlagnál.
Hogy ne maradjon elvont, itt a szám, amiről az előbb beszéltem. Ugyanaz a modell, ugyanaz az adat, csak a szétvágás más. Véletlen szétvágással az R négyzet nulla egész kilencszázhuszonegy — ezt bárki büszkén leírná egy jelentésbe. Táblánkénti blokkossal mínusz egy egész kettőszázötvenhét. A negatív R négyzetnek pontos jelentése van: a modell rosszabb, mint ha minden táblára a globális átlagot mondanánk. Ugyanaz a modell adta mindkettőt.
A tengely alja szándékosan −1,5, hogy a negatív érték elférjen. Ez nem csonkolás: az R² értelmezési tartománya felfelé korlátos egyben, lefelé viszont nem — a tengelynek a mért adatot kell befognia, és a nulla vonal itt a jelentéshordozó, nem az alja.
A nevezőben az átlaggal jósló modell hibája áll. Az R² tehát viszonyszám, nem abszolút jóság.
Ezért van értelme a negatív R²-nek: a −1,257 azt jelenti, hogy a modell 2,257-szer akkora négyzetes hibát vétett, mint amennyit a puszta átlag vétett volna.
Az oldalsó rajz a `w08-leakage` demóé, és ez a hét legfontosabb száma. UGYANAZ a modell, ugyanaz az adat: véletlen szétvágással 0,921, a táblák szerinti blokkos szétvágással −1,257. A második a valódi: ott a modell olyan táblákra jósolt, amelyekből egyetlen pontot sem látott.
Az alapszerkezet, mielőtt bármit szétvágnánk. A tanítóhalmazon állnak be a paraméterek. A validációs halmazon VÁLASZTUNK: modellt, fokszámot, küszöböt. A teszthalmaz pedig egyszer használható — a legvégső becsléshez. Ha kétszer néztél rá, akkor már nem teszthalmaz, hanem validációs, és a rajta mért szám optimista.
A „kétszer néztem rá” nem szigorúság kérdése. Minden ránézés után hozol egy döntést, és a következő eredmény már azt a döntést is tükrözi. Néhány ilyen kör után a teszthalmaz ugyanolyan optimista, mint a validációs.
A közeli pontok hasonlítanak. Véletlen szétvágásnál ugyanannak a táblának a pontjai a tanítóban ÉS a teszten is ott vannak.
És most az, ami az agráradatot különlegessé teszi. A közeli helyek adatai hasonlítanak egymásra — ugyanaz a talaj, ugyanaz a mikroklíma, ugyanaz a gép járt rajta. Ez nem zavar, hanem a valóság szerkezete. De ha véletlenszerűen vágsz szét, akkor ugyanabból a táblából kerül pont a tanítóba és a tesztbe is, és a szomszédos pontok gyakorlatilag ugyanazt az információt hordozzák. A modell nem a jelenséget tanulja meg, hanem a helyet.
Ez ugyanaz a szerkezet, mint a 6. héten az idősornál: ott a sorrend kötötte össze a megfigyeléseket, itt a hely. Mindkettő ugyanoda vezet — a megfigyelések nem függetlenek, és a véletlen szétvágás ezt figyelmen kívül hagyja. Az oldalsó rajz a `w08-leakage` demóé: 6,5-szeres különbség, ugyanazon a 810 mintavételi ponton. A közeli pontok hasonlítanak — véletlen szétvágásnál ugyanannak a táblának a pontjai a tanítóban és a teszten is ott vannak.
A `w08-leakage` demó mérése: 810 pont 9 táblán, azonos modell és jellemzők.
Itt a mérés, és ez a hét legfontosabb két oszlopa. Nyolcszáztíz mintavételi pont kilenc tábláról, ugyanaz a modell, ugyanazok a jellemzők. Véletlen szétvágással a hiba nulla egész háromszázkilenc tonna hektáronként. Táblánkénti blokkos szétvágással kettő egész nulla nulla öt — hatszorosa. És ez nem a modell romlása: ez a modell valódi teljesítménye egy olyan táblán, amit még nem látott. A másik szám volt a hazugság.
A jellemzők között ott a koordináta. Ez szándékos: pontosan azt mutatja meg, hogy a modell a helyet is használhatja, ha hagyjuk. Vedd ki a koordinátát, és a rés szűkül — de nem tűnik el, mert a talajjellemzők is helyfüggők.
Az ábra betöltése…
A demó teljes ábrája, mert van itt egy szám, amit külön ki kell mondani. A véletlen szétvágás R négyzete nulla egész kilencszázhuszonegy — gyönyörű. A blokkosé mínusz egy egész kettőszázötvenhét. A negatív R négyzet azt jelenti, hogy a modell rosszabb, mint ha minden táblára a globális átlagot mondanánk. Nem gyengébb — rosszabb a semminél. És ugyanaz a modell adta mindkettőt.
A kihagyott táblák a 3., a 6. és a 8. voltak. Érdemes megnézni táblánként is: van, ahol a modell elfogadhatóan viselkedik, és van, ahol teljesen eltéved. Az átlag ezt elfedi — ezért kell a blokkos keresztvalidációnál a táblánkénti hibát is közölni, nem csak az átlagát.
Egy kollégád talajmintákból jósol hozamot, és véletlen szétvágással kilencvenöt százalékos magyarázott hányadot kap. A jellemzők között nincs koordináta. Biztonságban van?
Egy kollégád talajmintákból jósol hozamot, és véletlen szétvágással kilencvenöt százalékos magyarázott hányadot kap. A jellemzők között nincs koordináta. Biztonságban van?
A megoldás egyszerű, és pont ezért nehéz elfogadni: nem a modellen kell javítani, hanem a szétvágáson. Blokkokat képzel — táblát, dűlőt, évet —, és egész blokkokat hagysz ki. Amit mérsz, az így az a kérdés, ami valóban érdekel: mit tud a modell egy olyan táblán, amit még nem látott. Agráradaton ez az alapértelmezés, nem a kivétel.
A blokk mérete döntés: ha túl kicsi, a szomszédos blokkok között marad átfedés; ha túl nagy, kevés kör marad, és a becslés zajos lesz. A gyakorlati szabály: a blokk legyen nagyobb, mint az a távolság, amin belül az adat még korrelál.
Nem csak a térbeli szivárgás létezik. Négy formát érdemes fejből tudni, mert mind a négy előfordul agrárprojektben. Az időbeli: a jövőből tanulsz a múltra. A csoportos: ugyanaz a tábla vagy egyed több sorban. A célváltozóból származó jellemző: olyasmi került a bemenetbe, ami csak utólag ismert. És az előfeldolgozási: a skálázást vagy a hiánypótlást a teljes adaton csináltad, a szétvágás előtt.
A negyedik a legalattomosabb, mert kódolási szokásból ered: kényelmes az egészen normalizálni, aztán szétvágni. A teszthalmaz átlaga így beszivárog a tanításba — kicsit, de rendszeresen, és pont a becslést optimistává tevő irányba.
A cella betöltése…
Ez a demó teljes kimenete. Futtasd le, és próbáld ki a kézenfekvő javításokat: vedd ki a koordinátát, csökkentsd a modell összetettségét, adj hozzá regularizációt. Egyik sem fogja megszüntetni a rést — és ez a lényeg. A szivárgást nem lehet modellezési eszközzel kijavítani, mert nem modellezési hiba.
Az egyetlen dolog, ami a rést valóban szűkíti: több különböző tábla a tanításban. Nem több pont ugyanazokról — több TÁBLA. Ez ugyanaz a szerkezet, mint a gépi látás modulban a több növény kontra több felvétel kérdés.
A blokk zárása, és ez a küldetés beadandójának is a váza. Három dolgot kell közölni minden prediktív eredménynél. Egy: hogyan vágtad szét az adatot, és miért úgy. Kettő: mi az a kérdés, amire a mért hiba válaszol — ugyanaz a tábla, vagy új tábla. Három: mennyi a hiba abban az egységben, amiben a döntés születik, tonnában vagy forintban, nem R négyzetben.
Az R² és a korrelációs együttható rangsorolásra jó, döntésre nem. A gazda nem magyarázott hányadot vet el, hanem vetőmagot — a hibát abban az egységben kell megadni, amiben a döntés árát mérik.
Egy átváltás, amiből a modellválasztás nagy része következik
Második blokk. Most jönnek a modellek — de nem katalógusként. Egyetlen átváltást szeretnék megértetni, mert abból a modellválasztás nagy része következik, és mert ez magyarázza meg, miért nem a bonyolultabb modell a válasz.
teszthiba = torzítás² + szórás + zaj. Az első kettő ellentétesen mozog a modell összetettségével; a harmadik nem mozdul.
Ez a hét egyetlen képlete, és megéri. A teszthiba három részre bomlik. A torzítás négyzete: mennyire téved a modell rendszeresen, minden tanítóhalmazon ugyanúgy — ez a túl egyszerű modell hibája. A szórás: mennyire ugrál a modell attól függően, milyen adatot kapott — ez a túl bonyolulté. És a zaj: amit senki nem tud megtanulni, mert nincs benne információ. Az első kettő ellentétesen mozog, és ez az átváltás.
A zaj tagja nem a modelltől függ, hanem a jelenségtől és a méréstől. A mérésünkben ez 0,0625 — a legjobb modell teszthibája sem ment 0,0773 alá. Aki ennél kisebb hibát közöl ugyanezen az adaton, az nem jobb modellt talált, hanem szivárgást. Az oldalsó rajz az `ml-biasvariance` demóé. A két tag ellentétesen mozog: a torzítás csökken, a szórás nő. A tizedfokú szórása 9,0364 — az nem fér erre a rajzra, és nem is kell: a váltás iránya már két fokszámból látszik. A zaj — 0,0625 — egyiktől sem függ, és egyik modell sem megy alá.
Három tag, három ok. Az első kettőt a modellválasztás mozgatja, a harmadikat semmi.
Harmadfokú illesztésnél: torzítás² 0,0056 + szórás 0,0093 + zaj 0,0625 = 0,0774. A mért teszthiba 0,0773. A felbontás tehát nem szemléltetés, hanem azonosság.
Az oldalsó rajz a `ml-biasvariance` demóé. Vedd észre, melyik tag a legnagyobb: a ZAJ. A modellválasztással elérhető teljes nyereség a másik két tagban van, együtt 0,0149 — a padló négyötöde nem mozdítható. Aki erről elfelejtkezik, az egy 0,0625-ös feladaton tovább hangol egy 0,0773-as modellt.
Az `ml-biasvariance` demó mérése: 40 tanítópont, 300 tanítóhalmaz, harmadfokú igazság.
És itt a mérés. Tíz fokszám, mindegyikhez háromszáz független tanítóhalmaz, negyven ponttal. A teszthiba a harmadik fokszámnál a legkisebb: nulla egész nulla hétszázhetvenhárom. Balra tőle a torzítás dominál, jobbra a szórás. És nézd meg a jobb szélét: a tizedik fokszámnál kilenc egész egy. Nem tizedekkel romlott — százhússzorosára.
Az U alakja nem sima: a 4. és a 8. fokszámnál kisebb a hiba, mint a szomszédjánál. Ez nem mérési zaj, hanem a páros-páratlan polinomok szerkezete — és jó emlékeztető arra, hogy a hiperparaméter-keresést nem szabad a legelső lokális minimumnál abbahagyni.
Ugyanaz a mérés, a teszthiba két mozgó tagjára bontva. A tengely nulláról indul.
És a bontás, ami megmagyarázza az U alakot. A torzítás négyzete gyorsan leesik: az első fokszámnál nulla egész nulla kettőszáztizennyolc, a harmadiknál már nulla egész nulla nulla ötvenhat — a harmadfokú igazságot egy harmadfokú polinom természetesen el tudja találni. A szórás viszont végig nő, és a hetedik fokszám után elszabadul. A tizediknél kilenc egész nulla harminchat. Ez a szám a blokk lényege.
A torzítás az ötödik fokszámtól gyakorlatilag nulla — a modell onnantól bármit el tud találni. Az ár a szórásban jelenik meg, és nem lineárisan: hétről tízre menve hatvanszorosára nő. Ezért nem igaz az, hogy „a bonyolultabb modell legfeljebb ugyanolyan jó”.
Az ábra betöltése…
A demó saját ábrája, mert itt a két dolog egymás mellett látszik: a hibabontás és az, ahogy a modellek valójában viselkednek. Nézd meg a magas fokszámú illesztéseket. Nem rosszabbul találják el az átlagot — pontosan találják el —, csak minden tanítóhalmazon máshol csapkodnak. Ez a szórás, és ettől lesz megbízhatatlan a modell, nem a pontatlanságtól.
Ezért van az, hogy a túlillesztett modell a bemutatón jól szerepel és üzemben megbukik: a bemutató egyetlen tanítóhalmazt mutat, az üzem viszont a szórást is megtapasztalja.
A cella betöltése…
A cella itt fut. A csavar a zaj nagysága: ötödöld meg, és nézd meg, mi történik. Két dolog fog változni. A padló lejjebb megy — az nyilvánvaló. De az optimális fokszám is arrébb kerül, és ez a kevésbé nyilvánvaló: kevesebb zaj mellett megéri bonyolultabb modellt használni, mert a szórástag kisebb árat kér.
A demó minden fokszámhoz háromszáz tanítóhalmazt használ. Kevesebbel a szórástag becslése maga is ingadozna, és akkor a felbontás összege nem adná ki a teszthibát — pontosan az veszne el, ami ezt a mérést meggyőzővé teszi.
A gyakorlati megkülönböztetés, és ehhez elég két szám: a tanítási és a teszthiba. Ha mindkettő nagy, akkor a modell nem elég kifejező — alulillesztés —, és ilyenkor a bonyolítás valóban segít. Ha a tanítási kicsi és a teszt nagy, akkor túlillesztés, és a bonyolítás rontani fog. A két esetre ellentétes a gyógyszer, ezért kell megkülönböztetni őket, mielőtt hozzányúlnánk a modellhez.
Van egy harmadik eset is, amit nem szoktak felírni: mindkét hiba kicsi, és mégis rossz az üzemi teljesítmény. Az nem illesztési probléma, hanem szivárgás vagy eltolódás — az előző és a következő blokk tárgya.
Egy hozambecslő modellnél a tanítási hiba nulla egész egy, a teszthiba nulla egész kilenc tonna hektáronként. A kollégád azt javasolja, hogy váltsatok gradiens erősítésről neuronhálóra. Mit mondasz?
Egy hozambecslő modellnél a tanítási hiba nulla egész egy, a teszthiba nulla egész kilenc tonna hektáronként. A kollégád azt javasolja, hogy váltsatok gradiens erősítésről neuronhálóra. Mit mondasz?
És a létra, amin érdemes felfelé haladni — alulról. A lineáris regresszió alapvonalnak való, és az együtthatói értelmezhetők. A döntési fa egyedül instabil, de a belőle épített együttesek erősek. A véletlen erdő robusztus és alig kíván hangolást — jó második alapvonal. A gradiens erősítés táblázatos adaton általában a győztes. A tetején a neuronháló van, és táblázatos agráradaton ritkán éri meg odáig menni.
A létra nem arra való, hogy a tetejére másszunk. Arra, hogy tudjuk, hol állunk meg. Ha a gradiens erősítés nem veri meg érdemben a lineáris alapvonalat, akkor a probléma nem a modellcsaládban van, hanem a jellemzőkben vagy az adatban.
A jellemzők megválasztása általában többet számít, mint a modellcsaládé. Új jellemző új információ; új modellcsalád nem az.
Ez a blokk gyakorlati zárómondata. A modellcsalád megválasztása ritkán hoz annyit, mint egy jó jellemző. Egy hőösszeg-alapú fenológiai jellemző többet ad a hozambecslésnek, mint a lineárisról gradiens erősítésre váltás — mert az előbbi új információt visz be, az utóbbi ugyanabból az információból próbál többet kihozni. Amikor a modell nem elég jó, először azt kérdezd meg, mit nem tud még.
A regularizáció ugyanebbe a sorba tartozik: a modell összetettségének büntetése a tanulás során. Hasznos eszköz a szórás ellen — de a szivárgást nem javítja meg, és a hiányzó jellemzőt nem pótolja. Az oldalsó rajz az `ml-biasvariance` demóé. A családválasztás 0,0116-ot mozgat; a teszthiba 81 százaléka alatta van, és ahhoz a modellcsaládnak semmi köze. Új jellemző ezt le tudja vinni, mert új információt hoz.
Az `ml-biasvariance` demó mérése: ugyanaz az adat, három fokszám, és a zaj alsó korlátja.
Nézzük meg, mekkora az a tartomány, amin belül a modellcsalád megválasztása egyáltalán mozoghat. Ugyanaz a negyven tanítópont, ugyanazok a jellemzők, csak a fokszám változik. Az elsőfokú teszthibája nulla egész nulla-nyolc-nyolc-kilenc. A legjobb, a harmadfokú, nulla egész nulla-hét-hét-három. A különbség nulla egész nulla-egy-egy-hat — ennyit hozott az, hogy a helyes családot találtuk el. És most nézd az utolsó oszlopot: nulla egész nulla-hat-két-öt a zaj, ami alá semmilyen modell nem megy. A teszthiba nyolcvanegy százaléka tehát olyasmi, amihez a modellcsaládnak semmi köze. Új jellemző ezt le tudja vinni, mert új információt hoz; új modellcsalád nem.
A tizedik fokszám szándékosan hiányzik az ábráról: kilenc egész egy a teszthibája, ami agyonnyomná a másik hármat. Rossz családdal természetesen korlátlanul lehet rontani — a dia állítása a másik irányról szól: a javítás felső határa szűk, és azt a zaj szabja meg, nem az ötletesség.
Miért hazudik a pontosság, és mi helyette
Harmadik blokk. Az agrárban a legtöbb prediktív feladat ritka eseményről szól: betegséggóc, kártevőfertőzés, géphiba, minőségi selejt. Ezek néhány százalékban fordulnak elő — és ettől minden szokásos mérőszám félrevezet. Ez a blokk arról szól, melyik szám mit mond, és melyiket nem szabad leírni.
A `w08-threshold` demó mérése: 14,6 %-os esetarány, 0,5-ös döntési küszöb.
Kezdjük egy alapvonallal, ami megalázó és tanulságos. Az adatban az esetek tizennégy egész hat százaléka valódi. Ha építek egy modellt, amelyik mindig nemet mond — nulla sor kód, nulla tanítás —, annak a pontossága nyolcvanöt egész négy százalék. A valódi modell nyolcvannyolc egész kettő. Két egész nyolc százalékpont a különbség. Ha valaki nyolcvannyolc százalékos pontosságot jelent, és nem mondja meg az esetarányt, akkor nem mondott semmit.
Ezért kell minden osztályozási eredmény mellé kiírni az esetarányt. Enélkül a pontosság nem értelmezhető — és minél ritkább az esemény, annál kevésbé. Egy egy százalékos betegséggócnál a mindig-nemet-mondó pontossága kilencvenkilenc százalék.
| a modell IGENT mond | a modell NEMET mond | |
|---|---|---|
| valóban eset | találat | kimaradt eset — a drága |
| valóban nincs | téves riasztás — az olcsó | helyes elutasítás |
Mielőtt bármelyik mérőszámot használnánk, érdemes a zavarási mátrixot felírni, mert minden más ebből a négy számból jön. Két hibafajta van, és nem egyforma az áruk. A téves riasztás: kimegyünk, permetezünk, és nem volt semmi. A kimaradt eset: nem megyünk ki, és a góc szétterjed. Agrárban ez a kettő rendszerint nagyságrendekkel eltérő költségű — és ebből következik a blokk többi része.
A precizitás a felső sorból jön: a riasztásaim közül hány volt valódi. A fedés a bal oszlopból: a valódi esetek közül hányat találtam meg. A kettő egymás rovására megy, és a küszöb dönti el, hol állunk közöttük.
Öt mérőszám, egy táblázat. A különbség mindig a nevezőben van: mihez viszonyítasz.
A `w08-threshold` demóban az esetarány 14,6 %, tehát a mindig-nemet-mondó pontossága 85,4 %. A modell 0,5-ös küszöbnél 88,2 %-on áll — alig 2,8 ponttal jobb annál, amit ingyen kapnánk. Ugyanez a modell ROC-AUC-ban 0,880-at ér: a rangsorolása tehát jó, csak a küszöb rossz.
A harmonikus közép azért bünteti az egyensúlytalanságot, mert a reciprokokat átlagolja: precizitás 1,0 és fedés 0,02 mellett a számtani közép 0,51 lenne, az F1 viszont 0,039. Egy mérőszám, ami 0,51-et mondana erre a modellre, használhatatlan.
| mérőszám | érték | mit jutalmaz |
|---|---|---|
| ROC-AUC | 0,880 | a helyes elutasításokat is |
| PR-AUC | 0,605 | csak a riasztásokat |
| a kettő rése | 0,275 | ennyit fed el a ROC ritka osztályon |
Két görbe alatti terület van forgalomban, és ritka osztálynál nagyon eltérőt mondanak. A mérésünkben a ROC-AUC nulla egész nyolcszáznyolcvan — ez jól hangzik. A precizitás-fedés görbe alatti területe nulla egész hatszázöt. Ugyanaz a modell, ugyanaz az adat. A különbség onnan jön, hogy a ROC a helyes elutasításokat is jutalmazza, és azokból ritka osztálynál rengeteg van. A PR-görbe csak a riasztásokat nézi — és a döntés is azokról szól.
A ROC-AUC nem hibás mérőszám, csak más kérdésre válaszol: milyen jól rangsorol a modell, ha egy véletlen esetet és egy véletlen nem-esetet hasonlítunk össze. Ritka osztálynál ez a kérdés nem a döntés kérdése.
A ROC alapvonala rögzített, a PR-é az esetaránnyal mozog. Ritka eseménynél ez nagyságrendi különbség.
Ebből következik, mikor melyiket érdemes jelenteni. A ROC-AUC két adathalmaz között összehasonlítható, mert az alapvonala mindig ugyanaz. A PR-AUC viszont az ADOTT esetarányhoz szól — és éppen ezért mond többet arról, mennyire használható a modell ezen a feladaton.
Az oldalsó rajz a `w08-threshold` demóé. A két oszlopár együtt olvasandó: a ROC-AUC 0,880 az 0,5-ös alapvonal fölött 1,76-szoros, a PR-AUC 0,605 a 0,146-os alapvonal fölött 4,1-szeres. Ugyanaz a modell — a második szám mondja meg, mennyit ér ezen a ritka eseményen.
A cella betöltése…
A demó teljes kimenete, mert a következő blokkhoz ezekre a számokra fogunk építeni. Két dolgot jegyezz meg innen. Az egyik: a ROC és a PR közötti rés — nulla egész nyolcnyolc kontra nulla egész hatnulla. A másik: a költségsor, mert a következő blokk arról szól. Ugyanez a modell, ugyanez az adat, csak a küszöb változik — és a költség hatvankilenc százalékkal esik.
Írd át az esetarányt a jegyzetfüzetben, és nézd meg, hogyan mozdul együtt a mindig-nemet-mondó pontossága és a PR-AUC. A ROC-AUC alig mozdul — ez maga a jelenség, amiről ez a dia szól.
Kalibrált a modell, ha amire 70 %-ot mond, abból tényleg 70 % következik be. Ez nem következik a jó rangsorolásból.
És most egy tulajdonság, amiről ritkán esik szó, pedig a döntéshez elengedhetetlen. Ha a modell hetven százalékot mond, akkor azokból az esetekből, ahol hetvenet mondott, nagyjából hétből hétnek be kell következnie. Ez a kalibráció. A rangsorolástól FÜGGETLEN: egy modell tökéletesen rangsorolhat, és mégis rendszeresen túl magas valószínűségeket mondhat. És ha küszöböt akarsz számolni, akkor a rangsor nem elég — a szám jelentése kell.
A logisztikus regresszió kimenete alapból nagyjából kalibrált. A fákból épített együtteseké nem, és a támaszvektor-gépé végképp nem — azokat utólag kalibrálni kell, ha a valószínűségre döntést építünk. Az oldalsó rajz az `ml-calibration` demóé. A két modell ROC-AUC-ja gyakorlatilag azonos (0,856 és 0,855) — a rangsorolás nem romlott. Csak az ígéret lett hamis, és a küszöböt arra számoljuk.
A Brier a négyzetes eltérés átlaga, a kalibrációs hiba a sávonkénti ígéret és valóság különbsége.
A kiegyensúlyozott mintán tanított modell Brier-pontszáma 0,1619 a természetes minta 0,0748-a helyett — miközben a ROC-AUC-ja gyakorlatilag ugyanaz, 0,855 és 0,856. A rangsorolás tehát nem romlott, csak az ígéret lett hamis.
Az oldalsó rajz az `ml-calibration` demóé, és ez a legbeszédesebb szám: a valódi esetarány 0,110, a természetes mintán tanított modell átlagosan 0,117-et ígér — majdnem pontosan annyit. A kiegyensúlyozott mintán tanított 0,359-et, háromszorosát. A kiegyensúlyozás nem hibát javított, hanem hazuggá tette a valószínűséget.
Az `ml-calibration` demó mérése: ugyanaz a modell, kétféle tanítómintán.
Itt a mérés, és ez a blokk legmeglepőbb eredménye. Két modell: az egyik a természetes, tizenegy százalékos esetarányú mintán tanult, a másik mesterségesen kiegyensúlyozotton — ez a bevett recept a ritka osztályra. A rangsorolásuk gyakorlatilag azonos: nulla egész nyolcötvenhat kontra nulla egész nyolcötvenöt. A kiegyensúlyozás tehát semmit nem tett jobbá. A kalibrációs hibája viszont huszonegyszerese.
Az átlagos ígért valószínűség a természetes mintán 0,117, a valódi esetarány 0,110 — ez jó. A kiegyensúlyozotton 0,359. A modell tehát háromszor olyan gyakorinak mondja az eseményt, mint amilyen. Aki erre számol küszöböt vagy várható költséget, rosszul számol.
Egy betegséggóc-előrejelző modellt kiegyensúlyozott mintán tanítottak, és a ROC-AUC-ja kiváló. A gazdának azt mondják, hogy ahol a modell hetven százalék fölötti kockázatot jelez, ott permetezzen. Mi a baj?
Egy betegséggóc-előrejelző modellt kiegyensúlyozott mintán tanítottak, és a ROC-AUC-ja kiváló. A gazdának azt mondják, hogy ahol a modell hetven százalék fölötti kockázatot jelez, ott permetezzen. Mi a baj?
Az ábra betöltése…
A demó saját ábrája. A megbízhatósági görbe azt rajzolja ki, amit az előbb elmondtam: a vízszintes tengelyen az, amit a modell ígért, a függőlegesen az, ami bekövetkezett. Az átló a tökéletes kalibráció. A természetes mintán tanult modell közel fut hozzá. A kiegyensúlyozott jóval alatta — mindenütt többet ígér, mint amennyi teljesül.
Ezt az ábrát érdemes minden valószínűséget közlő modellhez elkészíteni, és a jelentésbe betenni. Olcsó, egyetlen ábra, és megválaszolja azt a kérdést, amit a ROC-AUC nem: mit jelent a modell kimondott száma.
A cella betöltése…
Itt a cella. A csavar a sávok száma: állítsd huszonötre a tíz helyett. Ha a mért kalibrációs hiba nem változik érdemben, akkor a mérés stabil; ha igen, akkor a sávozás választása maga is befolyásolja az eredményt — és ezt egy jelentésben ki kell mondani. Ez a fajta ellenőrzés nem külön feladat: ez a mérés része.
A két modell ROC-AUC-ja gyakorlatilag azonos — 0,856 és 0,855. Aki csak ezt a számot nézi, nem lát különbséget. A Brier és a kalibrációs hiba viszont kétszeres, illetve húszszoros eltérést mutat.
csak az esetaránnyal
ha a két hiba ára eltér
ritka osztály, küszöbfüggetlen
rangsorolás, de optimista
ha valószínűségre döntünk
A blokk összefoglalása, és ez a lista a beadandóhoz is használható. A pontosság: csak az esetaránnyal együtt. A precizitás és a fedés: ha a két hibafajta ára eltér. A PR-AUC: ritka osztálynál küszöbfüggetlen összevetéshez. A ROC-AUC: rangsorolás összevetéséhez, de ritka osztálynál optimista. A Brier-pontszám és a kalibrációs hiba: ha a valószínűségre döntést építünk.
Amikor az adatból cselekvés lesz, és ami utána jön
Utolsó blokk. Eddig arról volt szó, hogyan mérjük a modellt. Most arról lesz, hogyan lesz belőle döntés — és mi történik vele azután, hogy üzembe állt. Ez a két dolog az, amiről a modellezési tanfolyamok a legkevesebbet beszélnek, és amiből a valódi projektek nagy része megbukik.
A 0,5-ös küszöb akkor helyes, ha a két hibafajta ára egyenlő. Agrárban szinte soha nem az.
A legtöbb eszköz alapból nulla egész ötnél vág. Ez nem elméletből jön, hanem kényelemből. A helyes küszöb két ártól függ: mennyibe kerül a téves riasztás, és mennyibe a kimaradt eset. Ha ez a kettő egyenlő, akkor a nulla egész öt tényleg jó. Agrárban szinte soha nem egyenlő — egy fölösleges permetezés ára a szeré és a gépidő, egy kimaradt gócé a tábla.
Ebből az is következik, hogy a küszöb nem a modell tulajdonsága, hanem a döntésé. Ugyanaz a modell két gazdaságnál két különböző küszöbbel működhet, ha náluk mások az árak — és ez nem következetlenség, hanem helyes használat. Az oldalsó rajz a `w08-threshold` demóé. A kimaradt eset tizennyolcszor drágább a téves riasztásnál, ezért van az optimum 0,03-nál — az elméleti érték 0,053, kalibrált valószínűségnél.
A küszöb a két hibafajta árának hányadosából jön, nem a modellből.
A képlet feltétele, hogy a modell valószínűsége kalibrált legyen — különben a bal oldalon álló szám nem az, aminek látszik. Ezért volt az előző blokk a kalibrációról.
A két árat a szakterület adja, nem az adatelemző. Ha a gazda nem tudja megmondani, mennyibe kerül egy kimaradt góc, akkor a küszöbről sem lehet dönteni — és ezt ki kell mondani, nem 0,5-tel elfedni.
A `w08-threshold` demó költségaránya. A megszokott 0,5 akkor lenne helyes, ha a két ár egyenlő volna.
t=1 / (1 + 18)=0,05küszöb
Húzd a csúszkát, és nézd, mi mozdul.
Két csúszka: mibe kerül egy téves riasztás, és mibe kerül egy kimaradt eset. A küszöb ebből a KÉT SZÁMBÓL jön, nem a modellből — és ezért nem statisztikai kérdés, hanem üzleti. Az alapbeállítás egy permetezési döntés aránya: a fölösleges permetezés egy egység, a kimaradt fertőzés tizennyolc. A küszöb nulla egész nulla ötvenhárom. Most told a kimaradt eset árát háromra: a küszöb nulla egész huszonötre ugrik. Ugyanaz a modell, ugyanaz az adat — más döntés, mert más a költség.
A demó rácson is végigkeresi az optimumot, és a zárt alakkal egyező 0,053-at találja. A megszokott 0,5-ös küszöbnél a költség 1960 egység, az optimumon 608 — 69 %-kal kevesebb, ugyanazzal a modellel. Ez a dia magyarázza meg, miért nem a pontosság a jelentés fő száma.
A `w08-threshold` demó mérése: teljes költség a küszöb függvényében.
És a mérés. Ugyanaz a modell, ugyanaz az adat, csak a küszöb változik. Nulla egész ötnél a teljes költség ezerkilencszázhatvan. A költségoptimális küszöbnél hatszáznyolc — hatvankilenc százalékkal kevesebb. Ez nem modellfejlesztés: egyetlen szám átírása. A legolcsóbb javítás, ami egy prediktív rendszeren elvégezhető, és a legtöbb helyen elmarad.
A mért optimum 0,03, az elméleti 0,053. A kettő nem egyezik pontosan, és ezt érdemes kimondani: a költséggörbe az optimum körül lapos, tehát a minimumhelye érzékeny a modell kalibrációjára. A tanulság nem a pontos szám, hanem a nagyságrend — a helyes küszöb tizedakkora, mint a megszokott.
Az ábra betöltése…
A demó saját ábrája, mert a görbe alakja többet mond, mint a két oszlop. Nézd meg, milyen lapos a minimum környéke. Ebből két dolog következik. Az egyik megnyugtató: nem kell eltalálni a pontos optimumot, elég a nagyságrend. A másik kellemetlen: a minimum helye ezért bizonytalan, és ha az árakat rosszul becsülöd, azt a görbe nem fogja megmondani. A laposság tehát egyszerre bocsánat és csapda.
Az ábra bal széle, a nulla közeli küszöb, a „mindenre riassz” stratégia: sok téves riasztás, de nincs kimaradt eset. A jobb széle a „soha ne riassz”. Mindkettőnek van értelmes ára, és a görbe ezek között találja meg az egyensúlyt.
Egy gazdaságban a permetezés hektáronként nyolcezer forint, egy kimaradt gócból származó veszteség átlagosan kétszáznegyvenezer. A modell kalibrált. Hol van a küszöb?
Egy gazdaságban a permetezés hektáronként nyolcezer forint, egy kimaradt gócból származó veszteség átlagosan kétszáznegyvenezer. A modell kalibrált. Hol van a küszöb?
A modell nem romlik el. Az adat mozdul el alóla — új fajta, új gép, más szezon, cserélt szenzor.
És ami a bevezetés után jön. A modell nem romlik el magától — a világ változik körülötte. Új fajta kerül a táblákra, új gépet vesznek, jön egy szokatlan szezon, kicserélik a szenzort. Az adat, amin a modell dolgozik, eltér attól, amin tanult. Ez az eloszláseltolódás, és a kellemetlen tulajdonsága az, hogy nem ad hibaüzenetet: a modell ugyanúgy ad számot, csak az rosszabb.
A gépi látás modulban ugyanez a tartományeltolódás: ott a megvilágítás mozdult el, és a modell magabiztossága közben alig változott. A jelenség ugyanaz, csak más bemeneten — és a védekezés is ugyanaz: az üzemi adatból visszamérni, nem a validáción hinni. Az oldalsó rajz a `cv-domainshift` demóé. A modell nem romlott el: az adat mozdult el alóla. És nem is jelez — a döntéseihez tartozó magabiztossága alig változik.
Bemeneti eltolódás · címke-eltolódás · fogalmi sodródás. Csak a harmadikhoz kell mindenképp új címke.
Az első kettő azért figyelhető címke nélkül is, mert csak a bemenetek, illetve a becsült valószínűségek eloszlását kell nézni — azok üzem közben is megvannak. A harmadikhoz tudni kell, mi lett a valóság, tehát meg kell várni a betakarítást.
A gyakorlatban a három ritkán jár külön. Egy új fajta bevezetése egyszerre változtat a bemenetek eloszlásán és a kapcsolaton — ezért nem elég a súlyozás, és ezért kell az üzemi mérés úgy tervezni, hogy a címke később megérkezzen.
Az ábra betöltése…
Az eloszláseltolódást a gépi látás modulban mértük meg a legélesebben, és érdemes ideemelni, mert ott látszik a legjobban. Egy színalapú osztályozó azonos megvilágításon kilencvenegy egész egy százalékot ér el, délutáni fényen ugyanez hatvanhét egész hat. És ami a legfontosabb: a modell magabiztossága közben alig változik. Nem jelez. Pontosan ezért nem elég a validáción hinni — az üzemi adatból kell visszamérni.
A jelenség táblázatos adaton ugyanilyen, csak nehezebb szemléltetni: ott nem látod, hogy „más a fény”. Ezért kell a BEMENET eloszlását figyelni — ha a jellemzők elmozdultak, az előre jelzi a bajt, még mielőtt a hozam kiderülne.
Ezért zárom a hetet ezzel a körrel. A tanítás és az értékelés csak az első két lépés. Utána jön az üzembe állítás, a figyelés, az eltolódás észlelése, és az újratanítás — majd elölről. Amit érdemes megjegyezni: az újratanítás szabályát ELŐRE kell kimondani. Mikor tanítunk újra, milyen adaton, és mi alapján fogadjuk el az új modellt. Ha ez nincs kimondva, akkor az újratanítás akkor történik, amikor valaki panaszkodik.
A figyelés nem feltétlenül a modell hibáját jelenti — az gyakran csak késve derül ki. Olcsóbb és gyorsabb a BEMENET figyelése: ha a jellemzők eloszlása elmozdult, az előre jelzi a bajt, még mielőtt a hozam kiderülne.
Egy utolsó figyelmeztetés, mert ez a rész szokott a legtöbb félreértést okozni. A beépített fontossági mutatók a korrelált és a sok értékű jellemzőket felülértékelik — önmagukban nem magyarázat. A permutációs fontosság becsületesebb, mert a tényleges teljesítményromlást méri. A SHAP-érték egyetlen előrejelzést bont fel. De mindhárom a MODELLT magyarázza, nem a valóságot: ha a modell rossz okból jól teljesít, a magyarázat azt az okot fogja megmutatni.
Az oksági következtetéshez kísérlet kell, nem magyarázómódszer. Ha a modell szerint a szervesanyag-tartalom a legfontosabb jellemző, abból nem következik, hogy szervesanyagot kell bevinni — csak az, hogy a modell arra támaszkodik.
Az ábra betöltése…
Zárásként visszateszem a hét első ábráját, mert a küldetésben pontosan ezt kell előállítanod a saját adatodon. Két szétvágás, két hibaérték, egy ábra. Nem új mérést kérek, hanem ugyanezt — és azt a mondatot, hogy melyik számot írnád le egy jelentésbe. A visszatérés szándékos: amit a hét elején furcsának találtál, annak a végére magától értetődőnek kell látszania.
Egy ábrát kétszer megmutatni az előadáson nem pazarlás, ha a második alkalommal mást jelent. Elsőre meglepetés volt; most feladatkiírás. Ez a 5. hét tanulságának az alkalmazása: ugyanaz a rajz, más állítás — és az állítást a szöveg mondja ki, nem a rajz.
Szivárogtass, aztán javítsd meg. A beadandó a két hibaérték, és hogy melyiket írnád le.
A heti küldetés pontosan az, amit az első blokkban mértünk, csak a te adatodon. Taníts be ugyanazt a modellt kétszer: egyszer véletlen szétvágással, egyszer térbeli blokkos keresztvalidációval. A beadandó a két hibaérték, és annak kimondása, melyiket írnád le egy jelentésbe. A különbség nagysága a küldetés valódi tanulsága — nálunk hatszoros volt.
Egy mondatot érdemes még beletenni: mennyibe kerülne az a különbség, ha a rossz számra építve hoztatok volna beruházási döntést. Nem kell pontos szám — a nagyságrend is elég ahhoz, hogy a szétvágás ne formalitásnak látsszon.
a szétvágás egysége a tábla, nem a mintavételi pont; enélkül a szomszéd pont átszivárog
a teszthiba két mozgatható tagja: a rendszeres tévedés és a tanítóhalmaztól való függés; a harmadik tag a zaj, azt semmi nem mozdítja
a modell a zajt is megtanulta, vagy a jelet sem; a tanító és a teszt hibájának viszonya árulja el, melyik
lineáristól a hálóig; a létrán csak akkor lépünk följebb, ha a mérés indokolja
a ritka eset miatt a pontosság félrevezet; a kiegyensúlyozás pedig a valószínűséget teszi hazuggá
a két értékelési görbe; a ROC alapvonala mindig 0,5, a PR-é maga az esetarány
a valószínűség ígéret: amikor a modell 70 %-ot mond, az esetek 70 %-ában legyen eset
Ez volt a nyolcadik hét. Egy mondatban: a modellhiba nagy része nem a modellben van, hanem abban, hogyan vágtuk szét az adatot, mivel mértük, és hol húztuk meg a küszöböt.
| Rövidítés | Feloldás | Mit jelent |
|---|---|---|
| TP | True Positive — valódi találat | a modell igent mondott, és tényleg eset |
| FP | False Positive — téves riasztás | a modell igent mondott, de nem eset |
| FN | False Negative — kimaradt eset | a modell nemet mondott, pedig eset |
| TN | True Negative | a modell nemet mondott, és tényleg nem eset |
| ROC | Receiver Operating Characteristic | a fedés és a téves riasztási arány görbéje a küszöb mentén |
| AUC | Area Under the Curve — görbe alatti terület | a görbe egyetlen számba sűrítve |
| ROC-AUC | a ROC-görbe alatti terület | a rangsorolás jósága; a véletlen alapvonala mindig 0,5 |
| PR | Precision–Recall — precizitás–fedés | a másik görbe: a precizitás a fedés függvényében |
| PR-AUC | a PR-görbe alatti terület | ritka eseménynél a becsületesebb mérce; a véletlen alapvonala maga az esetarány |
| MAE | Mean Absolute Error | átlagos abszolút hiba, az adat mértékegységében |
| SS | Sum of Squares — négyzetösszeg | az R² két négyzetösszeg hányadosa: a maradéké és a teljesé |
| SHAP | SHapley Additive exPlanations | jellemzőnkénti hozzájárulás a játékelméleti Shapley-értékből; magyaráz, de nem okságot mond |
A prediktív hét rövidítései. A négy cella betűjele — TP, FP, FN, TN — az egész értékelési fejezet alapja: minden mérőszám ebből a négy számból készül, és a különbség köztük mindig a nevezőben van.
Az AUC önmagában nem mond semmit: meg kell mondani, MELYIK görbéről van szó. A ROC-AUC és a PR-AUC ugyanazon a modellen 0,880 és 0,605 — nem ellentmondás, hanem két különböző kérdés válasza.
Az ábra betöltése…
A prediktív hét ugyanezzel a hárommal dolgozik. Az oszlop a szétvágások és a küszöbök összevetésére való, a vonal pedig ott, ahol egy folytonos paraméter mentén nézünk végig valamit: a fokszámon vagy a küszöbön. Ha a két panelt egymás mellé teszed, látszik, miért: a vonal a KÖZTES értékekről is állít valamit, az oszlop nem — a küszöbgörbén pedig éppen a köztes értékek érdekelnek minket.
Az ábra a `w05-encoding` demóé (`chartindex 4`). A paneleket a demó `TIPUSKESZLETEK` táblája sorolja fel, és pontosan annyi panel van rajta, ahány típust a következő dia táblázata felsorol — ezt a `check_diagramok.py` ellenőrzi is.
| diagramtípus | mit olvasol le róla | mire NEM jó |
|---|---|---|
| oszlop | kategóriák nagyságrendje és sorrendje — a hossz maga az érték | időbeli alakulás: a sorrend nem látszik rajta |
| vonal | időbeli alakulás: a meredekség és a fordulópontok | kategóriák összevetése: a vonal sorrendet állít oda is, ahol nincs |
| demóábra | amit a keretrendszer rajza nem tud: log tengely, hőtérkép, kis sokszorosok | saját adatod: ez a demó kimenete, nem szerkeszthető a dián |
A prediktív hét ugyanezt a két típust használja: oszlopot a szétvágások és a küszöbök összevetésére, vonalat ott, ahol egy folytonos paraméter mentén nézünk végig valamit — a fokszámon vagy a küszöbön.
A felsorolás nem kézi lista: a `check_diagramok.py` ellenőrzi, hogy pontosan ezek a típusok szerepelnek-e a diasorban — ha egy új dia más típust hoz be, vagy egy típus kikopik, az építés szól.