Boosting algorithm: AdaBoost

mint adat tudós a fogyasztói iparban, amit általában úgy érzem, fellendítése algoritmusok elég a legtöbb prediktív tanulási feladatok, legalábbis most. Ezek erőteljes, rugalmas és lehet értelmezni szépen néhány trükköt. Ezért úgy gondolom, hogy át kell olvasni néhány anyagot, és írni valamit a növelő algoritmusokról.

a legtöbb tartalom ebben acticle alapul papír: fa növelése az XGBoost: miért XGBoost nyerni “minden” gépi tanulási verseny?. Ez egy nagyon informatív papír. Szinte mindent, ami az algoritmusok növelését illeti, nagyon világosan elmagyarázza a cikk. Tehát a dolgozat 110 oldalt tartalmaz : (

számomra alapvetően a három legnépszerűbb növelő algoritmusra összpontosítok: AdaBoost, GBM és XGBoost. A tartalmat két részre osztottam. Az első cikk (ez) az AdaBoost algoritmusra összpontosít,a második pedig a GBM és az XGBoost összehasonlítására.

az Adaboost, az “Adaptive Boosting” rövidítése, az első gyakorlati boosting algoritmus, amelyet Freund és Schapire javasolt 1996-ban. Az osztályozási problémákra összpontosít, és arra törekszik, hogy a gyenge osztályozókat erőssé alakítsa. A besorolás végső egyenlete a következőképpen ábrázolható

ahol f_m az m_th gyenge osztályozót jelenti, theta_m pedig a megfelelő súly. Pontosan az M gyenge osztályozók súlyozott kombinációja. Az AdaBoost algoritmus teljes eljárása a következőképpen foglalható össze.

AdaBoost algoritmus

n pontot tartalmazó adathalmazt adott, ahol

itt -1 a negatív osztályt jelöli, míg 1 a pozitív.

az egyes adatpontok súlyának inicializálása:

iterációhoz m=1,…, M:

(1) illessze a gyenge osztályozókat az adatkészletbe, és válassza ki a legalacsonyabb súlyozott osztályozási hibával rendelkező osztályozót:

(2) Számítsa ki az m_th gyenge osztályozó súlyát:

minden 50% – nál nagyobb pontosságú osztályozó esetében a súly pozitív. Minél pontosabb az osztályozó, annál nagyobb a súly. Míg az 50% – nál kisebb pontosságú osztályozó esetében a súly negatív. Ez azt jelenti, hogy kombináljuk előrejelzését a jel megfordításával. Például egy 40% – os pontosságú osztályozót 60% – os pontossággá alakíthatunk az előrejelzés jelének megfordításával. Így még az osztályozó rosszabbul teljesít, mint a véletlenszerű találgatás, mégis hozzájárul a végső előrejelzéshez. Csak nem akarunk olyan osztályozót, amely pontos 50% – os pontossággal rendelkezik, ami nem ad hozzá semmilyen információt, így nem járul hozzá a végső előrejelzéshez.

(3) Az egyes adatpontok súlyának frissítése:

ahol Z_m egy normalizálási tényező, amely biztosítja, hogy az összes példánysúly összege egyenlő legyen 1-vel.

ha egy rosszul Osztályozott eset pozitív súlyozott osztályozóból származik, akkor a számlálóban az “exp” kifejezés mindig nagyobb, mint 1 (y*f mindig -1, theta_m pozitív). Így a tévesen besorolt eseteket iteráció után nagyobb súlyokkal frissítik. Ugyanez a logika vonatkozik a negatív súlyozott osztályozókra is. Az egyetlen különbség az, hogy az eredeti helyes besorolások téves besorolásokká válnak a jel megfordítása után.

M iteráció után megkaphatjuk a végső előrejelzést az egyes osztályozók súlyozott előrejelzésének összegzésével.

AdaBoost as a Forward Stagewise Additive Model

ez a rész papíron alapul: Additive logistic regression: a boosting statisztikai nézete. Részletesebb információkért kérjük, olvassa el az eredeti papírt.

2000-ben Friedman et al. az AdaBoost algoritmus statisztikai nézetét fejlesztette ki. Az AdaBoost-ot szakaszonkénti becslési eljárásként értelmezték egy additív logisztikai regressziós modell illesztésére. Megmutatták, hogy az AdaBoost valójában minimalizálja az exponenciális veszteség funkciót

ez minimálisra csökken

mivel az AdaBoost esetében y csak -1 vagy 1 lehet, A veszteségfüggvény átírható

folytassa az F(x) megoldását, megkapjuk

a normál logisztikai modellt tovább tudjuk levezetni az optimális megoldásból F (x):

ez majdnem megegyezik a logisztikai regressziós modell annak ellenére, hogy a tényező 2.

tegyük fel, hogy van egy aktuális becslésünk F(x) – re, és megpróbálunk egy javított becslést keresni F(x)+cf(x) – re. A fix c és x, tudjuk bővíteni L (y, F (x)+cf (x)) A másodrendű körülbelül f (x)=0,

így,

ahol E_w(./ x) súlyozott feltételes várakozást jelöl, és az egyes adatpontok súlyát a következőképpen számítják ki

ha c > 0, a súlyozott feltételes elvárás minimalizálása egyenlő a maximalizálással

mivel y csak 1 vagy -1 lehet, A súlyozott elvárás átírható

az optimális megoldás a következő

az f(x) meghatározása után a C tömeg kiszámítható az L(y, F(x)+cf(x))közvetlen minimalizálásával:

a c megoldása, megkapjuk

hagyja, hogy az epszilon egyenlő legyen a rosszul Osztályozott esetek súlyozott összegével, akkor

vegye figyelembe, hogy c negatív lehet, ha a gyenge tanuló rosszabbul jár, mint a véletlenszerű találgatás (50%), ban ben amely esetben automatikusan megfordítja a polaritást.

a példánysúlyok tekintetében a javított összeadás után az egyetlen példány súlya,

így a példány súlya frissül

összehasonlítva az AdaBoost algoritmusban használtakkal,

láthatjuk, hogy azonos formában vannak. Ezért ésszerű az AdaBoost-ot előre szakaszosan additív modellként értelmezni exponenciális veszteségfüggvény, amely iteratívan illeszkedik egy gyenge osztályozóhoz, hogy javítsa az aktuális becslést minden egyes iterációnál m:

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.