Initiation Matlab et Théorie Bayesienne

Programming, Math, Biometrics · lab

TP1 : Initiation Matlab et Théorie Bayesienne

I. But du TP

Le but de ce TP est de vous familiariser avec l'environnement de calcul numérique

Matlab en travaillant sur un problème de reconnaissance de formes d'origine

biomédicale.

II. Présentation des données

Les données sur lesquelles vous allez travailler sont des données biomédicales d'aide au

diagnostic du diabète. Les données ont été obtenues à partir d'un échantillon de 709

femmes amérindiennes Pimas. Les Pimas sont connus pour avoir le plus important taux

de diabétiques et d'obésité au monde, ils sont à ce titre un sujet d'étude pour les

scientifiques.

Le but est de prédire si un sujet est diabétique à partir d'un certain nombre de variables

mesurées pour chaque sujet :

1. Nombre de grossesse.

2. Concentration en glucose du plasma 2 heures après un test de tolérance au glucose

oral.

3. Pression sanguine diastolique (mm Hg)

4. Epaisseur de la peau sur le triceps (mm)

5. 2-heures d'insuline en sérum ( µU/ml)

Publicité

6. Indice de masse corporelle (poids en kg/(taille en m)2)

7. Fonction de pedigree du diabète

8. Age (années)

Bien que dans la pratique, l'utilisation de toutes les variables permet d'obtenir de

meilleurs taux de reconnaissance, dans ce TP, nous nous concentrerons sur deux

variables : la concentration en glucose (2) et l'indice de masse corporelle (6). Ceci nous

permettra de visualiser à la fois les données et les fonctions de classification.

Les données sont originaires du site web de l'université de Californie1

Le fichier « pima.mat » contient trois variables :

 xall : matrice de taille 709×8 contenant les données biomédicales.

 y : vecteur de taille 709 contenant la classe de chaque sujet

(-1 : non diabétique, +1 : diabétique).

 n : variable égale à 709, le nombre d'exemples d'apprentissage.

Notez que nous avons au préalable retiré un certain nombre de sujets ayant des données

manquantes.

1. http://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes

III. Analyse exploratoire des données

1. Chargement des données

  • Charger ce fichier sous matlab en utilisant la fonction load.
  • Extraire les variables (2) et (6). Stocker le résultat dans une matrice

Publicité

d'apprentissage xtemp.

2. Visualisation du problème

  • Visualiser des histogrammes de chaque classe pour chaque variable (fonction

hist).

  • Visualiser les exemples de chaque classe en 2D en leur mettant des couleurs

différentes (fonction plot).

3. Classifieur Bayesien : cas où

Premièrement, vous allez implémenter le classifieur Bayesien correspondant au cas où

les caractéristiques sont statistiquement indépendants et de même variance pour toutes

les classes.

  • Estimer les probabilités empiriques P(wi) d'appartenir à chaque classe.
  • Extraire les variables (2) et (6) et les normaliser (centrer et réduire) en conservant

leur moyenne et leur écart-type. Stocker le résultat dans la matrice d'apprentissage x.

La variance σ est connue et égale à un car les données ont été normalisée.

  • Calculer les moyennes µi de chaque classe.
  • Préparer une grille qui permettra de visualiser les fonctions de décision (fonction

meshgrid). Cette grille doit être mise sous la forme d'exemples de test en utilisant la

fonction reshape.

  • Calculer les valeurs des fonctions gi(x) pour chaque exemple de test.
  • Calculer la valeur de la fonction de prédiction f(x) = g1(x) – g-1(x) pour les exemples

de test.

  • Réorganiser les valeurs prédites sur les exemples de test sous forme de grille

Publicité

(fonction reshape).

  • Visualiser la fonction de prédiction en utilisant la fonction contour.

4. Classifieur Bayesien : cas où

Finalement, vous aller coder le classifieur Bayesien correspondant au cas général. Ce

dernier peut être utilisé quelque soit votre a priori sur la matrice de covariance.

  • Estimer les probabilités empiriques P(ωi) d'appartenir à chaque classe.
  • Calculer les moyennes µi de chaque classe.
  • Estimer les covariances Σi de chaque classe avec la fonction cov. La matrice de

covariance Σ est estimée empiriquement sur une matrice X par la formule :

jiIi2

où Σi,j est le terme générale de Σ contenant la covariance entre les variables i et j, et

la valeur moyenne de la variable i (0 dans notre cas car les données sont normalisées).

  • Calculer les valeurs des fonctions gi(x) pour chaque classe et chaque exemple de test.
  • Calculer la valeur de la fonction de prédiction f(x) = g1(x) – g-1(x) pour les exemples

de test.

  • Réorganiser les valeurs prédites sur les exemples de test sous forme de grille

(fonction reshape).

  • Visualiser la fonction de prédiction en utilisant la fonction contour. Quelle est la

différence avec la fonction de décision précédente ?