RankBoost
RankBoost este o metodă de stimulare foarte asemănătoare cu AdaBoost . Scopul acestei metode de învățare este de a clasifica un set de date unul față de celălalt, prin asocierea acestora cu un rang de clasificare.
Algoritmul ia liniile generale ale AdaBoost, dar înlocuiește exemplele cu perechi (exemplu pozitiv față de exemplu negativ). Selecția urmărește să maximizeze scorul exemplelor pozitive față de cel al exemplelor negative.
Algoritm
Valorile de intrare
Luați în considerare un set de învățare adnotat: unde sunt exemplele și adnotările.
(X1,y1),...,(Xm,ym){\ displaystyle (x_ {1}, y_ {1}), \ ldots, (x_ {m}, y_ {m})}Xeu∈X,{\ displaystyle x_ {i} \ în X,}yeu∈Da={-1,+1}{\ displaystyle \, y_ {i} \ în Y = \ {- 1, + 1 \}}
Rețineți indicele exemplelor pozitive și cele ale exemplelor negative.
eup{\ displaystyle i_ {p}}eunu{\ displaystyle i_ {n}}
Inițializare
Inițializăm distribuția exemplelor cu numărul de pozitive și numărul de negative.
D1(eup,eunu)=1nup∗nunu,eu=1,...,m.{\ displaystyle D_ {1} (i_ {p}, i_ {n}) = {\ frac {1} {n_ {p} * n_ {n}}}, i = 1, \ ldots, m.}nup{\ displaystyle n_ {p}}nunu{\ displaystyle n_ {n}}
Proces
Pentru :
t=1,...,T{\ displaystyle t = 1, \ ldots, T}
- Găsiți clasificatorul care maximizează scorul de clasificare pe baza dificultății exemplelor :ht{\ displaystyle h_ {t}}Dt{\ displaystyle D_ {t}}
rt=argmaxht∈H∑eup,eunumDt(Xeup,Xeunu)[ht(Xeup)-ht(Xeunu)]{\ displaystyle r_ {t} = \ arg \ max _ {h_ {t} \ in {\ mathcal {H}}} \ sum _ {i_ {p}, i_ {n}} ^ {m} D_ {t} (x_ {i_ {p}}, x_ {i_ {n}}) [h_ {t} (x_ {i_ {p}}) - h_ {t} (x_ {i_ {n}})]}
- Alegem apoi greutatea clasificatorului :, cuαt∈R{\ displaystyle \ alpha _ {t} \ in \ mathbf {R}}αt=12ln1+rt1-rt{\ displaystyle \ alpha _ {t} = {\ frac {1} {2}} {\ textrm {ln}} {\ frac {1 + r_ {t}} {1-r_ {t}}}}
- Apoi actualizăm ponderarea perechilor de exemple de învățare
Dt+1(Xeup,Xeunu)=Dt(Xeup,Xeunu)e-αt(ht(Xeunu)-ht(Xeup))Zt{\ displaystyle D_ {t + 1} (x_ {i_ {p}}, x_ {i_ {n}}) = {\ frac {D_ {t} (x_ {i_ {p}}, x_ {i_ {n} }) \, e ^ {- \ alpha _ {t} (h_ {t} (x_ {i_ {n}}) - h_ {t} (x_ {i_ {p}}))}} {Z_ {t} }}}
cu un factor de normalizare
Zt{\ displaystyle Z_ {t}}
Rezultat
Clasificatorul rezultat din procesul de selecție este:
H(X)=∑t=1Tαtht(X){\ displaystyle H (x) = \ sum _ {t = 1} ^ {T} \ alpha _ {t} h_ {t} (x)}
Conexiuni
-
[1] Un algoritm eficient de creștere pentru combinarea preferințelor, articol de referință despre RankBoost scris de Yoav Freund și Robert Schapire
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">