Despre seturile de instruire, validare și testare în învățarea automată
On octombrie 17, 2021 by adminAceasta se dorește a fi o scurtă introducere pentru oricine are nevoie să cunoască diferența dintre diferitele diviziuni ale seturilor de date în timpul instruirii modelelor de învățare automată.
Pentru acest articol, aș cita definițiile de bază din excelentul articol al lui Jason Brownlee pe aceeași temă, este destul de cuprinzător, consultați-l pentru mai multe detalii.
Training Dataset: Eșantionul de date utilizat pentru a potrivi modelul.
Setul de date real pe care îl folosim pentru a antrena modelul (ponderi și polarizări în cazul unei rețele neuronale). Modelul vede și învață din aceste date.
Validation Dataset
Validation Dataset: Eșantionul de date utilizat pentru a oferi o evaluare imparțială a adecvării unui model la setul de date de instruire în timp ce se reglează hiperparametrii modelului. Evaluarea devine mai părtinitoare pe măsură ce îndemânarea pe setul de date de validare este încorporată în configurația modelului.
Setul de validare este utilizat pentru a evalua un anumit model, dar aceasta este pentru evaluări frecvente. Noi, în calitate de ingineri de învățare automată, folosim aceste date pentru a regla fin hiperparametrii modelului. Prin urmare, modelul vede ocazional aceste date, dar niciodată nu „Învață” din acestea. Noi folosim rezultatele setului de validare și actualizăm hiperparametrii de nivel superior. Așadar, setul de validare afectează un model, dar numai indirect. Setul de validare este cunoscut și sub numele de setul Dev sau setul de dezvoltare. Acest lucru are sens, deoarece acest set de date ajută în timpul etapei de „dezvoltare” a modelului.
Test Dataset
Test Dataset: Eșantionul de date utilizat pentru a oferi o evaluare imparțială a unui model final adaptat la setul de date de formare.
Setul de date de testare oferă standardul de aur utilizat pentru a evalua modelul. Se utilizează numai după ce un model este complet instruit (folosind seturile de instruire și de validare). Setul de testare este, în general, cel care este utilizat pentru a evalua modelele concurente (De exemplu, în multe competiții Kaggle, setul de validare este lansat inițial împreună cu setul de instruire, iar setul de testare propriu-zis este lansat doar când competiția este pe cale să se încheie, iar rezultatul modelului pe setul de testare este cel care decide câștigătorul). De multe ori, setul de validare este utilizat ca set de testare, dar aceasta nu este o practică bună. Setul de testare este, în general, bine îngrijit. Acesta conține date eșantionate cu atenție, care acoperă diferitele clase cu care se va confrunta modelul, atunci când va fi utilizat în lumea reală.
Despre raportul de divizare a setului de date
Acum că știți ce fac aceste seturi de date, s-ar putea să căutați recomandări despre cum să vă divizați setul de date în seturi de instruire, validare și testare.
Acest lucru depinde în principal de 2 lucruri. În primul rând, de numărul total de eșantioane din datele dvs. și, în al doilea rând, de modelul real pe care îl antrenați.
Câteva modele au nevoie de date substanțiale pentru a se antrena, așa că, în acest caz, ați optimiza pentru seturi de antrenament mai mari. Modelele cu foarte puțini hiperparametri vor fi ușor de validat și reglat, astfel încât probabil că puteți reduce dimensiunea setului de validare, dar dacă modelul dvs. are mulți hiperparametri, ați dori să aveți și un set de validare mare(deși ar trebui să luați în considerare și validarea încrucișată). De asemenea, dacă se întâmplă să aveți un model fără hiperparametri sau cu hiperparametri care nu pot fi ușor de reglat, probabil că nu aveți nevoie nici de un set de validare!
În concluzie, la fel ca multe alte lucruri în învățarea automată, raportul de împărțire formare-testare-validare este, de asemenea, destul de specific cazului dvs. de utilizare și devine mai ușor să faceți judecata ment pe măsură ce vă antrenați și construiți din ce în ce mai multe modele.
Nota privind validarea încrucișată: De multe ori, oamenii își împart mai întâi setul de date în 2 – Train și Test. După aceasta, ei păstrează deoparte setul de testare și aleg la întâmplare X% din setul de date de instruire pentru a fi setul de instruire propriu-zis și restul de (100-X)% pentru a fi setul de validare, unde X este un număr fix (de exemplu 80%), modelul este apoi instruit și validat iterativ pe aceste seturi diferite. Există mai multe moduri de a face acest lucru și este cunoscut sub numele de validare încrucișată. Practic, utilizați setul de instruire pentru a genera mai multe diviziuni ale seturilor de instruire și validare. Validarea încrucișată evită suprapunerea și devine din ce în ce mai populară, validarea încrucișată K-fold fiind cea mai populară metodă de validare încrucișată. Pentru mai multe informații, consultați acest articol.
.
Lasă un răspuns