A Train, Validation and Test Sets in Machine Learning
On október 17, 2021 by adminEz egy rövid alapozónak szánjuk mindazok számára, akiknek tudniuk kell a különbséget a különböző adathalmazok felosztása között a Machine Learning modellek képzése során.
Ezzel a cikkel kapcsolatban Jason Brownlee ugyanebben a témában írt kiváló cikkéből idézném az alapdefiníciókat, elég átfogó, nézzétek meg a részletekért.
Training Dataset:
A tényleges adathalmaz, amelyet a modell betanításához használunk (neurális hálózat esetén a súlyok és torzítások). A modell ezt az adathalmazt látja és ebből tanul.
Hitelesítési adathalmaz
Hitelesítési adathalmaz: A modell hiperparamétereinek hangolása során a modell illeszkedésének torzítatlan értékelésére használt adatminta a képzési adathalmazon. Az értékelés torzabbá válik, ahogy a validációs adathalmazon való jártasság beépül a modellkonfigurációba.
A validációs halmaz egy adott modell értékelésére szolgál, de ez gyakori értékelésre szolgál. Mi, mint gépi tanulással foglalkozó mérnökök, ezeket az adatokat a modell hiperparamétereinek finomhangolására használjuk. A modell tehát időnként látja ezeket az adatokat, de soha nem “tanul” belőlük. A validációs halmaz eredményeit használjuk, és frissítjük a magasabb szintű hiperparamétereket. A validációs halmaz tehát hatással van a modellre, de csak közvetve. A validációs készletet Dev-készletnek vagy fejlesztési készletnek is nevezik. Ennek van értelme, mivel ez az adathalmaz segít a modell “fejlesztési” szakaszában.
Tesztadathalmaz
Tesztadathalmaz: A képzési adathalmazra illeszkedő végleges modell elfogulatlan értékelésére szolgáló adatminta.
A Tesztadathalmaz a modell értékeléséhez használt aranyszabványt biztosítja. Csak akkor kerül felhasználásra, ha a modell teljes kiképzése megtörtént (a tréning és a validációs halmazok felhasználásával). Általában a tesztadathalmazt használják a versengő modellek értékelésére (Például számos Kaggle-versenyen a validációs adathalmazt kezdetben a képzési halmazzal együtt adják ki, és a tényleges tesztadathalmazt csak akkor adják ki, amikor a verseny már a lezárás előtt áll, és a modellnek a tesztadathalmazon elért eredménye dönti el a győztest). Sokszor a validációs készletet használják tesztkészletként, de ez nem jó gyakorlat. A tesztkészlet általában jól kurált. Gondosan mintavételezett adatokat tartalmaz, amelyek átfogják azokat a különböző osztályokat, amelyekkel a modell a való világban való használat során szembesülne.
Az adatkészlet felosztási arányáról
Most, hogy már tudja, hogy ezek az adatkészletek mire valók, talán ajánlásokat keres arra vonatkozóan, hogyan ossza fel az adatkészletét Train, Validation és Test halmazokra.
Ez elsősorban 2 dologtól függ. Először is, az adatai mintáinak teljes számától, másodszor pedig a tényleges modelltől, amelyet betanít.
Egyes modelleknek jelentős mennyiségű adatra van szükségük a betanításhoz, így ebben az esetben a nagyobb betanítóhalmazokra optimalizálna. A nagyon kevés hiperparaméterrel rendelkező modelleket könnyű lesz validálni és hangolni, így valószínűleg csökkentheti a validációs halmaz méretét, de ha a modellje sok hiperparaméterrel rendelkezik, akkor nagy validációs halmazra is szüksége lenne (bár a keresztvalidálást is figyelembe kell vennie). Továbbá, ha olyan modellje van, amelynek nincsenek hiperparaméterei, vagy olyanok, amelyeket nem lehet könnyen hangolni, akkor valószínűleg nincs szüksége validációs halmazra sem!
Mindent egybevetve, mint sok más dolog a gépi tanulásban, a tréning-teszt-validáció arány is eléggé specifikus a felhasználási esetre, és egyre könnyebb lesz megítélni, ahogy egyre több és több modellt képez és épít.
Megjegyzés a keresztvalidálásról: Sokszor az emberek először 2 részre osztják az adathalmazukat – Train és Test. Ezután félreteszik a tesztkészletet, és véletlenszerűen kiválasztják a Train adathalmaz X%-át a tényleges Train halmaznak, a fennmaradó (100-X)% pedig a validációs halmaznak, ahol X egy fix szám (mondjuk 80%), a modellt ezután iteratívan képzik és validálják ezeken a különböző halmazokon. Ezt többféleképpen is megtehetjük, és általában keresztérvényesítésnek nevezik. Alapvetően a képzési halmazt használja a Train és Validation halmazok többszörös felosztásához. A keresztérvényesítéssel elkerülhető a túlillesztés, és egyre népszerűbb, a K-fold Cross Validation a legnépszerűbb keresztérvényesítési módszer. Nézze meg ezt a cikket, ha többet szeretne megtudni.
Vélemény, hozzászólás?