RankBoost

De testwiki
Aller à la navigation Aller à la recherche

Le RankBoost est une méthode de boosting très similaire à AdaBoost. Le but de cette méthode d'apprentissage est de classer un ensemble de données les unes par rapport aux autres, en leur associant un rang de classification.

L'algorithme reprend les grandes lignes d'AdaBoost mais remplace les exemples par des couples (exemple positif contre exemple négatif). La sélection cherche à maximiser le score des exemples positifs par rapport à celui des exemples négatifs.

Algorithme

Valeurs d'entrée


Soit un ensemble d'apprentissage annoté: (x1,y1),,(xm,ym)xiX,sont les exemples et yiY={1,+1} les annotations.

On notera ip l'indice des exemples positifs et in ceux des exemples négatifs.

Initialisation


On initialise la distribution des exemples par D1(ip,in)=1np*nn,i=1,,m. avec np le nombre de positifs et nn le nombre de négatifs.

Déroulement


Pour t=1,,T:

  • Trouver le classifieur ht qui maximise le score de classification en fonction de la difficulté des exemples: Dt:

rt=argmaxhtip,inmDt(xip,xin)[ht(xip)ht(xin)]

  • On choisit alors le poids du classifieur: αt𝐑, avec αt=12ln1+rt1rt
  • On met ensuite à jour la pondération des couples d'exemples d'apprentissage

Dt+1(xip,xin)=Dt(xip,xin)eαt(ht(xin)ht(xip))Zt
avec Zt un facteur de normalisation

Résultat


Le classifieur résultant du processus de sélection est:

H(x)=t=1Tαtht(x)

Liens

Modèle:Portail