silico.biotoul.fr
 

M1 MABS BBS Data Mining TD KNIME

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m
m (Utilisation d'une bibliothèque de programmation)
Line 43: Line 43:
python setup.py install
python setup.py install
</source>
</source>
 +
 +
Si vous ne disposez pas des droits administrateurs sur le poste de travail, il est possible de l'installer comme une librairie utilisateur :
 +
<source lang="bash">
 +
python setup.py install --user
 +
</source>
 +
 +
 +
Une fois correctement installée, l'import de la librairie se fait très simplement :
 +
<source lang="python">
 +
#!/usr/bin/python
 +
 +
import orange
 +
</source>
 +
 +
=== Chargement des données ===
 +
Orange propose différentes facilités pour charger un jeu de données, notamment un format CSV (les colonnes sont en fait séparées par des tabulations) amélioré qui permet de décrire le nom des colonnes, leur type, ainsi que la colonne correspondant à la classe :
 +
* la première ligne contient les noms des colonnes
 +
* la deuxième contient les types des colonnes : <tt>discrete</tt>, <tt>continuous</tt>, <tt>string</tt>, <tt>ignore</tt>
 +
* la troisième peut contenir le mot <tt>class</tt> dans la colonne correspondant à la classe
 +
* les lignes suivantes correspondent aux données
 +
 +
Avant de charger le jeu de données dans votre script python, '''adaptez le fichier de données en conséquence''' puis :
 +
<source lang="python">
 +
# LOAD DATASET
 +
data = orange.ExampleTable("training_clinical_info.tab")
 +
</source>
 +
 +
 +
 +
Jeu de données : [[Media:training_clinical_info.csv]]
Jeu de données : [[Media:training_clinical_info.csv]]

Revision as of 09:18, 16 November 2011

Contents

Contexte

Afin de mettre en pratique les concepts vus en cours, nous allons nous appuyer sur un jeu de données associées à la publication (Ivshina et al. (2006) Cancer Research) consistant en des données cliniques sur des patientes atteintes d'un cancer du sein ainsi que de données de transcriptome.

Pour le choix du traitement d'un cancer du sein, les décisions sont guidées par la détermination du potentiel métastatique des tumeurs. Des mesures cliniques sont utilisées afin d'évaluer ce potentiel (état du ganglion lymphatique, taille de la tumeur) et prédire la réactivité endocrine (récepteurs à l'oestrogène et à la progestérone) résultant en une classification des tumeurs en sous-types associés à un pronostic. Dans cette étude, les auteurs soulignent les défauts (manque de précision, subjectivité des évaluations) de tels indicateurs et proposent d'identifier et d'utiliser une signature génétique, c'est-à-dire les profils d'expression de certains gènes marqueurs, pour améliorer la précision de la classification des sous-types de tumeurs et les pronostics associés.

Le système d'évaluation de Nottingham intègre des mesures de différentiation cellulaire et de potentiel réplicatif, et fournit un score qui quantifie l'agressivité d'une tumeur. Les tumeurs sont ainsi classées en type G1 (cellules bien différenciées à croissance lente), G2 (différenciation modérée) et G3 (cellules faiblement différenciées et très prolifératives). Des études ont montré que ce classement permet de bien prédire les risques de récidives et de décès indépendamment de l'état des ganglions lymphatiques et de la taille des tumeurs. En revanche pour la planification des traitements thérapeutiques, cette classification a fait l'objet de controverse parmi les oncologues. De plus, les types G1 et G3 ont une pertinence clinique plus évidente que le type G2, plus hétérogène, et qui représente la moitié des cas de cancer du sein.

Dans ce TD, nous allons étudier la répartition et la valeur prédictive de ces différentes variables à partir d'un jeu de données de 289 tumeurs pour lesquelles on dispose de certaines informations cliniques.

Classification

Utilisation d'un environnement de fouille de données

Pour cette partie, nous allons principalement utiliser l'environnement pour la fouille de données KNIME. C'est un logiciel en Java développé à l'origine par l'université de Constance (Allemagne).

La première étape consiste à charger les données. Dans KNIME, ajoutez un noeud File Reader (section IO pour Input/Output) et configurez-le afin de charger le fichier Media:training_clinical_info.csv.

Comme premier exercice, ajoutez un noeud Decision Tree Learner (induction d'arbre de décision) et connectez la sortie du File Reader à l'entrée du Decision Tree Learner. Configurez ce dernier pour qu'il cherche à prédire le type de tumeur. Lancez l'éxécution de ces noeuds et visualisez l'arbre de décision induit. Quels sont les variables les plus importantes ? Comparez les résultats avec ou sans élagage.

Ensuite, évaluez les performance de ce type de classificateur en ajoutant et en configurant un noeud Cross validation (section Meta). Vous lui ferez effectuer une leave-one-out cross validation. Examiner ensuite le taux d'erreurs à l'aide d'un noeud Statistics view.

Effectuer le même travail avec les types de classificateur suivants :

  • Bayésien naïf,
  • k plus proches voisins (essayez différentes valeurs de k),
  • Réseau de neurones.

Quel est le problème rencontré par k-NN ?

Quel est le classificateur le plus performant sur ce jeu de données ?

Utilisation d'une bibliothèque de programmation

Afin d'automatiser la réalisation de certaines tâches, il est possible d'utiliser une librairie/module/bibliothèque proposant des fonctionnalités de fouilles de données. Il en existe pour différents langages de programmation, certaines proposant également une interface utilisateur graphique et/ou des passerelles pour d'autres langages de programmation (ex: RWeka) :

Pour aujourd'hui, nous utiliserons Orange.

Import de la librairie

Si la librairie n'est pas installée, elle peut l'être en téléchargeant la version appropriée (Windows, Mac ou linux). Pour linux, il faut récupérer les sources et en effectuer une installation standard :

python setup.py build
python setup.py install

Si vous ne disposez pas des droits administrateurs sur le poste de travail, il est possible de l'installer comme une librairie utilisateur :

python setup.py install --user


Une fois correctement installée, l'import de la librairie se fait très simplement :

#!/usr/bin/python
 
import orange

Chargement des données

Orange propose différentes facilités pour charger un jeu de données, notamment un format CSV (les colonnes sont en fait séparées par des tabulations) amélioré qui permet de décrire le nom des colonnes, leur type, ainsi que la colonne correspondant à la classe :

  • la première ligne contient les noms des colonnes
  • la deuxième contient les types des colonnes : discrete, continuous, string, ignore
  • la troisième peut contenir le mot class dans la colonne correspondant à la classe
  • les lignes suivantes correspondent aux données

Avant de charger le jeu de données dans votre script python, adaptez le fichier de données en conséquence puis :

# LOAD DATASET
data = orange.ExampleTable("training_clinical_info.tab")



Jeu de données : Media:training_clinical_info.csv