vendredi 24 décembre 2010

ACP avec FactoMineR et dynGraph

Il y a deux manières d'appréhender la représentation graphique des données en Data Mining. La première consiste à la considérer comme un outil de présentation des résultats. Le graphique vient appuyer le texte et les tableaux pour mettre en évidence les informations produites par l'analyse. Par exemple, on annonce dans le texte que les ventes de bonnets augmentent en hiver, une petite courbe où l'on distingue les pics de ventes en fin et en début d'année vient confirmer cela.

La seconde cherche à intégrer la représentation graphique dans le processus exploratoire même. Ici, elle devient un outil supplémentaire de détection des régularités, des singularités et des relations qui peuvent exister dans les données. A cet égard, les logiciels modernes, avec des fonctionnalités graphiques de plus en plus puissantes, ouvrent des perspectives incroyables. Comme je le dis souvent : un graphique bien senti vaut largement mieux qu'une série de ratios à l'interprétation confuse ou mal maîtrisée.

Dans ce didacticiel, nous menons une analyse en composantes principale avec le logiciel R. Nous l'avions déjà réalisée précédemment avec la procédure princomp(). Ici, nous réitérons l'étude avec la procédure PCA() du package FactoMineR. De nombreux indicateurs sur les éléments (variables, individus) actifs ou illustratifs sont directement fournis maintenant, facilitant grandement la tâche du praticien. Il n'est plus nécessaire de les post-calculer à l'aide de formules plus ou moins complexes comme nous avions pu le faire dans le précédent document. Par la suite, sur la base des indicateurs livrés par PCA(), nous procéderons à une exploration graphique à l'aide de l'outil dynGraph du package éponyme. Nous constaterons que les possibilités en matière d'analyse interactive sont nombreuses.

Mots clés : logiciel R, analyse en composantes principales, ACP, cercle de corrélation, variables illustratives, factominer, dyngraph, analyse graphique interactive
Composants : PCA, dynGraph
Lien : acp_avec_factominer_dyngraph.pdf
Données : acp_avec_factominer_dyngraph.zip
Références :
G. Saporta, « Probabilités, analyse des données et statistique », Dunod, 2006 ; pages 155 à 179.
Tutoriel Tanagra, "ACP - Description de véhicules"
F. Husson, J. Josse, S. Le, J. Pages, Le package FactoMineR pour R ; http://factominer.free.fr/
S. Le, J. Durand, Le package dynGraph pour R ; http://dyngraph.free.fr/

dimanche 19 décembre 2010

Outils pour le développement d'applications

Un tutoriel un peu différent des autres cette fois-ci. J'y parle des outils et langages de programmation pour le développement d'applications de data mining.

Lancer un débat à propos du " meilleur langage de programmation " est une excellente manière de plomber une soirée entre informaticiens. La question sous-jacente est " quel est le langage qui permet de développer l'application la plus performante, la plus rapide… ".

De très bon enfant, l'atmosphère devient très vite orageuse, voire délétère. Des personnes, fort charmantes la plupart du temps, adoptent un comportement passionné, voire passionnel, montent sur leurs grands chevaux (tagada, tagada) en assénant des arguments parfois complètement irrationnels. Je sais de quoi je parle, j'en fais partie quand je me laisse aller. Pourtant, finalement, trancher dans ce genre de débat serait assez facile. Il suffit de caractériser les problèmes que l'on cherche à résoudre, écrire un code équivalent dans les différents langages, et étudier le comportement de l'exécutable généré. C'est ce que nous allons faire dans ce didacticiel en nous plaçant dans deux situations couramment rencontrées lors de la programmation d'algorithmes d'exploration de données. On verra que le résultat n'est pas du tout celui qu'on attendait (si on en attendait un, ouh là là je vois déjà certains bondir), loin de là.

Tout d'abord, corrigeons un abus de langage (si je puis dire), la performance n'est pas une affaire de langage, mais plutôt une affaire de technologie et de compilateur. Nous le verrons, le même code source, compilé avec des outils différents, peut aboutir à des exécutables avec des comportements très différents. Nous étudierons dans ce document : C# avec Visual C# Express de Microsoft ; Pascal avec Borland Delphi 6.0 ; Pascal avec le compilateur Free Pascal 2.2.4 de Lazarus 0.9.28 ; C++ avec Borland C++ Builder 4 ; C++ avec Dev C++ (compilateur G++) ; Java exécuté via la JRE1.6.0_19 sous Windows (Eclipse est l'outil de développement que j'ai utilisé). Tous ces outils, excepté Borland C++ Builer 4, sont accessibles gratuitement sur le net. Pour tous, j'ai sélectionné les options de compilations qui optimisent la rapidité d'exécution.

Les performances sont évaluées en mesurant les temps de calculs des exécutables lancés via le shell, en dehors de l'EDI (Environnement de Développement Intégré) pour éviter les interférences. Ma machine étant multi-cœur, temps utilisateur et temps CPU sont quasiment les mêmes. Nous nous contenterons du premier. Chaque programme est lancé 10 fois. Nous calculons la moyenne.

Mots-clés : langage de programmation, c++, c#, delphi, pascal, java
Didacticiel : fr_Tanagra_Programming_Language.pdf
Code source : programming_language.zip

mercredi 15 décembre 2010

Régles d'association - Données transactionnelles

L’extraction des règles d’association est une des applications phares du data mining. L’idée est de mettre à jour des régularités, sous forme de cooccurrences, dans les bases de données. L’exemple emblématique est l’analyse des tickets de caisses des grandes surfaces : on veut découvrir des règles de comportement du type « si le client a acheté des couches et des lingettes, il va acheter du lait de croissance ». Auquel cas, il est peut être opportun de mettre les rayons adéquats dans la même zone du magasin (c’est le cas en ce qui concerne l’hypermarché que je fréquente habituellement). La partie « si » de la règle est appelée « antécédent », la partie « alors » est le « conséquent ».

Il est possible de rechercher des cooccurrences dans les tableaux individus – variables que l’on manipule avec les logiciels de Data Mining usuels. Mais bien souvent, surtout dans le cadre de l’induction des règles d’association, les données peuvent se présenter sous la forme d’une base transactionnelle. Si l’on reprend l’exemple de l’analyse des tickets de caisse, nous disposons d’une liste de produits par caddie.

Cette représentation des données est assez naturelle eu égard au problème que l’on souhaite traiter. Elle présente aussi l’avantage d’être plus compacte puisque seuls sont effectivement listés les produits observés dans chaque caddie. Nous n’avons pas besoin de nous préoccuper des produits qui n’y sont pas, surtout qu’ils peuvent être très nombreux si l’on se réfère aux nombre d’articles que peut proposer une enseigne de grande distribution.

Pour autant que ce mode de description soit naturel, il s’avère que de nombreux logiciels ne savent pas l’appréhender directement. On observe curieusement un vrai clivage entre les outils à vocation professionnelle et ceux issus du monde universitaire. Les premiers savent pour la plupart manipuler ce type de fichier. C’est le cas des logiciels SPAD 7.3 et SAS Enterprise Miner 4.3 que nous étudions dans ce didacticiel. Les seconds en revanche demandent une transformation préalable des données pour pouvoir fonctionner. Nous utiliserons une macro VBA fonctionnant sous Excel pour transformer nos données en base « individus – variables » binaire propice au traitement sous Tanagra 1.4.37 et Knime 2.2.2. Attention, nous devons respecter le cahier des charges initial, à savoir s’intéresser uniquement aux règles signalant la présence simultanée des produits dans les caddies. Il n’est pas question, consécutivement à un codage « présent – absent » mal maîtrisé, de produire des règles mettant en évidence l’absence simultanée de certains produits. Cela peut être intéressant dans certains cas, mais ce n’est pas l’objectif de notre analyse.

Mots-clés : règle d'association, règles d'association, spad 7.3, sas em 4.3, knime 2.2.2, filtrage des règles, lift
Composants : A PRIORI
Didacticiel : fr_Tanagra_Assoc_Rule_Transactions.pdf
Données : assoc_rule_transactions.zip
Références :
Wikipedia, "Association rule learning"

samedi 11 décembre 2010

Arbres de décision sur les grands fichiers (mise à jour)

Dans un post assez ancien ("Traitement de gros volumes - Comparaison de logiciels" - septembre 2008), je comparais le comportement de plusieurs logiciels lors du traitement d'un fichier relativement volumineux avec les arbres de décision.

J'y décrivais entres autres le comportement de Tanagra version 1.4.27 sortie en aout 2008. Depuis, ma machine de développement a changé ; Tanagra lui-même a changé, nous en sommes à ce jour à la version 1.4.37 ; et Sipina a lui aussi été modifié (version 3.5), avec l'introduction du multithreading pour certaines techniques d'induction d'arbres. Je me suis dit qu'il était temps d'étudier les performances en rééditant l'expérimentation dans les mêmes conditions.

Concernant Tanagra et Sipina, les seuls logiciels que j'ai analysés dans ce nouveau contexte, l'amélioration des temps de traitement est manifeste. Après, il faut discerner ce qui est imputable au changement de machine, et ce qui revient aux modifications dans les implémentations. Nous avançons quelques pistes dans notre document.

Les nouveaux résultats ont été ajoutés dans la dernière section (section 5) du PDF.

Lien : fr_Tanagra_Perfs_Comp_Decision_Tree.pdf

jeudi 18 novembre 2010

Multithreading pour les arbres de décision

Une grande partie des PC modernes sont équipés de processeurs multi-cœurs. Dans les faits, l'ordinateur fonctionne comme s'il disposait de plusieurs processeurs. Certains d'ailleurs, les gros serveurs notamment, en disposent effectivement. Les logiciels et les algorithmes de data mining doivent être aménagés pour pouvoir en tirer profit. A l'heure actuelle, rares sont les outils à large diffusion qui exploitent ces nouvelles caractéristiques des machines.

En effet, l'affaire n'est pas simple. Il est impossible de mettre en place une démarche générique qui serait valable quelle que soit la méthode d'apprentissage utilisée. Pour une technique donnée, décomposer un algorithme en tâches que l'on peut exécuter en parallèle est un domaine de recherche à part entière. Les publications scientifiques regorgent de propositions en tous genres, tant au niveau méthodologique (modification des algorithmes) qu'au niveau technologique (implémentation sur les machines). Une grande majorité d'entre elles s'intéressent surtout à l'implantation sur de gros systèmes. Il y a très peu de propositions de solutions légères que l'on peut introduire facilement sur des logiciels destinés aux ordinateurs personnels.

Dans ce didacticiel, une solution basée sur les threads est mise en avant. Elle est implantée dans la version 3.5 de Sipina.

Mots-clés : multithreading, thread, threads, arbres de décision, chaid, sipina 3.5, knime 2.2.2, rapidminer 5.0.011
Didacticiel : fr_sipina_multithreading.pdf
Données : covtype.arff.zip
Références :
Wikipedia, "Arbres de décision"
Aldinucci, Ruggieri, Torquati, " Porting Decision Tree Algorithms to Multicore using FastFlow ", Pkdd-2010.

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"

mardi 21 septembre 2010

Le format PMML pour le déploiement de modèles

Le déploiement des modèles est une étape importante du processus Data Mining. Dans le cadre de l'apprentissage supervisé, il s'agit de réaliser des prédictions en appliquant les modèles sur des observations non étiquetées. Nous avons décrit à maintes reprises la procédure pour différents outils (ex. Tanagra, Sipina, Spad, ou encore R). Ils ont pour point commun d'utiliser le même logiciel pour la construction du modèle et son déploiement.

Ce nouveau didacticiel se démarque des précédents dans la mesure où nous utilisons un logiciel tiers pour le classement des nouvelles observations. Il fait suite à une remarque qui m'a été faite par Loïc LUCEL (merci infiniment Loïc pour tes précieuses indications), il m'a fait prendre conscience de deux choses : le déploiement donne sa pleine mesure lorsqu'on le réalise avec un outil dédié au management des données, nous prendrons l'exemple de PDI-CE (Kettle) ; nous accédons à une certaine universalité lorsque nous décrivons les modèles à l'aide de standards reconnus/acceptés par la majorité des logiciels, en l'occurrence le standard de description PMML.

J'avais déjà parlé à plusieurs reprises de PMML. Mais jusqu'à présent, je ne voyais pas trop son intérêt si nous n'avons pas en aval un outil capable de l'appréhender de manière générique. Dans ce didacticiel, nous constaterons qu'il est possible d'élaborer un arbre de décision avec différents outils (SIPINA, KNIME et RAPIDMINER), de les exporter en respectant la norme PMML, puis de les déployer de manière indifférenciée sur des observations non étiquetées via PDI-CE. L'adoption d'un standard de description des modèles devient particulièrement intéressante dans ce cas.

Un peu à la marge de notre propos, nous décrirons des solutions de déploiement alternatives dans ce didacticiel. Nous verrons ainsi que Knime possède son propre interpréteur PMML. Il est capable d'appliquer un modèle sur de nouvelles données, quel que soit l'outil utilisé pour l'élaboration du modèle. L'essentiel est que le standard PMML soit respecté. En ce sens, Knime peut se substituer à PDI-CE. Autre piste possible, Weka, qui fait partie de la suite " Pentaho Community Edition ", possède un format de description propriétaire directement reconnu par PDI-CE.

Mots-clés : déploiement, pmml, arbres de décision, rapidminer 5.0.10, weka 3.7.2, knime 2.1.1, sipina 3.4
Didacticiel : fr_Tanagra_PDI_Model_Deployment.pdf
Données : heart-pmml.zip
Références :
Data Mining Group, "PMML standard"
Pentaho, "Pentaho Kettle Project"
Pentaho, "Using the Weka Scoring Plugin"

vendredi 10 septembre 2010

Pentaho Data Integration

L'informatique décisionnelle (" Business Intelligence - BI " en anglais, ça fait tout de suite plus glamour) fait référence à " l'exploitation des données de l'entreprise dans le but de faciliter la prise de décision ". Des suites logicielles se proposent de prendre en charge le processus complet. J'ai choisi de mettre en avant la suite Open Source Pentaho, mais les principes énoncés sont valables pour la grande majorité des logiciels du domaine.

Il existe deux versions de Pentaho. L'édition entreprise est payante, elle donne accès à une assistance. Je ne l'ai pas testée. La " Community Edition " (Pentaho CE) est téléchargeable librement. Elle est développée et maintenue par une communauté de développeurs. Je ne situe pas bien différences entre les deux versions. Pour ma part, je me suis focalisé sur la version non payante, pour que tout un chacun puisse reproduire les opérations que je décris.

Ce document présente la mise en oeuvre de Pentaho Data Integration Community Edition (PDI-CE, appelée également Kettle), l'outil ETL de la suite Pentaho CE. Je me contente d'une description succincte pour deux raisons : ce type d'outil n'entre pas directement dans mon champ de compétences (qui est le data mining) ; j'en parle surtout pour préparer un prochain tutoriel dans lequel je montre le déploiement de modèles élaborés à l'aide de Knime, Sipina ou Weka via PDI-CE.

Mots-clés : ETL, pentaho data integration, community edition, kettle, extraction de données, importation de données, alimentation, transformation, businness intelligence, informatique décisionnelle
Didacticiel : PDI-CE
Données : titanic32x.csv.zip
Références :
Comment ça marche.net, "Informatique décisionnelle (Business Intelligence)"
Pentaho, Pentaho Community

lundi 30 août 2010

Connexion Sipina/Excel via OLE [XL-SIPINA]

La connexion entre un logiciel de data mining et Excel (et plus généralement les tableurs) est un enjeu fort. Nous l'avions maintes fois abordée dans nos didacticiels. Au fil du temps, la solution basée sur l'utilisation des macros complémentaires (add-in) s'est imposée, tant pour SIPINA que pour TANAGRA. Elle est simple, fiable, performante. Elle ne nécessite pas développer des versions spécifiques. La connexion avec Excel est une simple fonctionnalité additionnelle de la distribution standard.

Avant de parvenir à cette solution, nous avions exploré différentes pistes. Dans ce didacticiel, nous présentons la solution XL-SIPINA basée sur la technologie OLE de Microsoft. A contre-pied des macros complémentaires, cette version de SIPINA choisit d'intégrer Excel dans le logiciel de Data Mining. Le dispositif fonctionne plutôt bien. Néanmoins, il a finalement été abandonné pour deux raisons : (1) nous étions obligé de développer/compiler des versions spéciales qui ne fonctionnent que si Excel est présent sur la machine de l'utilisateur ; (2) les temps de transferts " objet Excel - Sipina " via OLE s'avèrent dissuasifs lorsque la taille de la base augmente.

Il faut donc prendre XL-SIPINA comme un exercice de style. Il y a toujours un peu de nostalgie lorsque je fais un retour en arrière sur des voies que j'ai explorées et que j'ai finalement abandonnées. Peut être d'ailleurs ne suis-je pas allé totalement au bout des choses.

Dernière remarque. A l'origine, l'application a été développée à l'aide d'Office 97. Je me rends compte qu'elle reste d'actualité encore aujourd'hui, elle fonctionne parfaitement avec Office 2010.

Mots-clés : excel, tableur, sipina, xls, xlsx, xl-sipina, arbres de décision
Logiciel : XL-SIPINA
Didacticiel : fr_xls_sipina.pdf
Données : autos

vendredi 27 août 2010

L'add-in Tanagra pour Excel 2007 et 2010

La macro complémentaire (" add-in " en anglais) " tanagra.xla " participe grandement à la diffusion du logiciel Tanagra. Le principe est simple, il s'agit d'intégrer un menu Tanagra dans Excel. Ainsi l'utilisateur peut lancer les calculs statistiques sans avoir à quitter le tableur. Pour simple qu'elle soit, cette fonctionnalité facilite le travail du data miner. Le tableur est un des outils les plus utilisés pour la préparation des données (cf. KDNuggets Polls: Tools / Languages for Data Cleaning - 2008). En intégrant le logiciel de data mining dans cet environnement, on évite au praticien des manipulations répétitives et fastidieuses : importation, exportation, vérifier la compatibilité des formats, etc.

L'installation de l'add-in sous Office XP (valable de Office 1997 à Office 2003) est décrite dans un de nos didacticiels. La procédure devient caduque dans Office 2007 et Office 2010 dans la mesure où les menus d'Excel ont été réorganisés. Pourtant la macro reste opérationnelle. Il est dommage que les utilisateurs ne puissent pas en profiter.

Dans ce didacticiel, nous détaillons la démarche à suivre pour intégrer la macro Tanagra dans les nouvelles versions d'Excel. Nous nous concentrerons sur Office 2007 dans un premier temps, nous verrons que la procédure est aussi valable pour Office 2010. Ce passage à des versions récentes d'Excel n'est absolument pas anodin. En effet, par rapport aux précédentes, elles peuvent gérer un nombre plus important de lignes et de colonnes. Nous pouvons ainsi traiter une base allant jusqu'à 1.048.575 observations (la première ligne correspond aux noms des variables) et 16.384 variables.

Nous traiterons pour notre part une base comportant 100.000 observations et 22 variables. Il s'agit d'une version du fichier "waveform" bien connu des informaticiens. Notons que ce fichier, de par le nombre de lignes, ne peut pas être manipulé par les versions antérieures d'Excel.

La procédure décrite dans ce document est également valable pour la macro complémentaire associée au logiciel SIPINA (sipina.xla).

Mots-clés : importation des données, fichier excel, macro complémentaire, add-in, add-on, xls, xlsx
Composants : VIEW DATASET
Lien : fr_Tanagra_Add_In_Excel_2007_2010.pdf
Données : wave100k.xlsx
Références:
Tutoriel Tanagra,  "Les add-ins Tanagra et Sipina pour Excel 2016", juin 2016.
Tutoriel Tanagra, "Importation fichier XLS (Excel) - Macro complémentaire".
Tutoriel Tanagra, "Connexion Open Office Calc".
Tutoriel Tanagra, "Connexion Open Office Calc sous Linux".
Tutoriel Tanagra, "Connexion Excel - Sipina"

lundi 28 juin 2010

Filtrage des prédicteurs discrets

La sélection de variables est un dispositif crucial de l'apprentissage supervisé. On cherche à isoler le sous-ensemble de prédicteurs qui permet d'expliquer efficacement les valeurs de la variable cible.

Trois approches sont généralement citées dans la littérature. Les méthodes " embedded " intègrent directement la sélection dans le processus d'apprentissage. Les méthodes " wrapper " optimisent explicitement un critère de précision, le plus souvent le taux d'erreur . Elles ne s'appuient en rien sur les caractéristiques de l'algorithme d'apprentissage qui est utilisé comme une boîte noire.

Enfin, troisième et dernière approche que nous étudierons dans ce didacticiel, les méthodes " filter " agissent en amont, avant la mise en œuvre de la technique d'apprentissage, et sans lien direct avec celui-ci. On présume donc qu'un processus indépendant basé sur un critère ad hoc permettrait de détecter les prédicteurs pertinents quel que soit l'algorithme d'apprentissage mis en œuvre en aval. Le pari est osé, voire hasardeux. Et pourtant, certaines expérimentations montrent que l'approche est viable même lorsque la méthode d'apprentissage utilise dans le même temps un dispositif intégré (embedded) de sélection de variables (les arbres de décision avec C4.5 par exemple ).

Nous nous intéressons aux méthodes de filtrage (filter) basées sur le principe suivant : le sous-ensemble de prédicteurs sélectionnés doit être composé de variables fortement liées avec la variable cible (pertinence) mais faiblement liées entre elles (absence de redondance). Deux idées sont à mettre en exergue dans ce schéma : (1) comment mesurer la liaison entre variables, sachant que nous nous restreignons aux cas des prédicteurs discrets ; (2) comment traduire la redondance dans un sous ensemble de variables.

Dans ce didacticiel, nous décrirons plusieurs méthodes de filtrage basées sur une mesure de corrélation pour variables discrètes. Nous les appliquerons sur un ensemble de données qui sera spécialement préparé pour mettre en évidence leur comportement. Nous évaluerons alors leurs performances en construisant le modèle bayesien naïf à partir des sous-ensembles de variables sélectionnées. Nous mènerons l'expérimentation à l'aide du logiciel Tanagra ; par la suite, nous passerons en revue les méthodes filtres implémentées dans plusieurs logiciels libres de data mining (Weka 3.6.0, Orange 2.0b, RapidMiner 4.6.0, R 2.9.2 - package FSelector).

Mots clés : méthodes de filtrage, filter approach, correlation based measure, modèle bayesien naïf, modèle d'indépendance conditionnelle
Composants : FEATURE RANKING, CFS FILTERING, MIFS FILTERING, FCBF FILTERING, MODTREE FILTERING, NAIVE BAYES, BOOTSTRAP
Lien : fr_Tanagra_Filter_Method_Discrete_Predictors.pdf
Données : vote_filter_approach.zip
Références :
Rakotomalala R., Lallich S., "Construction d'arbres de décision par optimisation", Revue Extraction des Connaissances et Apprentissage, vol. 16, n°6/2002, pp.685-703, 2002.
Tutoriel Tanagra, "Stepdisc - Analyse discriminante" ; "Stratégie wrapper pour la sélection de variables" ; "Wrapper pour la sélection de variables (suite)"

mardi 15 juin 2010

Data Mining sous R - Le package rattle

Le père de Tanagra est aussi un fan de R. Cela peut paraître étrange et/ou contradictoire. Mais en réalité, je suis surtout un grand fan de Data Mining. Et le logiciel en est un maillon essentiel. Je passe ainsi beaucoup de temps à les disséquer, à évaluer leur comportement face aux données, et analyser leur code source lorsque cela est possible, bref, à les étudier sous toutes les coutures. Ce travail me passionne tout simplement. Je l'ai toujours fait. Avec Internet, je peux partager le fruit de mes réflexions avec d'autres utilisateurs.

Dans ce tutoriel, nous présentons le package rattle pour R spécialisé dans le Data Mining. Il n'intègre pas de nouvelles méthodes d'apprentissage, il vise plutôt à rajouter une interface utilisateur graphique (GUI en anglais, " graphical user interface ") à R. Ainsi, un praticien, ignorant tout du langage de programmation R, pourra néanmoins piloter ses analyses en cliquant simplement sur des menus ou des boutons, un peu à l'image du mode " Explorer " du logiciel Weka. Rien de bien révolutionnaire donc, mais ô combien important pour les utilisateurs novices qui veulent aller à l'essentiel : traiter leurs données à l'aide de R sans avoir à investir dans l'apprentissage fastidieux de la programmation.

Pour décrire le fonctionnement de rattle, nous reprenons la trame du document de présentation publié par son auteur dans le journal de R (voir référence). Nous réaliserons la succession d'opérations suivantes : charger le fichier, le scinder en échantillons d'apprentissage et de test, définir le rôle des variables (cible vs. prédictives), réaliser quelques statistiques descriptives et graphiques pour appréhender les données, construire les modèles prédictifs sur l'échantillon d'apprentissage, les jauger sur l'échantillon test à travers les outils usuels d'évaluation (matrice de confusion, quelques courbes).

Mots clés : logiciel R, rpart, random forest, glm, arbres de décision, régression logistique, forêt aléatoire, forêts aléatoires
Lien : fr_Tanagra_Rattle_Package_for_R.pdf
Données : heart_for_rattle.txt
Références :
Togaware, "Rattle"
CRAN, "Package rattle - Graphical user interface for data mining in R"
G.J. Williams, "Rattle: A Data Mining GUI for R", in The R Journal, Vol. 1/2, pages 45--55, december 2009.

vendredi 11 juin 2010

Déploiement des modèles prédictifs avec R

L'industrialisation est l'étape ultime du data mining. Dans le cadre prédictif, l'objectif est de classer un individu à partir de sa description. Elle repose sur la possibilité de sauver, de diffuser et d'exploiter le classifieur élaboré lors de la phase d'apprentissage dans un environnement opérationnel. On parle de déploiement.

Dans ce tutoriel, nous présentons une stratégie de déploiement pour R. Elle repose sur la possibilité de sauvegarder des modèles dans des fichiers binaires via le package filehash. Certes, nous aurons encore besoin du logiciel R dans la phase d'industrialisation (pour le classement de nouveaux individus), mais plusieurs aspects militent en faveur de cette stratégie : R est librement accessible et utilisable dans quelque contexte que ce soit ; il fonctionne indifféremment sous Windows, sous Linux et sous MacOS (http://www.r-project.org/); nous pouvons le piloter en mode batch c.-à-d. tout programme peut faire appel à R en sous main, lui faire exécuter une tâche, et récupérer les résultats.

Nous écrirons trois programmes distincts pour différencier les étapes. Le premier construit les modèles à partir des données d'apprentissage et les stocke dans un fichier binaire. Le second charge les modèles et les utilise pour classer les individus non étiquetés d'un second ensemble de données. Les prédictions sont sauvées dans un fichier CSV. Enfin, le troisième charge les prédictions et la vraie classe d'appartenance conservée dans un troisième fichier, il construit les matrices de confusion et calcule les taux d'erreur. Les méthodes de data mining utilisés sont : les arbres de décision (rpart) ; la régression logistique (glm) ; l'analyse discriminante linéaire (lda) ; et l'analyse discriminante sur facteurs de l'ACP (princomp + lda). Avec ce dernier cas, on montre que la stratégie reste opérationnelle même lorsque la prédiction nécessite un enchaînement d'opérations complexes.

Mots clés : logiciel R, déploiement, industrialisation, rpart, lda, pca, glm, arbres de décision, analyse discriminante, régression logistique, analyse en composantes principales, analyse discriminante sur facteurs
Lien : fr_Tanagra_Deploying_Predictive_Models_with_R.pdf
Données : pima-model-deployment.zip
Références :
R package, "Filehash : Simple key-value database"
Kdnuggets, "Data mining deployment Poll"

mercredi 2 juin 2010

Traitement des très grands fichiers avec R

Le traitement des grands fichiers est un problème récurrent du data mining. Dans ce didacticiel, nous étudierons une solution mise en place dans R sous la forme d'une libraire. Le package " filehash " permet de copier (de " dumper " carrément) tous types d'objets sur le disque, les données mais aussi les modèles. Il utilise un format de type base de données. Il présente un avantage énorme, il est possible d'utiliser les fonctions statistiques standards ou issus d'autres packages sans avoir à procéder à une quelconque adaptation. Au lieu de manipuler des data.frame en mémoire, elles travaillent sur des data.frame stockés sur le disque, de manière totalement transparente. C'est assez épatant, il faut l'avouer. Les capacités de traitement sont largement améliorées et, dans le même temps, la dégradation du temps de calcul n'est pas rédhibitoire.

Néanmoins, nous constaterons que les fonctions R n'étant pas spécifiquement conçus pour l'appréhension des grands ensembles de données, lorsque nous augmentons encore nos exigences, les calculs ne sont plus possibles alors que les ressources ne sont pas entièrement utilisées. C'est un peu la limite des approches génériques. La modification des algorithmes d'apprentissage est souvent nécessaire pour exploiter au mieux les particularités du contexte. Il faudrait même aller plus loin. Pour obtenir des résultats réellement probants, il faudrait à la fois adapter les algorithmes d'apprentissage et organiser en conséquence les données sur le disque. Une solution qui conviendrait à tout type d'analyse paraît difficile, voire illusoire.

Pour évaluer la solution apportée par le package " filehash ", nous étudierons le temps de calcul et l'occupation mémoire, avec ou sans swap sur le disque, lors du calcul de statistiques descriptives, de l'induction d'un arbre de décision avec rpart du package du même nom, et de la modélisation à l'aide de l'analyse discriminante avec la fonction lda de la librairie MASS.

Nous réaliserons les mêmes opérations dans SIPINA. En effet, ce dernier propose également une solution de swap pour l'appréhension des très grandes bases de données. Nous pourrons ainsi comparer les performances des stratégies implémentées.

Mots clés : gros volumes, très grands fichiers, grandes bases de données, arbre de décision, analyse discriminante, sipina, C4.5, rpart, lda
Lien : fr_Tanagra_Dealing_Very_Large_Dataset_With_R.pdf
Données : wave2M.txt.zip
Références :
R package, "Filehash : Simple key-value database"
Tutoriel Tanagra, « Traitement de gros volumes – Comparaison de logiciels »
Tutoriel Tanagra, « Sipina - Traitement des très grands fichiers »
Yu-Sung Su's Blog, "Dealing with large dataset in R"

mardi 18 mai 2010

Tanagra dans La revue Modulad (2005)

Toujours au chapitre nostalgie, le grand nettoyage de printemps se prête beaucoup à l'exhumation de documents anciens, j'ai retrouvé la version longue de l'article EGC publiée dans la revue Modulad (n°32 – 2005).

La revue MODULAD cumule les avantages. Elle est présente depuis longtemps déjà, la pérennité est souvent un gage de qualité. Elle est en langue française. Elles ne sont pas nombreuses dans notre domaine. Et (surtout serais-je tenté de dire), elle est accessible librement en ligne. Nous pouvons donc accéder à des articles très intéressants, récents ou plus anciens puisque les archives sont disponibles. Le numéro 1 date de 1988. Les vieux documents ont été scannés.

Autre aspect très plaisant, avec la page Excel'ense, nous disposons de nombreux tutoriels décrivant l'exploitation statistique des données sous un tableur. Les exemples montrent, si besoin était, que le tableur tient très bien sa place parmi les logiciels de statistique. Nous pouvons réaliser de nombreux traitements rien qu'en utilisant les fonctions courantes.

Article : Tanagra – Revue Modulad
Référence : Rakotomalala R., "TANAGRA, une plate-forme d’expérimentation pour la fouille de données", Revue MODULAD, n°32, pp. 70-85, 2005.

lundi 17 mai 2010

Tanagra - Présentation à EGC'2005

Au chapitre nostalgie, j'ai retrouvé le document décrivant Tanagra publié dans les actes de EGC'2005 (Paris). Il est précieux car il représente l'unique présentation du logiciel dans le cadre d'une conférence. C'est l'article que je conseille de citer lorsqu'un utilisateur souhaite faire référence à Tanagra. Il n'existe pas d'équivalent en anglais. Il faudra sûrement l'écrire un jour.

Puisque l'occasion se présente, essayons un peu de situer Tanagra dans le temps. J'ai commencé à réfléchir sérieusement à un logiciel de Data Mining en janvier 2003. J'ai réalisé trois prototypes en java, c++ et delphi. Je n'étais pas très objectif néanmoins. Mon principal souci était de déterminer si l'élaboration du logiciel en delphi était pénalisant ou pas. Il est apparu au regard du cahier des charges, réaliser un logiciel à l'interface simplifiée en donnant la part belle aux calculs, que l'écrire en delphi était la solution la plus simple. Il faut dire que je programme en pascal depuis la fin des années 80.

Les idées étant singulièrement clarifiées, je me suis attelé à la programmation de Tanagra au tout début de juillet 2003. Deux mois de travail (plaisir) ininterrompu. Après, il a fallu déboguer, valider, comparer, documenter, monter le site web. En janvier 2004, le logiciel était en ligne. En janvier 2005, je le présentais à EGC suite à l'invitation du chairman de la session consacrée aux logiciels.

Il a fallu près d'un an encore pour que les tutoriels prennent vraiment de l'ampleur. Avec le recul, je me rends compte que c'est la documentation qui distingue Tanagra des autres outils libres qui, par ailleurs, possèdent d'autres atouts. A l'heure actuelle, je ne fais plus de présentation de Tanagra sans consacrer un temps important aux autres logiciels gratuits tels que R, Knime, Orange, RapidMiner et Weka.

Article : Tanagra - Egc'2005
Référence : R. Rakotomalala, "TANAGRA : un logiciel gratuit pour l'enseignement et la recherche", in 5èmes Journées d'Extraction et Gestion des Connaissances, EGC-2005, pp. 697-702, Paris, 2005.

samedi 15 mai 2010

Sipina - Présentation de l'ancienne version 2.5

En travaillant sur la traduction du tutoriel décrivant l'implémentation des graphes d'induction à l'aide de la version 2.5 de SIPINA, je suis tombé sur un ancien document de présentation de la dite version. Le texte est assez ancien. Il est directement extrait de mon mémoire de doctorat (chapitre 11, pages 269 à 292). Il a été repris tel quel dans l'ouvrage paru en 2000 (chapitre 16, pages 391 à 414). J'imagine qu'il a été préparé en vue d'une publication dans une revue quelconque. Mais, à ma connaissance, il n'a finalement jamais été valorisé sous la forme d'un article. Ce n'est pas plus mal, nous avons l'occasion de le mettre en avant sur ce blog.

Je regarde toujours avec beaucoup de nostalgie cette version 2.5 de SIPINA. Le projet a été initié par des étudiants du Master SISE (dont je faisais partie). J'ai entièrement repris le projet de l'automne 1995 jusqu'à l'été 1997, en essayant de le perfectionner au possible, en rajoutant des modules de calculs (les algorithmes d'induction d'arbres de décision tels que C4.5, CHAID; les techniques de ré-échantillonnage pour l'évaluation des résultats, bootstrap, validation croisée, etc.). Néanmoins, je n'ai jamais pu aller très loin dans le développement du logiciel. Principalement à cause d'un cahier de charges initial trop timoré qui a lourdement pesé sur sa conception; et l'utilisation de bibliothèques payantes 16 bits qui ont compromis tout passage au 32 bits.

La version recherche (ou version 3.0 et suivantes) a été conçue pour dépasser les limitations structurelles de la version 2.5. Il n'en reste pas moins que cette dernière est encore utilisée de nos jours. En effet, c'est le seul logiciel qui implémente la méthode SIPINA telle qu'elle est décrite dans littérature. Mieux même, il s'agit vraisemblablement du seul outil gratuit au monde qui propose une implémentation facilement exploitable des graphes de décision. C'est la raison pour laquelle je la mets encore en ligne sur le site web à ce jour.

Mots-clés : graphes d'induction, graphes de décision
Texte : Sipina_windows_v25.pdf
Références :
R. Rakotomalala, Graphes d’induction, Thèse de Doctorat, Université Lyon 1, 1997 (URL : http://eric.univ-lyon2.fr/~ricco/publications.html).
D. Zighed, R. Rakotomalala, Graphes d’induction : Apprentissage et Data Mining, Hermès, 2000.

mercredi 5 mai 2010

Traitement des classes déséquilibrées

Bien souvent, les modalités de la variable à prédire ne sont pas également représentées en apprentissage supervisé. Si l'on s'en tient aux problèmes à deux classes, les positifs, ceux que l'on cherche à identifier justement, sont rares par rapport aux négatifs : les personnes malades sont (heureusement) peu nombreux par rapport aux personnes en bonne santé ; les fraudeurs constituent une infime minorité dans la population ; etc. Dans cette configuration, en travaillant avec un échantillon représentatif et en évaluant le modèle de prédiction avec la procédure usuelle (matrice de confusion + taux d'erreur), on se rend compte que le meilleur classifieur revient à prédire systématiquement la classe majoritaire (les négatifs), ce qui nous assure le plus faible taux d'erreur.

La stratégie la plus couramment admise pour surmonter cet écueil consiste à équilibrer artificiellement les données c.-à-d. mettre autant de positifs que de négatifs dans l'échantillon d'apprentissage. Sans que l'on ne sache pas très bien pourquoi, sans mettre en relation cette modification avec les caractéristiques de la technique d'apprentissage, sans en mesurer les conséquences sur le comportement du classifieur induit. Tout simplement parce que " c'est mieux ". La recette miracle en quelque sorte. En tous les cas, les ressources étant limitées, cela ne peut se faire que de deux manières : dupliquer les positifs (sur échantillonnage) ou bien n'utiliser qu'une fraction des négatifs (sous échantillonnage).

Dans ce didacticiel, nous souhaitons évaluer le comportement du sous échantillonnage lors du traitement d'une base très déséquilibrée à l'aide de la régression logistique.

Mots clés : régression logistique, classes déséquilibrées, sur et sous échantillonnage
Lien : fr_Tanagra_Imbalanced_Dataset.pdf
Données : imbalanced_dataset.xls
Références :
Wikipedia, "Régression logistique".
R. Rakotomalala, "Pratique de la régression logistique - Régression logistique binaire et polytomique".
D. Hosmer, S. Lemeshow, « Applied Logistic Regression », John Wiley &Sons, Inc, Second Edition, 2000.

samedi 1 mai 2010

Séminaire au LIESP

Le vendredi 30 avril a été l'occasion d'un très agréable séminaire au LIESP (http://liesp.insa-lyon.fr/v2/?q=fr/acc). Le contenu est plus ou moins identique à la présentation réalisée le mois précédent à Rennes. A la différence que j'avais en face de moi des chercheurs qui travaillent dans le domaine du Data Mining.

Les discussions se sont donc plutôt orientées vers l'utilisation des différents logiciels libres/gratuits en recherche. J'ai appris entres autres que, s'agissant du Data Mining, Matlab a un positionnement très proche de celui de R, avec notamment le système des plugins. J'essaierai de voir cela dans un avenir proche.

Dans la partie bilan : pour les 4 premiers mois de l'année 2010 (1er janvier au 30 avril), mes sites ont enregistré 83.219 visites, soit 693 visites par jour.

Titre : Tanagra, un logiciel gratuit pour l'enseignement et la recherche
Résumé : Tanagra est un logiciel de data mining gratuit, open source, à destination des étudiants, des enseignants et des chercheurs. Il intègre à l'heure actuelle (version 1.4.36 - Mars 2010) près de 170 techniques d'exploration des données. Elles couvrent la statistique, l'analyse de données, l'économétrie, la reconnaissance de formes. Au-delà du logiciel, le site web Tanagra est aussi le carrefour d'une documentation très importante, sous la forme d'ouvrages gratuits (free e-books) et de tutoriels en français et en anglais. La convergence de ces éléments a beaucoup contribué à la large diffusion de notre travail. En termes quantitatifs, notre site, regroupant les supports de cours, les tutoriels et le logiciel, a connu 520 visites par jour sur l'année 2009, à comparer avec les 349 visites journalières de 2008.

Dans notre exposé, nous décrivons les motivations et les contraintes qui nous ont conduit à définir un cahier de charges suffisamment précis pour l'élaboration du logiciel. Nous essayons surtout de délimiter son champ d'application et les utilisateurs visés. Les choix conditionnent la viabilité du projet dans la durée. En effet, il y a la création de la première version, toujours exaltante, puis il faut anticiper sur son évolution dans le temps. Notre propre expérience montre que les solutions organisationnelles et techniques sont très importantes dans cette perspective.

Mais Tanagra n'est pas le seul logiciel de data mining libre, loin de là. Dans une deuxième partie, nous présenterons les autres outils, très diffusés dans communauté: R, Weka, Knime, Orange, RapidMiner. Ce sont autant d'alternatives très intéressantes pour le traitement des données. Un des facteurs de succès de notre site d'ailleurs est d'avoir réalisé un effort considérable de documentation pour ces logiciels. Nous les présentons rapidement en essayant de pointer leurs spécificités respectives.

Enfin, dans une troisième et dernière partie, pour donner un tour concret à notre exposé, nous réaliserons quelques traitements types (apprentissage supervisé, induction de règles d'association) à l'aide de ces différents logiciels. En réalisant les mêmes traitements sur les mêmes données, nous sommes à même de situer ce qui rapproche ou ce qui différencie ces outils. Nous constaterons d'ailleurs que, finalement, ils sont relativement similaires. Les différences se situent essentiellement sur le mode de présentation et la terminologie utilisée selon l'origine communautaire du logiciel (statistique, informatique, reconnaissance de formes).

Mots-clés : data mining, logiciel gratuit, logiciel libre, tanagra, r, weka, knime, orange, rapidminer
Diaporama : voir diapos en version animée.

vendredi 26 mars 2010

Tanagra et autres logiciels gratuits

Un très sympathique et chaleureux séminaire au sein du Laboratoire de Mathématiques Appliquées de l'AgroCampus Ouest de Rennes (http://www.agrocampus-ouest.fr/math/) a été l'occasion de faire un bilan sur l'évolution de Tanagra ces dernières années. En termes quantitatifs, notre site, regroupant les supports de cours, les tutoriels et le logiciel, a connu 520 visites par jour sur l'année 2009, à comparer avec les 349 visites journalières de 2008. Les visiteurs sont pour moitié francophones, les accès se concentrent avant tout sur les pages consacrées à la documentation.

Mais, au-delà de la simple présentation de Tanagra, j'ai surtout tenté de positionner les principaux logiciels libres largement reconnus dans notre communauté : Orange, Knime, Rapid-Miner, Weka ; mais aussi le logiciel R, plutôt d'obédience statistique, mais qui fait une percée spectaculaire auprès des " Data Miner ". Des démonstrations sur des données réalistes ont permis de montrer le mode opératoire des différents outils.

Au final, on se rend compte qu'ils répondent peu ou prou à des cahiers des charges relativement similaires. Il est illusoire de penser que tel ou tel logiciel serait systématiquement meilleur que les autres quel que soit le domaine abordé. Le plus important pour l'utilisateur est de bien cerner les spécificités de son étude (objectifs, caractéristiques des données, etc.) pour choisir en pleine conscience l'outil le mieux adapté. C'est une des raisons pour lesquelles j'essaie, et j'essaierai toujours, de comparer objectivement les logiciels lorsque que je montre la mise en œuvre des techniques exploratoires dans mes tutoriels. Après, le choix des armes appartient à l'utilisateur lorsqu'il aura à affronter ses propres données. Et c'est très bien ainsi...

Résumé du séminaire : Résumé
Slides du séminaire : Présentation

mardi 23 mars 2010

Le classifieur Bayesien Naïf revisité

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. Dans ce document, nous mettrons en avant une explication basée sur le biais de représentation. Le modèle d'indépendance conditionnel est ni plus ni moins qu'un classifieur linéaire, au même titre que l'analyse discriminante linéaire ou la régression logistique. Seul diffère le mode d'estimation des coefficients de la fonction de classement.

Dans la première partie de ce tutoriel, nous présentons tout d'abord brièvement les aspects théoriques relatifs à la méthode. Puis, nous l'implémentons à l'aide du logiciel Tanagra 1.4.36. Nous comparerons les résultats obtenus (les coefficients de l'hyperplan séparateur) avec ceux de la régression logistique, de l'analyse discriminante et d'un SVM (support vector machine) linéaire. Nous constaterons qu'ils sont étonnamment cohérents, expliquant ainsi la bonne tenue du classifieur bayesien naïf dans la grande majorité des situations.

Dans la seconde partie, nous montrons la mise en œuvre de la technique dans les plusieurs logiciels libres tels que Weka 3.6.0, R 2.9.2, Knime 2.1.1, Orange 2.0b et RapidMiner 4.6.0. Nous nous attacherons avant tout à lire correctement les résultats. Un des aspects qui dessert souvent la méthode auprès des praticiens du Data Mining.

Mots clés : classifieur bayesien naïf, séparateur linéaire, analyse discriminante, régression logistique, support vector machine
Lien : fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
Données : heart_for_naive_bayes.zip
Références :
Wikipedia, "Naive bayes classifier".
T. Mitchell, "Generative and Discriminative Classifiers: Naive Bayes and Logistic Regression", in Machine Learning, Chapter 1, 2005.

Tanagra - Version 1.4.36

ReliefF est un composant de sélection automatique de variables pour l'apprentissage supervisé. Il sait traiter les descripteurs continus ou discrets. On peut le placer devant n'importe quelle méthode supervisée.

Naive Bayes a été modifié. Il affiche maintenant un modèle de prédiction sous une forme explicite, facile à déployer. Un tutoriel accompagne cette mise à jour.

mercredi 3 février 2010

Discrétisation - Comparaison de logiciels

La discrétisation consiste à découper une variable quantitative en intervalles. Il s'agit d'une opération de recodage. De quantitative, la variable est transformée en qualitative ordinale. Nous devons répondre à deux questions pour mener à bien l'opération : (1) comment déterminer le nombre d'intervalles à produire ; (2) comment calculer les bornes de discrétisation à partir des données. La résolution ne se fait pas forcément dans cet ordre.

J'ai coutume de dire que le découpage d'expert est le meilleur possible. En effet, lui seul peut fournir une discrétisation raisonnée tenant compte des connaissances du domaine, tenant compte de tout un tas de contraintes dont on n'a pas idée si on se base uniquement sur les données, et en adéquation avec les objectifs de l'étude. Malheureusement, la démarche s'avère délicate parce que : d'une part, les connaissances ne sont pas toujours au rendez vous ou sont difficilement quantifiables ; d'autre part, elle n'est pas automatisable, le traitement d'une base comportant des centaines de variables se révèle rapidement ingérable. Souvent donc, nous sommes obligés de nous baser uniquement sur les données pour produire un découpage qui soit un tant soit peu pertinent.

Discrétisation comme prétraitement des variables en apprentissage supervisé. Tout d'abord, il faut situer le canevas dans lequel nous réalisons l'opération. Selon le cas, il est évident que la démarche et les critères utilisés ne seront pas les mêmes. Dans ce didacticiel, nous nous plaçons dans le cadre de l'apprentissage supervisé. Les variables quantitatives sont préalablement recodées avant d'être présentées à un algorithme d'apprentissage supervisé. La variable à prédire, elle, est naturellement qualitative. Lors de la discrétisation, il est par conséquent souhaitable que les groupes soient le plus purs possibles c.-à-d. les individus situés dans le même intervalle doivent appartenir majoritairement à l'une des modalités de la variable à prédire.

Dans ce didacticiel, nous comparerons le comportement des techniques supervisées et non supervisées implémentées dans les logiciels Tanagra 1.4.35, Sipina 3.3, R 2.9.2 (package dprep), Weka 3.6.0, Knime 2.1.1, Orange 2.0b et RapidMiner 4.6.0. Comme nous pouvons le constater, tout logiciel de Data Mining se doit de proposer ce type d'outils. Nous mettrons en avant le paramétrage et la lecture des résultats.

Mots clés : mdlpc, discrétisation supervisée, discrétisation non supervisée, intervalles de largeurs égales, intervalles de fréquences égales
Composants : MDLPC, Supervised Learning, Decision List
Lien : fr_Tanagra_Discretization_for_Supervised_Learning.pdf
Données : data-discretization.arff
Références :
F. Muhlenbach, R. Rakotomalala, « Discretization of Continuous Attributes », in Encyclopedia of Data Warehousing and Mining, John Wang (Ed.), pp. 397-402, 2005 (http://hal.archives-ouvertes.fr/hal-00383757/fr/).
R. Rakotomalala, « Graphes d’Induction », Thèse de Doctorat Lyon 1, 1997 ; chapitre 9, pp.209-244.
Tutoriel Tanagra, "Discrétisation contextuelle - La méthode MDLPC"

dimanche 31 janvier 2010

"Wrapper" pour la sélection de variables (suite)

Ce didacticiel fait suite à celui consacré à la stratégie wrapper pour la sélection de variables en apprentissage supervisé. Nous y analysions le comportement de Sipina, puis nous avions programmé une procédure ad hoc dans R. Dans ce didacticiel, nous étudions la mise en oeuvre de la méthode dans les logiciels Knime 2.1.1, Weka 3.6.0 et RapidMiner 4.6.

La démarche est la suivante : (1) utilisation du fichier d'apprentissage pour la sélection des variables les plus performantes pour le classement ; (2) création du modèle sur les descripteurs sélectionnés ; (3) évaluation des performances sur un fichier test contenant toutes les variables candidates.

Ce troisième point est très important. Nous ne pouvons pas connaître initialement les variables prédictives qui seront finalement retenues. Il ne faut pas que nous ayons à préparer manuellement le fichier test en y intégrant uniquement celles qui auront été choisies par la procédure wrapper. C'est une condition essentielle pour que la démarche soit automatisable. En effet, dans le cas contraire, chaque modification de paramétrage dans la procédure wrapper aboutissant à autre sous-ensemble de descripteurs nous obligerait à modifier manuellement le fichier test. Ce qui s'avère très rapidement fastidieux.

A la lumière de ce cahier des charges, il est apparu que seul Knime a permis de mettre en place le dispositif complet. Avec les autres logiciels, il est certes possible de sélectionner les variables pertinentes sur le fichier d'apprentissage. Je n'ai pas pu en revanche (ou je n'ai pas su) réaliser simplement le déploiement sur un fichier test comprenant la totalité des variables candidates.

La méthode d'apprentissage supervisé utilisée est le modèle d'indépendance conditionnel, le modèle bayesien naïf selon la terminologie utilisée en apprentissage automatique .

Mots clés : sélection de variables, apprentissage supervisé, classifieur bayesien naïf, wrapper
Lien : fr_Tanagra_Wrapper_Continued.pdf
Données : mushroom.wrapper.arff.zip
Références :
JMLR Special Issue on Variable and Feature Selection - 2003
R Kohavi, G. John, « The wrapper approach », 1997.
Wikipedia, "Naive bayes classifier".

jeudi 21 janvier 2010

Induction de règles floues avec Knime

Ce didacticiel fait suite à celui consacré à l'induction des règles prédictives. Je n'avais pas intégré Knime dans le comparatif car il proposait une technique que je ne connaissais pas bien, l'induction de règles floues, et demandait une préparation particulière de variables qui me paraissait bien étrange. Il fallait notamment que l'attribut cible soit numérique, ce qui paraît assez incongru dans le cadre de l'apprentissage supervisé. Comme il me fallait avancer, j'ai préféré reporter l'étude du logiciel Knime à plus tard (c.-à-d. maintenant) en lui dédiant spécifiquement un didacticiel.

Parmi les logiciels libres (ou accessibles gratuitement) fonctionnant sous forme de diagramme de traitements, Knime est certainement l'un des plus prometteurs, un des rares à pouvoir tailler des croupières aux équivalents commerciaux. Il y a dans ce logiciel une rigueur de conception et un souci du détail qui ne laisse pas indifférent : il est par exemple possible, devant la multitude d'outils disponibles, de créer une section des méthodes favorites ; une autre palette permet également de retrouver les composants les plus fréquemment utilisés ; la documentation est accessible de manière permanente dans la partie droite de la fenêtre principale ; etc. C'est aussi un des seuls logiciels libres à faire des efforts particuliers pour ce qui est de l'accès aux bases de données et la préparation des variables. J'avoue que je prends un réel plaisir à l'utiliser et à l'étudier de manière approfondie.

Concernant l'induction de règles prédictives, Knime (version 2.1.1) implémente l'induction des règles floues. Les articles présentant la méthode sont accessibles en ligne , . Les lecteurs intéressés par les fondements théoriques de la méthode pourront s'y reporter. Pour ma part, dans ce didacticiel, je m'attacherais avant tout à décrire la mise en œuvre de la méthode en détaillant le pourquoi et comment de la préparation des variables préalable à l'induction, et le mode de lecture du modèle prédictif. Pour avoir un point de repère, nous comparerons les résultats avec ceux fournis par la méthode d'induction de règles proposée par Tanagra.

Mots clés : induction de règles prédictives, logique floue
Composants : SAMPLING, RULE INDUCTION, TEST
Lien : fr_Tanagra_Induction_Regles_Floues_Knime.pdf
Données : iris2D.txt
Références :
M.R. Berthold, « Mixed fuzzy rule formation », International Journal of Approximate Reasonning, 32, pp. 67-84, 2003.
T.R. Gabriel, M.R. Berthold, « Influence of fuzzy norms and other heuristics on mixed fuzzy rule formation », International Journal of Approximate Reasoning, 35, pp.195-202, 2004.

mardi 19 janvier 2010

Tanagra - Version 1.4.35

CTP. Modification de la méthode de détection de la bonne taille de l'arbre
dans le composant " Clustering Tree " avec post-élagage (CTP). Elle s'appuie à
la fois sur l'angle entre chaque demi-droite à chaque point de la courbe de
décroissante de l'inertie intra-classe sur l'échantillon d'expansion (growing
set) et la décroissance du même indicateur calculé sur l'échantillon d'élagage
(pruning set). Par rapport à l'implémentation précédente, il en résulte un choix
de partitionnement avec un nombre plus faible de clusters.

Regression Tree. La modification précédente est répercutée sur le composant
arbre de régression qui en est une version univariée.

C-RT Regression Tree. Un nouveau composant d'arbre de régression a été
introduit. Il implémente fidèlement la technique décrite dans l'ouvrage de
Breiman et al. (1984), notamment la partie post-élagage avec la règle de l'écart
type (1-SE Rule) (chapitre 8, en particulier p. 226 concernant la formule de la
variance du MSE).

C-RT. L'affichage de la méthode d'induction d'arbre de décision C-RT a été
complété. En s'appuyant sur la dernière colonne du tableau d'élagage, il devient
plus aisé de choisir le paramètre " x " (dans x-SE Rule) pour définir
arbitrairement la taille de l'arbre élagué.

Des tutoriels viendront décrire ces différentes modifications.

dimanche 17 janvier 2010

Arbres de décision interactifs avec SPAD

Dans le domaine du Data Mining, les logiciels libres et commerciaux ne s'adressent pas au même public. Ils ne répondent pas aux mêmes besoins. Les premiers sont plutôt destinés aux étudiants et aux chercheurs. Leur but est de mettre à leur disposition un grand nombre de méthodes, à des fins pédagogiques, ou à des fins d'expérimentation. L'utilisateur doit pouvoir monter simplement des comparaisons à grande échelle, pour comprendre le comportement des méthodes, pour évaluer leurs performances, etc. Le logiciel R (http://www.r-project.org/) en est certainement le meilleur représentant. Avec le système des packages, il est extensible à l'infini. Le dispositif est maintenant bien accepté, un grand nombre de chercheurs viennent enrichir la bibliothèque de calcul au fil du temps, signe que le mécanisme a été très bien conçu.

Les outils commerciaux s'adressent plutôt aux praticiens du Data Mining, y compris les chercheurs d'autres domaines. Leur objectif est de pouvoir mener à bien une étude intégrant le cycle complet de la fouille de données, partant de l'accès aux fichiers jusqu'au déploiement et la production de rapports. Dans ce cas, l'outil doit surtout leur faciliter le travail en prenant en charge, le plus simplement possible, un grand nombre de tâches répétitives et fastidieuses, comme l'accès aux données, leur préparation, la production de tableaux et graphiques pour les rapports, l'industrialisation des résultats, etc.

La frontière n'est pas aussi tranchée. Bien d'outils issus du monde universitaire tentent de franchir le Rubicon en intégrant des fonctionnalités qui intéresseraient plutôt le monde industriel (ex. déploiement des modèles avec PMML - http://www.dmg.org/). A l'inverse, des logiciels commerciaux s'approprient les formidables bibliothèques de calculs que proposent les outils libres, notamment ceux de R (ex. SAS / IML Studio, SPSS PASW ou SPAD).

Dans ce didacticiel, nous montrons la mise en œuvre des Arbres de Décision Interactifs (IDT - Interactive Decision Tree) de SPAD 7.0 sur un jeu de données constitué d'un classeur Excel décomposé en 3 feuilles : (1) on doit construire un arbre de décision à partir des données d'apprentissage ; (2) appliquer le modèle sur les données de la seconde feuille, nous adjoignons ainsi une nouvelle colonne " prédiction " aux données ; (3) vérifier la qualité de la prédiction en la confrontant à la vraie valeur de la variable cible située dans la troisième feuille du classeur.

Bien sûr, toutes ces opérations sont réalisables avec la grande majorité des logiciels libres. Un utilisateur un tant soit peu habile vous programme cela en trois coups de cuiller à pots sous R. Nous y reviendrons dans la section 4. L'intérêt ici est de montrer qu'un utilisateur novice, réfractaire à l'informatique, peut les enchaîner très facilement avec ce type d'outil, en prenant comme source de données un classeur Excel.

Mots clés : IDT, interactive decision tree, arbres de décision, induction interactive, SPAD, SIPINA, logiciel R
Lien : fr_Tanagra_Arbres_IDT_Spad.pdf
Données : pima-arbre-spad.zip
Références
:
(Mise à jour) Tutoriel Tanagra, "Nouveaux arbres interactifs dans SPAD 8", Août 2014.
Logiciel SPAD, http://www.spad.eu/
R. Rakotomalala, "Arbres de décision", Revue Modulad, n°33, 2005.