Boosting and Bagging: Cum să dezvolți un algoritm robust de învățare a mașinilor

Învățarea automată și știința datelor necesită mai mult decât aruncarea de date într-o bibliotecă Python și utilizarea tuturor celor care apar

Bootstrapping / Bagging / Stimularea

Învățarea automată și știința datelor necesită mai mult decât aruncarea de date într-o bibliotecă Python și utilizarea tuturor celor care apar.

Cercetătorii de date trebuie să înțeleagă efectiv datele și procesele din spatele acesteia, pentru a putea implementa un sistem de succes.

O metodologie cheie de implementare este să știi când un model poate beneficia de utilizarea metodelor de bootstrapping. Acestea sunt ceea ce se numesc modele de ansamblu. Câteva exemple de modele de ansamblu sunt AdaBoost și Stochastic Gradient Boosting.

De ce să folosești modele de ansamblu?

Ele pot ajuta la îmbunătățirea preciziei algoritmului sau pot face un model mai robust. Două exemple în acest sens sunt stimularea și bagajul. Boosting și bagging sunt subiecte pe care oamenii de știință ai datelor și inginerii de învățare automată trebuie să le cunoască, mai ales dacă intenționați să participați la un interviu pentru știința datelor / mașină.

În esență, învățarea ansamblurilor este fidelă ansamblului de cuvinte. Cu excepția faptului că, în loc să cânte câțiva oameni la diferite octave, creează o armonie frumoasă (fiecare voce completând golul celuilalt), învățarea prin ansamblu folosește sute până la mii de modele ale aceluiași algoritm care lucrează împreună pentru a găsi o clasificare corectă.

Un alt mod de a ne gândi la învățarea ansamblurilor este fabula oamenilor orbi și a elefantului. În acest exemplu, fiecare orb simte o parte diferită a unui elefant, astfel încât nu sunt de acord cu ceea ce simt. Cu toate acestea, dacă s-ar fi reunit și l-ar fi discutat, ar fi putut să-și dea seama că priveau diferite părți ale aceluiași lucru.

Folosirea tehnicilor precum stimularea și bagajul a dus la creșterea robustetei modelelor statistice și scăderea variației.

Acum, întrebarea devine, care este diferența dintre toate aceste cuvinte „B” diferite?

bootstrapping

Să vorbim mai întâi despre conceptul foarte important de bootstrapping. Mulți oameni de știință de date ratează acest lucru și merg direct la explicarea stimulării și a bagajului. Dar ambele necesită bootstrapping.

Figura 1 Bootstrapping

În învățarea automată, metoda bootstrap se referă la prelevarea aleatorie cu înlocuirea. Acest eșantion este denumit un eșantion. Acest lucru permite modelului sau algoritmului să înțeleagă mai bine diferitele prejudecăți, variații și caracteristici care există în modelul respectiv. Luarea unui eșantion de date permite modelului de eșantionare să conțină caracteristici diferite decât ar fi putut conține în ansamblu. Acest lucru este demonstrat în figura 1, unde fiecare populație de eșantion are bucăți diferite și niciuna nu este identică. Aceasta ar afecta apoi media generală, abaterea standard și alte valori descriptive ale unui set de date. La rândul său, poate dezvolta modele mai robuste.

Bootstrapping este de asemenea excelent pentru seturile de date de dimensiuni mici, care pot avea tendința de a se îmbrăca. De fapt, am recomandat acest lucru unei companii care este îngrijorată de faptul că seturile lor de date sunt departe de „Big Data”. Bootstrapping poate fi o soluție în acest caz, deoarece algoritmii care utilizează bootstrapping pot fi mai solizi și pot gestiona seturi de date noi, în funcție de metodologie (stimulare sau bagaj).

Motivul utilizării metodei bootstrap este acela că poate testa stabilitatea unei soluții. Poate crește robustetea folosind mai multe seturi de date de probă și testând mai multe modele. Poate că un set de date eșantion are o medie mai mare decât alta, sau o abatere standard diferită. Acest lucru ar putea sparge un model care s-a îmbrăcat și nu a fost testat folosind seturi de date cu diferite variații.

Unul dintre numeroasele motive pentru care bootstrapping-ul a devenit comun este din cauza creșterii puterii de calcul. Acest lucru permite multe mai multe permutări să se facă cu diferite eșantioane decât este posibil. Bootstrapping se folosește atât la ambalare, cât și la sporire, după cum vom discuta mai jos.

Bagging

Bagajul se referă de fapt la (agregatoarele Bootstrap). Aproape orice hârtie sau postare care face referințe folosind algoritmi de bagaj va face referire și la Leo Breiman, care a scris o lucrare în 1996, numită „Bagging Predictors”.

În cazul în care Leo descrie bagajul ca:

„Previzorii de bagaj este o metodă pentru generarea mai multor versiuni ale unui predictor și utilizarea acestora pentru a obține un predictor agregat.”

Bagajul ajută la reducerea variației de la modelele care ar putea fi foarte precise, dar numai la datele pe care au fost instruiți. Aceasta este, de asemenea, cunoscută sub denumirea de overfitting.

Suprafocarea este atunci când o funcție se potrivește prea bine datelor. În mod obișnuit, acest lucru se datorează faptului că ecuația reală este mult prea complicată pentru a lua în considerare fiecare punct de date și mai devreme.

Figura 2 Suprapunere

Un alt exemplu de algoritm care se poate îmbrăca cu ușurință este arborele de decizie. Modelele care sunt dezvoltate folosind arbori de decizie necesită o euristică foarte simplă. Arborele de decizie este compus dintr-un set de declarații „dacă există” într-o ordine specifică. Astfel, dacă setul de date este schimbat într-un nou set de date care ar putea avea o prejudecată sau o diferență în loc de caracteristici subiacente în comparație cu setul anterior, modelul nu va fi la fel de exact. Acest lucru se datorează faptului că datele nu se vor potrivi cu modelul (care este o declarație înapoi oricum).

Bagging-ul înconjoară acest lucru prin crearea propriei variații între date prin eșantionare și înlocuire a datelor în timp ce testează ipoteze multiple (modele). La rândul său, acest lucru reduce zgomotul prin utilizarea mai multor probe care, cel mai probabil, ar fi alcătuite din date cu diverse atribute (mediană, medie etc.).

După ce fiecare model a elaborat o ipoteză, modelele folosesc votarea pentru clasificare sau medie pentru regresie. Aici intră în joc „Agregarea” din „Agregarea bootstrapului”. Fiecare ipoteză are aceeași greutate ca toate celelalte. Când discutăm ulterior despre stimulare, acesta este unul dintre locurile în care cele două metodologii diferă.

Figura 3 Bagajare

În esență, toate aceste modele funcționează în același timp, iar votul pe care ipoteză este cel mai precis.

Acest lucru ajută la scăderea variației, adică reducerea îmbrăcămintei.

stimularea

Boosting se referă la un grup de algoritmi care utilizează medii ponderate pentru a face elevii slabi în cursanți mai puternici. Spre deosebire de bagaj, care a rulat fiecare model independent și apoi a adăugat rezultatele la sfârșit, fără preferință față de niciun model, stimularea se referă la „lucrul în echipă”. Fiecare model care rulează dictează pe care se va concentra următorul model.

Boosting necesită, de asemenea, bootstrapping. Cu toate acestea, există o altă diferență aici. Spre deosebire de bagaj, creșterea ponderii fiecărui eșantion de date. Aceasta înseamnă că unele probe vor fi difuzate mai des decât altele.

De ce să punem greutăți pe eșantioanele de date?

Figura 4 Boosting

Când impulsul rulează fiecare model, acesta urmărește care probe de date sunt cele mai de succes și care nu. Seturile de date cu cele mai multe rezultate neclasificate au o pondere mai mare. Acestea sunt considerate date care au mai multă complexitate și necesită mai multe iterații pentru a instrui corect modelul.

În etapa de clasificare propriu-zisă, există și o diferență în modul în care stimulează tratarea modelelor. În vederea sporirii, ratele de eroare ale modelului sunt urmărite, deoarece modelelor mai bune li se acordă ponderi mai bune.

În acest fel, atunci când are loc „votarea”, la fel ca în bagaj, modelele cu rezultate mai bune au o atracție mai puternică asupra producției finale.

rezumat

Boosting și bagging sunt ambele tehnici minunate pentru a reduce variația. Metodele de asamblare în general depășesc un singur model. Acesta este motivul pentru care mulți dintre câștigătorii Kaggle au utilizat metodologii de ansamblu. Unul despre care nu s-a discutat aici a fost stivuirea. (Aceasta necesită propria postare.)

Cu toate acestea, nu vor rezolva fiecare problemă și ei înșiși au propriile lor probleme. Există diferite motive pentru care ați folosi unul peste celălalt. Bagajul este excelent pentru scăderea variației atunci când un model este îmbrăcat. Cu toate acestea, stimularea este mult mai probabil să fie o alegere mai bună a celor două metode. Îmbunătățirea este, de asemenea, mult mai probabilă să provoace probleme de performanță. De asemenea, este excelent pentru reducerea prejudecății într-un model de îmbrăcăminte.

Aici vin experiența și expertiza în materie! Poate fi ușor să sari pe primul model care funcționează. Cu toate acestea, este important să analizați algoritmul și toate funcțiile pe care le selectează. De exemplu, dacă un arbore de decizie stabilește anumite frunze, întrebarea devine de ce! Dacă nu îl puteți susține cu alte puncte de date și imagini, probabil că nu ar trebui să fie implementat.

Nu este vorba doar de a încerca AdaBoost sau pădurile aleatorii pe diverse seturi de date. Algoritmul final depinde de rezultatele pe care le obține și de ce suport există.