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"