Ce este validarea încrucișată? Compararea modelelor de învățare automată
Publicat: 2021-07-21Validarea încrucișată este un instrument de neprețuit pentru oamenii de știință ai datelor.
Este util pentru construirea mai precisă învățare automată modele și evaluând cât de bine funcționează pe un set de date de testare independent.
Validarea încrucișată este ușor de înțeles și implementat, ceea ce o face o metodă de bază pentru a compara capacitățile (sau abilitățile) predictive ale diferitelor modele și pentru a alege cele mai bune. Este benefic atunci când cantitatea de date disponibilă este limitată și este o modalitate excelentă de a verifica modul în care funcționează un model predictiv în practică.
Ce este validarea încrucișată?
Validarea încrucișată (CV) este o tehnică utilizată pentru a evalua un model de învățare automată și a testa performanța (sau acuratețea) acestuia. Aceasta implică rezervarea unui eșantion specific dintr-un set de date pe care modelul nu este antrenat. Mai târziu, modelul este testat pe această probă pentru a-l evalua.
Validarea încrucișată este utilizată pentru a proteja un model de supraadaptare , mai ales dacă cantitatea de date disponibile este limitată. Este, de asemenea, cunoscut sub numele de estimare prin rotație sau testare în afara eșantionului și este utilizat în principal în setările în care ținta modelului este predicția.
Știați? Un model este considerat „supraadaptat” dacă modelează atât de bine datele de antrenament încât îi afectează negativ performanța pe date noi.
Această procedură de reeșantionare este, de asemenea, utilizată pentru a compara diferite modele de învățare automată și pentru a determina cât de bine funcționează pentru a rezolva o anumită problemă. Cu alte cuvinte, validarea încrucișată este o metodă folosită pentru a evalua abilitățile modelelor de învățare automată.
Mai simplu spus, în procesul de validare încrucișată, eșantionul de date original este împărțit aleatoriu în mai multe subseturi. Modelul de învățare automată se antrenează pe toate subseturile, cu excepția unuia. După antrenament, modelul este testat făcând predicții asupra subsetului rămas.
În multe cazuri, mai multe runde de validare încrucișată sunt efectuate folosind diferite subseturi, iar rezultatele lor sunt mediate pentru a determina care model este un bun predictor.
De ce este importantă validarea încrucișată?
Validarea încrucișată este crucială atunci când cantitatea de date disponibile este limitată.
Să presupunem că trebuie să preziceți probabilitatea ca o anvelopă de bicicletă să fie perforată. Pentru aceasta, ați colectat date despre anvelopele existente: vârsta anvelopei, numărul de mile parcurse, greutatea călărețului și dacă a fost perforat înainte.
Pentru a crea un model predictiv, veți folosi aceste date (istorice). Există două lucruri pe care trebuie să le faceți cu aceste date - antrenați algoritmul și testați modelul.
Știați? În învățarea automată, un algoritm și un model nu sunt la fel. Un model este ceea ce este învățat de algoritmul de învățare automată.
Deoarece aveți doar o cantitate limitată de date disponibile, ar fi naiv să folosiți toate datele pentru antrenamentul algoritmului. Dacă o faci, nu ai mai avea date pentru a testa sau evalua modelul.
Reutilizarea setului de antrenament ca set de testare nu este o idee grozavă, deoarece trebuie să evaluăm acuratețea modelului pe datele pe care nu a fost antrenat. Pentru că obiectivul principal din spatele instruirii este pregătirea modelului pentru a lucra pe date din lumea reală. Și este improbabil ca setul de date de antrenament să conțină toate punctele de date posibile pe care modelul le va întâlni vreodată.
O idee mai bună ar fi să folosiți primele 75% (trei blocuri) din date ca set de date de antrenament și ultimele 25% (un bloc) ca set de date de testare . Acest lucru vă va permite să comparați cât de bine au clasificat diferiți algoritmi datele de testare.
Dar, desigur, de unde știi că utilizarea primelor 75 la sută din date ca set de antrenament și a restului de 25 la sută ca set de testare este cea mai bună modalitate?
În schimb, puteți utiliza primele 25 la sută din date pentru testare; sau, puteți utiliza cel de-al treilea bloc de date ca set de date de testare și restul ca set de date de antrenament.
Sfat: utilizați software de învățare automată pentru a automatiza sarcinile și pentru a face predicții precise.
Ca rezultat, un tip de validare încrucișată numită validare încrucișată k-fold utilizează toate (patru) părți ale setului de date ca date de testare, una câte una, și apoi rezumă rezultatele.
De exemplu, validarea încrucișată va folosi primele trei blocuri de date pentru a antrena algoritmul și va folosi ultimul bloc pentru a testa modelul. Apoi înregistrează cât de bine a funcționat modelul cu datele de testare.
După înregistrarea performanței sau a preciziei, va folosi blocurile 1, 2 și 4 de date pentru antrenament și blocul 3 pentru testare. Procesul continuă până când toate blocurile sunt folosite o singură dată ca date de testare. Media tuturor rezultatelor este calculată pentru a evalua performanța modelului.
În exemplul de mai sus, datele au fost împărțite în patru blocuri. Prin urmare, această validare încrucișată se numește validare încrucișată de patru ori . Dacă ar fi împărțit în zece blocuri, ar fi validare încrucișată de 10 ori .
Pe scurt, validarea încrucișată este utilă pentru selecția modelului și face fără efort examinarea cât de bine se generalizează un model la date noi.
Cu alte cuvinte, este util să determinați eroarea de predicție a unui model. Este, de asemenea, folosit pentru a compara performanța sau acuratețea diferitelor metode de învățare automată, cum ar fi mașina vectorială de suport (SVM), K-nearest neighbor (KNN), regresia liniară sau regresia logistică.
Iată câteva motive suplimentare pentru care oamenii de știință de date iubesc validarea încrucișată:
- Le permite să utilizeze toate datele fără a sacrifica niciun subset (nu este valabil pentru metoda holdout)
- Dezvăluie consistența datelor și a algoritmului
- Ajută la evitarea supraajustării și subadaptarii
Validarea încrucișată este, de asemenea, utilizată pentru a regla hiperparametrii a unui model de învățare automată printr-o tehnică numită validare încrucișată de căutare aleatorie în grilă .
Tipuri de validare încrucișată
Metodele de validare încrucișată pot fi clasificate în linii mari în două categorii: metode exhaustive și metode neexhaustive .
După cum sugerează și numele, metodele exhaustive de validare încrucișată se străduiesc să testeze toate modalitățile posibile de a împărți eșantionul de date original într-un set de instruire și un set de testare. Pe de altă parte, metodele neexhaustive nu calculează toate modalitățile de partiționare a datelor originale în seturi de instruire și evaluare.
Mai jos sunt cele cinci tipuri comune de validare încrucișată.
1. Metoda holdout
Metoda holdout este una dintre abordările de bază de validare încrucișată în care setul de date original este împărțit în două părți – date de antrenament și date de testare. Este o metodă neexhaustivă și, așa cum era de așteptat, modelul este antrenat pe setul de date de antrenament și evaluat pe setul de date de testare.
În cele mai multe cazuri, dimensiunea setului de date de antrenament este de două ori mai mare decât setul de date de testare, ceea ce înseamnă că setul de date original este împărțit în raport de 80:20 sau 70:30. De asemenea, datele sunt amestecate aleatoriu înainte de a le împărți în seturi de instruire și validare.
Cu toate acestea, există câteva dezavantaje ale acestei metode de validare încrucișată. Deoarece modelul este antrenat pe o combinație diferită de puncte de date, poate prezenta rezultate diferite de fiecare dată când este antrenat. În plus, nu putem fi niciodată pe deplin siguri că setul de date de antrenament ales reprezintă întregul set de date.

Dacă eșantionul de date inițial nu este prea mare, există, de asemenea, șansa ca datele de testare să conțină unele informații esențiale, pe care modelul nu le va recunoaște, deoarece nu sunt incluse în datele de antrenament.
Cu toate acestea, tehnica de validare încrucișată holdout este ideală dacă vă grăbiți să antrenați și să testați un model și aveți un set de date mare.
2. Validare încrucișată K-fold
Metoda de validare încrucișată k-fold este o versiune îmbunătățită a metodei holdout. Aduce mai multă consistență scorului modelului, deoarece nu depinde de modul în care alegem setul de date de antrenament și testare.
Este o metodă de validare încrucișată neexhaustivă și, după cum sugerează și numele, setul de date este împărțit în k număr de împărțiri, iar metoda holdout este efectuată de k ori.
De exemplu, dacă valoarea lui k este egală cu doi, vor exista două subseturi de dimensiuni egale. În prima iterație, modelul este antrenat pe un subeșantion și validat pe celălalt. În a doua iterație, modelul este antrenat pe subsetul care a fost utilizat pentru validarea în iterația anterioară și testat pe celălalt subset. Această abordare se numește validare încrucișată de două ori .
În mod similar, dacă valoarea lui k este egală cu cinci, abordarea se numește metoda de validare încrucișată de cinci ori și va implica cinci subseturi și cinci iterații. De asemenea, valoarea lui k este arbitrară. În general, valoarea lui k este setată la 10. Dacă sunteți confuz în ceea ce privește alegerea unei valori, se recomandă același lucru.
Procedura de validare încrucișată în k-fold începe cu împărțirea aleatorie a setului de date original în k număr de ori sau subseturi. În fiecare iterație, modelul este antrenat pe k-1 subseturi ale întregului set de date. După aceea, modelul este testat pe al-lea subset pentru a-și verifica performanța.
Acest proces se repetă până când toate k-foldurile au servit ca set de evaluare. Rezultatele fiecărei iterații sunt mediate și se numește acuratețea validării încrucișate . Precizia validării încrucișate este utilizată ca măsură de performanță pentru a compara eficiența diferitelor modele.
Tehnica de validare încrucișată k-fold produce în general modele mai puțin părtinitoare, deoarece fiecare punct de date din setul de date original va apărea atât în setul de antrenament, cât și în setul de testare. Această metodă este optimă dacă aveți o cantitate limitată de date.
Cu toate acestea, așa cum era de așteptat, acest proces ar putea consuma mult timp, deoarece algoritmul trebuie să ruleze din nou de k ori de la zero. Aceasta înseamnă, de asemenea, că este nevoie de k-1 ori mai mult calcul decât metoda holdout.
3. Validare încrucișată stratificată în k-fold
Deoarece amestecăm aleatoriu datele și le împărțim în pliuri în validarea încrucișată în k-fold, există șansa să ajungem cu subseturi dezechilibrate. Acest lucru poate face ca antrenamentul să fie părtinitor, ceea ce duce la un model inexact.
De exemplu, luați în considerare cazul unei probleme de clasificare binară în care fiecare dintre cele două tipuri de etichete de clasă cuprinde 50% din datele originale. Aceasta înseamnă că cele două clase sunt prezente în eșantionul original în proporții egale. De dragul simplității, să numim cele două clase A și B.
În timp ce amestecăm datele și le împărțim în pliuri, există o șansă mare să ajungem la o pliază în care majoritatea punctelor de date sunt din clasa A și doar câteva din clasa B. Un astfel de subset este văzut ca un subset dezechilibrat și poate conduce la crearea unui clasificator inexact.
Pentru a evita astfel de situații, pliurile sunt stratificate folosind un proces numit stratificare . În stratificare, datele sunt rearanjate pentru a se asigura că fiecare subset este o bună reprezentare a întregului set de date.
În exemplul de mai sus de clasificare binară, aceasta ar însemna că este mai bine să împărțiți eșantionul original, astfel încât jumătate din punctele de date dintr-o pliază să fie din clasa A, iar restul din clasa B.
4. Validare încrucișată Leave-p-out
Validarea încrucișată Leave-p-out (LpOCV) este o metodă exhaustivă în care p număr de puncte de date sunt extrase din numărul total de eșantioane de date reprezentate de n.
Modelul este antrenat pe puncte de date np și testat ulterior pe puncte de date p. Același proces se repetă pentru toate combinațiile posibile de p din proba originală. În cele din urmă, rezultatele fiecărei iterații sunt mediate pentru a obține acuratețea validării încrucișate.
5. Validare încrucișată cu excepție
Abordarea de validare încrucișată (LOOCV) este o versiune simplificată a LpOCV. În această tehnică de validare încrucișată, valoarea lui p este setată la unu. Prin urmare, această metodă este mult mai puțin exhaustivă. Cu toate acestea, execuția acestei metode este costisitoare și consumatoare de timp, deoarece modelul trebuie montat de n număr de ori.
Există și alte tehnici de validare încrucișată, inclusiv validarea repetată prin subeșantionare aleatorie, validarea încrucișată imbricată și validarea încrucișată a serii de timp.
Aplicații ale validării încrucișate
Aplicația principală a validării încrucișate este evaluarea performanței modelelor de învățare automată. Acest lucru ajută la compararea metodelor de învățare automată și la determinarea care este ideală pentru rezolvarea unei anumite probleme.
De exemplu, să presupunem că luați în considerare k-nearest neighbors (KNN) sau analiza componentelor principale (PCA) pentru a efectua recunoașterea optică a caracterelor. În acest caz, puteți utiliza validarea încrucișată pentru a le compara pe cele două pe baza numărului de caractere clasificate greșit de fiecare metodă.
Validarea încrucișată poate fi utilizată și în selectarea caracteristicilor pentru a selecta caracteristicile care contribuie cel mai mult la rezultatul predicției.
Limitări ale validării încrucișate
Principala provocare a validării încrucișate este nevoia de resurse de calcul excesive, în special în metode precum CV-ul k-fold. Deoarece algoritmul trebuie reluat de la zero de k ori, este nevoie de de k ori mai mult calcul pentru a evalua.
O altă limitare este cea care înconjoară datele nevăzute. În validarea încrucișată, setul de date de testare este setul de date nevăzut folosit pentru a evalua performanța modelului. În teorie, aceasta este o modalitate excelentă de a verifica cum funcționează modelul atunci când este utilizat pentru aplicații din lumea reală.
Dar, în practică, nu poate exista niciodată un set cuprinzător de date nevăzute și nu se poate prezice niciodată tipul de date pe care modelul le-ar putea întâlni în viitor.
Să presupunem că un model este construit pentru a prezice riscul unui individ de a contracta o anumită boală infecțioasă. Dacă modelul este antrenat pe date dintr-un studiu de cercetare care implică doar un anumit grup de populație (de exemplu, femei la mijlocul anilor 20), atunci când este aplicat populației generale, performanța predictivă poate diferi dramatic în comparație cu acuratețea validării încrucișate. .
În plus, validarea încrucișată va produce rezultate semnificative numai dacă părtinirile umane sunt controlate în setul de eșantion original.
Validare încrucișată pentru salvare
Construirea modelelor cu validare încrucișată este o metodă excelentă de a crea aplicații de învățare automată cu o mai mare acuratețe sau performanță. Tehnicile de validare încrucișată, cum ar fi validarea încrucișată k-fold, fac posibilă estimarea performanței unui model fără a sacrifica diviziunea testului.
Ele elimină, de asemenea, problemele cauzate de divizarea dezechilibrului de date; pe scurt, ele pot permite oamenilor de știință să se bazeze mai puțin pe noroc și mai mult pe iterații.
Există un subset de învățare automată care încearcă să imite funcționarea creierului uman. Se numește învățare profundă, iar inteligența generală artificială, dacă ar fi posibil vreodată, ar necesita abilitățile sale de luare a deciziilor.