silico.biotoul.fr
 

M2P Bioinfo - Projet Data mining

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
Barriot (Talk | contribs)
(Created page with 'Pour ce projet, vous aurez le choix entre l'implantation d'un classificateur Bayesien ou ''k'' plus proches voisins, le but étant de prédire le type de tumeur - G1, G2 ou G3 - …')
Newer edit →

Revision as of 14:25, 24 December 2009

Pour ce projet, vous aurez le choix entre l'implantation d'un classificateur Bayesien ou k plus proches voisins, le but étant de prédire le type de tumeur - G1, G2 ou G3 - à partir soit des données cliniques (approche Bayesienne) soit des données d'expression (k plus proches voisins). Afin d'évaluer les performances, vous devrez ensuite écrire un script pour la validation croisée (leave-one-out cross validation) qui utilisera le classificateur précédent et évaluera ses performances.

Contents

Classificateur Bayesien naïf

A partir des données cliniques (cf. TD), il s'agit :

  1. de construire les tables de probabilités comme vu en cours,
  2. de calculer la probabilité a posteriori que l'échantillon à classer appartienne à chacune des classes (ici G1, G2 ou G3).

Le script à écrire prendra donc en paramètre 2 fichiers contenant :

  • le jeu d'apprentissage
Il sera constitué d'un fichier de type CSV ou texte tabulé ; chaque colonne correspondant à un attribut et la dernière colonne correspondant à la classe.
  • les échantillons à classer (il ne contiendra qu'un seul échantillon pour la validation)

Ce script affichera (par défaut) la classe la plus probable pour chacun des échantillons à classer.

Remarques :

  • Pour les attributs de type numérique (par exemple survival_time), vous avez le choix entre une discrétisation ou l'utilisation d'une gaussienne (ou tout modèle de distribution plus approprié). Dans les deux cas, les choix effectués ici (choix des intervalles pour les discrétisations ou choix de distribution avec graphiques à l'appui) devront être documentés et explicités dans un rapport.
  • On appréciera la possibilité d'afficher les tables de probabilités construites ainsi que des options pour pouvoir afficher les probabilités de chacune des classes (par ordre décroissant) de chaque échantillons à classer.

Classificateur k plus proches voisins (k-nn)

Pour ce classificateur, il s'agit de prédire le type de tumeur à partir des données d'expression des gènes que vous avez sélectionnés en TD. Pour cela, il vous faudra reformater et extraire les données afin d'obtenir, à partir de la liste de gènes sélectionnés, un fichier au format CSV ou texte tabulé contenant sur chaque ligne (chaque patiente ou type de tumeur) les valeurs d'expression des gènes sélectionnés (chaque colonne correspond à un gène) et le type de tumeur en dernière colonne.

Le script à réaliser prendra donc en paramètre :

  • un fichier contenant le jeu d'apprentissage (au format décrit précédemment),
  • un fichier contenant les échantillons à classer (il ne contiendra qu'un seul échantillon pour la validation. même format que précédemment avec la dernière colonne en moins),
  • le nombre de voisins à considérer k.

Ce script affichera la classe (type de tumeur) pour chacun des échantillons à classer.

Remarques :

  • Pour la mesure de distance/dissimilarité, vous avez le choix entre une mesure basée sur un coefficient de corrélation (par exemple celui de Pearson) ou une mesure de distance (par exemple manhattan ou euclidienne).
  • Pour ce type de classificateur, il est en général conseillé de normaliser les données.


Validation croisée (leave one out cross validation ou LOOCV)

Afin d'évaluer les performances de votre classificateur, vous réaliserez un script effectuant une validation croisée. Ce script prendra en entrée le jeu d'apprentissage (typiquement un fichier CSV ou texte tabulé avec en ligne les exemples et en colonnes les attributs, la dernière colonne étant la classe), et affichera les performances du classificateur. Pour cela, le script effectuera une boucle sur chacun des exemples dans laquelle :

  • il générera un nouveau jeu d'apprentissage (le jeu d'apprentissage moins l'exemple à classer) et un jeu de test (l'exemple à classer)
  • à partir des 2 fichiers précédents, il appellera le classificateur et confrontera sa prédiction avec la classe réelle de l'exemple à classer.

En sortie, le script affichera les performances, c'est-à-dire le taux d'échantillons correctement classés.


Livrables

  • codes sources annotés
  • résultats de la validation croisée
  • documentation sur les choix effectués (notamment discrétisation, normalisation, mesure de dissimilarité...)

Remarque : Pour l'évaluation de votre travail, les performances du classificateur n'importent pas, au contraire de la maîtrise du problème et de la qualité de la solution proposée (notamment généricité et lisibilité du code).