Nous rapellons qu’une image en niveaux de gris est représentée par une matrice contenant des valeurs entre 0 et 1 (noir et blanc respectivement). Chargez l’environnement de travail TI.RData qui contient les données suivantes:
Affichez l’image I, indiquez ses dimensions. Afficher ensuite l’image I2 et commentez.
Démontrez que si le noyau K est une densité alors l’estimateur à noyau de la densité est une densité.
Définissez les vecteurs de niveaux de gris correspondant aux images en tapant les commandes suivantes:
NG=as.vector(I)
NG2=as.vector(I2)
m=as.vector(M)
Tracez dans une même fenêtre graphique la densité des niveaux de gris de l’image I estimée à l’aide d’un estimateur à noyau utilisant le noyau d’Epanichnikov pour les valeurs 0.002, 0.02 et 0.2 du paramètre de lissage et pour la valeur du paramètre de lissage donnée par le critère de validation croisée (dont vous indiquerez la valeur). Commentez les résultats obtenus. On utilisera par la suite la valeur du paramètre de lissage donnée par le critère de validation croisée.
Identifiez les 4 différents modes locaux entre 0 et 0.3, 0.3 et 0.6, 0.6 et 0.8, et enfin 0.8 et 1.
En modifiant la fonction density.mode vue en cours obtenez les valeurs v1, v2 et v3 des niveaux de gris pour lesquels la densité estimée est minimale entre les modes. Affichez l’image Ic correspondant aux clusters ainsi obtenus.
# to get the clusters from v1, v2, and v3
Ic=matrix(0,150,180)
Ic[I>v1]=1/3
Ic[I>v2]=2/3
Ic[I>v3]=1
Tapez enfin les commandes suivantes:
# define pixels coordinates
x=rep(1:180,rep(150,180))
y=rep(1:150,180)
# define the learning sample (correct pixels)
NG_learn=NG1[m==1]
x_learn=x[m==1]
y_learn=y[m==1]
# define the testing sample (incorrect pixels)
NG_test=NG[m==0]
x_test=x[m==0]
y_test=y[m==0]
NG_est=NG2
NG_est[m==0]=res$estimate
IR=matrix(NG_est,150,180)
Show_Image(IR)
norm(C,'F')
calcule la norme de Frobenius de C.Un tournoi de tir à l’arc est organisé entre trois grands experts. Les concurrents décochent en même temps leur ultimes flèches ce qui fait qu’on ne peut savoir à qui ces flèches correspondent. Sur la cible les 4 flèches arrivent aux positions (1.4,1.3),(1.4,-1.2),(-2,0) et (-0.1,0.2). Comment pourriez-vous identifier les archers qui les ont décochées?
Commencez par charger l’espace de travail Archery.RData.
Il contient 3 variables :
- Archer : nom du tireur
- X : distance au centre de la cible
- pos : position (en 2 dimensions) de la fleche sur la cible
Décrivez la nature des données, la taille de l’échantillon et le type de problème considéré.
Donnez la définition du classifieur de Bayes. Peut-on l’utiliser directement ici ? Expliquez comment estimer les probabilités conditionnelles \(\pi_y(x)\) et ainsi proposer une estimation non paramétrique du classifieur de Bayes.
Montrer, à partir de leur définition, que pour tout x, la somme des probabilités conditionnelles \(\hat\pi_y(x)\) vaut 1.
Utilisez la fonction Classif_NP vue en cours pour mettre en pratique la méthode expliquée à la question 2 à partir des variables X et Archer. Commenter le résultat obtenu.
Tracer les densités de la variable X pour les différents archers sur un même graphique. Que constatez-vous?
Calculer les distances au centre de la cible correspondant aux 4 dernières flèches. Pouvez-vous correctement identifier les archers qui les ont décochées? Expliquez pourquoi?
Estimez la densité de la variable position (faites attention au choix du paramètre de lissage). Que constatez-vous? A quoi peuvent correspondre les clusters ainsi mis en évidence?
Comparez les positions des flèches pour les différents archers sur un même graphique. Que constatez-vous? En quoi est-ce prometteur?
Utilisez la fonction Classif_NP vue en cours pour mettre en pratique la méthode expliquée à la question 2 à partir des variables position et Archer. Commenter le résultat obtenu.
A l’aide de ce que vous avez fait précédemment, pour chacune des 4 dernières flèches, pouvez-vous correctement identifier l’archer qui l’a décochée? Expliquez pourquoi?