dimanche 24 octobre 2010

Création de rapports avec Tanagra

Le reporting est un vrai critère de différenciation entre les logiciels de data mining à vocation professionnelle et ceux issus de la recherche. Pour un praticien (ex. chargé d'études), il est important de pouvoir récupérer facilement le fruit de son travail dans un traitement de texte ou dans un diaporama. L'affaire devient particulièrement intéressante lorsqu'il dispose déjà d'une sortie au format tableur. En effet les résultats se présentent souvent sous la forme de divers tableaux et, éventuellement, de graphiques. Le nec plus ultra est de pouvoir définir à l'avance des maquettes de rapports que l'on nourrit simplement à l'issue des calculs et que l'on peut imprimer directement. Pour le chercheur qui développe des outils, tout cela est bien beau, mais ce n'est absolument pas valorisable académiquement. Je me vois très mal pour ma part proposer un article dans une revue montrant que je suis capable d'intégrer automatiquement des camemberts 3D dans un fichier PDF. De fait, les outils élaborés par les chercheurs se contentent souvent de sorties textes, certes complètes, mais peu présentables en l'état dans des rapports destinés à être diffusés à large échelle. Les sorties de R ou de Weka en sont un exemple édifiant.

Tanagra, créé par un enseignant chercheur, s'inscrit dans la même démarche. Rien n'a été initialement prévu pour le reporting. Et pourtant, paradoxalement, il propose dans un des ses menus (DIAGRAM / CREATE REPORT) un outil de création de rapports. C'est la conséquence heureuse d'un choix technologique effectué lors de l'écriture du cahier des charges du logiciel.

Revenons un peu en arrière pour comprendre la démarche. Lorsque j'avais écrit SIPINA (version 3.x), je me suis rendu compte que la construction des fenêtres d'affichage des résultats me prenait énormément de temps, plus que l'écriture des algorithmes de calculs. Dans mon optique, ce n'était pas une bonne chose car cela me détournait de ma principale préoccupation : comprendre les méthodes, les implémenter, les évaluer, en parler. Lorsque j'ai réfléchi aux spécifications de Tanagra, je me suis dit qu'il fallait absolument définir une fenêtre d'affichage standardisée, forcément avec des sorties textes, mais avec néanmoins une présentation relativement attrayante. Et là, j'ai redécouvert le HTML. C'est un peu amusant à dire, surtout en 2003. Le HTML permet de faire un effort minimum de description des sorties, une seule méthode dans la classe de calcul suffit (un peu comme Weka pour ceux qui sont allés voir le code source), tout en obtenant une présentation avenante. De plus, il est possible de mettre en évidence les informations importantes à lire en priorité. Par exemple, rien que pouvoir attribuer des codes couleurs à des tranches de p-value est infiniment précieux.

Par la suite, j'ai réalisé que le choix du HTML allait s'avérer doublement judicieux. En effet, c'est un standard largement répandu. Sans effort de programmation supplémentaire, nous pouvons d'une part récupérer les sorties dans le tableur Excel ; d'autre part, nous pouvons exporter les fenêtres de visualisation dans un fichier externe et visualiser les résultats dans un navigateur web, indépendamment du logiciel Tanagra. De fait, leur diffusion est largement facilitée.

Ce sont ces fonctionnalités de " reporting " de Tanagra que nous présentons dans ce didacticiel.

Mots-clés : rapport, reporting, arbre de décision, c4.5, régression logistique, codage disjonctif, courbe roc, échantillon d'apprentissage, échantillon test, sélection de variables
Composants : GROUP CHARACTERIZATION, SAMPLING, C4.5, TEST, O_1_BINARIZE, FORWARD-LOGIT, BINARY LOGISTIC REGRESSION, SCORING, ROC CURVE
Didacticiel : fr_Tanagra_Reporting.pdf
Données : heart disease

mercredi 20 octobre 2010

Bayesien naïf pour prédicteurs continus

Le classifieur bayesien naïf est une méthode d'apprentissage supervisé qui repose sur une hypothèse simplificatrice forte : les descripteurs (Xj) sont deux à deux indépendants conditionnellement aux valeurs de la variable à prédire (Y). Pourtant, malgré cela, il se révèle robuste et efficace. Ses performances sont comparables aux autres techniques d'apprentissage. Diverses raisons sont avancées dans la littérature. Nous avions nous même proposé une explication basée sur le biais de représentation dans un précédent tutoriel . Lorsque les prédicteurs sont discrets, on se rend compte aisément que le classifieur bayesien naïf est un séparateur linéaire. Il se pose donc en concurrent direct des autres techniques du même acabit, telles que l'analyse discriminante, la régression logistique, les SVM (Support Vector Machine) linéaires, etc.

Dans ce tutoriel, nous décrivons le modèle d'indépendance conditionnelle dans le cadre des variables prédictives quantitatives. La situation est un peu plus complexe. Nous verrons que, selon les hypothèses simplificatrices utilisées, il peut être considéré comme un séparateur linéaire ou quadratique. Il est alors possible de produire un classifieur explicite, facilement utilisable pour le déploiement. Les idées mises en avant dans ce tutoriel ont été implémentées dans Tanagra 1.4.37 (et ultérieure). Cette représentation du modèle est originale. Je ne l'ai pas retrouvée dans les autres logiciels libres que j'ai l'habitude de suivre (pour l'instant…).

Ce document est organisé comme suit. Tout d'abord (section 2), nous détaillons les aspects théoriques de la méthode. Nous montrons qu'il est possible de parvenir à un modèle explicite que l'on peut exprimer sous la forme d'une combinaison linéaire des variables ou du carré des variables. Dans la section 3, nous décrivons la mise en œuvre de la méthode à l'aide du logiciel Tanagra. Nous confrontons les résultats avec ceux des autres séparateurs linéaires (régression logistique, SVM linéaire, analyse discriminante PLS, analyse discriminante de Fisher). Dans la section 4, nous comparons l'implémentation de la technique dans différents logiciels. Nous mettrons surtout l'accent sur la lecture des résultats. Enfin, section 5, nous montrons l'intérêt de l'approche sur les très grands fichiers. Nous traiterons la base " mutants " comprenant 16592 observations et 5408 variables prédictives avec une rapidité hors de portée des autres techniques.

Mots-clés : classifieur bayesien naïf, modèle d'indépendance conditionnelle, rapidminer 5.0.10, weka 3.7.2, knime 2.2.2, logiciel R, package e1071, analyse discriminante, analyse discriminante pls, régression pls, svm linéaire, régression logistique
Composants : NAIVE BAYES CONTINUOUS, BINARY LOGISTIC REGRESSION, SVM, C-PLS, LINEAR DISCRIMINANT ANALYSIS
Didacticiel : fr_Tanagra_Naive_Bayes_Continuous_Predictors.pdf
Données : breast ; low birth weight
Références :
Wikipedia, "Naive bayes classifier"
Tanagra, "Classifieur bayesien naïf pour les prédicteurs discrets"

mardi 19 octobre 2010

Tanagra - Version 1.4.37

Naive Bayes Continuous est un composant d'apprentissage supervisé. Il implémente le modèle d'indépendance conditionnelle pour les prédicteurs continus (quantitatifs). La principale originalité est dans la production d'un modèle explicite sous forme d'une combinaison linéaire des variables prédictives et, éventuellement, de leur carré.

Les fonctionnalités de reporting ont été améliorées.

Tanagra - Version 1.4.37

Naive Bayes Continuous est un composant d'apprentissage supervisé. Il implémente le modèle d'indépendance conditionnelle pour les prédicteurs continus (quantitatifs). La principale originalité est dans la production d'un modèle explicite sous forme d'une combinaison linéaire des variables prédictives et, éventuellement, de leur carré.

Les fonctionnalités de reporting ont été améliorées.

lundi 4 octobre 2010

Nouvelle interface pour RapidMiner 5.0

La société Rapid-I, à travers leur logiciel phare RapidMiner, est un acteur très dynamique du l'informatique décisionnelle. Au-delà de l'outil, elle propose des solutions et des services dans le domaine de l'analyse prédictive, data mining et du text mining. Son site web regorge d'informations (blog, tutoriels, vidéos, forum, newsletter, wiki, etc.).

La version 5.0 de RapidMiner (Community Edition - Téléchargeable gratuitement) propose une interface profondément remaniée, s'inspirant visiblement de Knime. Les ressemblances entre les deux produits sont frappantes. Je me suis dit qu'il était opportun d'étudier cela en détail, en évaluant son comportement dans le cadre d'une analyse type. Nous souhaitons mettre en place le processus suivant : (1) construire et afficher un arbre de décision à partir d'un ensemble d'observations étiquetées ; (2) sauvegarder l'arbre dans un fichier au format PMML en vue d'un déploiement ultérieur ; (3) évaluer les performances en généralisation du classifieur à travers la validation croisée ; (4) utiliser le modèle pour classer un ensemble d'observations non étiquetées contenues dans un second fichier, les résultats (descripteurs et étiquette attribuée) doivent être consignés dans un troisième fichier au format CSV.

Ce sont là des tâches très classiques du data mining. Nous les avons maintes fois décrites dans nos didacticiels (ex. SPAD, ...). Raison de plus pour vérifier s'il est aisé de les mener à bien avec cette nouvelle version de RapidMiner. En effet, avec la précédente mouture, certains enchaînements étaient compliqués. Mettre en place une validation croisée par exemple demandait une organisation, certes très rigoureuse dans son esprit, mais peu intuitive.

Mots-clés : rapidminer, knime, validation croisée, arbres de décision, déploiement
Didacticiel : fr_Tanagra_RapidMiner_5.pdf
Données : adult_rapidminer.zip
Références :
Rapid-I, "RapidMiner"