samedi 23 novembre 2013

Classification automatique sur données mixtes

La classification automatique ou typologie (clustering en anglais) vise à regrouper les observations en classes : les individus ayant des caractéristiques similaires sont réunis dans la même catégorie ; les individus présentant des caractéristiques dissemblables sont situés dans des catégories distinctes. La notion de proximité est primordiale dans ce processus. Elle est quantifiée différemment selon le type des variables. La distance euclidienne est souvent utilisée (normalisée ou non) lorsqu’elles sont quantitatives, la distance du khi-2 lorsqu’elles sont qualitatives (les individus qui possèdent souvent les mêmes modalités sont réputées proches).

L’affaire se corse lorsque nous sommes en présence d’un mix de variables quantitatives et qualitatives. Certes il est toujours possible de définir une distance prenant en compte simultanément les deux types de variables (ex. la distance HEOM). Mais le problème de la normalisation est posé. Telle ou telle variable ne doit pas avoir une influence exagérée uniquement de par sa nature.

Précédemment, nous avons présenté l’analyse factorielle de données mixtes (AFDM) . Il s’agit de projeter les observations dans un repère factoriel élaboré à partir d’un mélange de variables actives qualitatives et quantitatives. On montre que l’approche est équivalente à l’ACP normée (analyse en composantes principales) lorsque les variables sont toutes quantitatives, à l’ACM (analyse des correspondances multiples) lorsqu’elles sont toutes qualitatives.

Nous proposons dans ce tutoriel de réaliser la classification sur données mixtes en deux étapes : [1] nous procédons tout d’abord à une AFDM pour produire une représentation intermédiaire des données ; [2] puis, nous effectuons une classification ascendante hiérarchique (CAH) à partir des facteurs « représentatifs » de l’AFDM. Cette analyse en deux temps est couramment utilisée même lorsque les variables sont exclusivement quantitatives (on passe par l’ACP) ou qualitatives (ACM). L’idée est de procéder à un nettoyage des données – une sorte de régularisation – en éliminant les derniers facteurs qui correspondent à du bruit spécifique à l’échantillon que nous utilisons c.-à-d. des informations qui correspondent aux fluctuations d’échantillonnage ne reflétant en rien un phénomène réel dans la population. Les résultats sont ainsi plus stables.

Nous utiliserons les logiciels Tanagra 1.4.49 et R (package ade4) dans ce tutoriel.

Mots clés : AFDM, analyse factorielle des données mixtes, classification automatique, typologie, cah, classification ascendante hiérarchique, logiciel R, package ade4, dudi.mix, dist, hclust, cutree, logiciel R, description des groupes
Composants : AFDM, HAC, GROUP CHARACTERIZATION, SCATTERPLOT
Lien : fr_Tanagra_Clustering_Mixed_Data.pdf
Données : bank_clustering.zip
Références :
Jérôme Pagès, « Analyse Factorielle de Données Mixtes », Revue de Statistique Appliquée, tome 52, n°4, 2004 ; pages 93-111.
Tutoriel Tanagra, "Analyse factorielle de données mixtes - Diapos", Août 2013.

lundi 11 novembre 2013

Scilab et R - Performances comparées

Nous avons fait connaissance du logiciel Scilab dans un précédent tutoriel . Nous étions arrivés à la conclusion qu’il se positionnait très bien comme une alternative à R dans le domaine du data mining même si, en matière de nombre de bibliothèques de méthodes statistiques et de data mining, il restait largement en retrait.

Dans ce second volet, nous nous intéressons aux performances de Scilab lors du traitement d’un grand fichier avec 500.000 observations et 22 variables. « Grand fichier » étant tout à fait relatif, nous le confrontons à la référence R pour mieux situer son comportement. Deux critères sont utilisés pour effectuer les comparaisons : l’occupation mémoire du logiciel mesurée dans le gestionnaire de tâches Windows, le temps de traitement à chaque étape du processus.

Il serait vain d’espérer obtenir une vision exhaustive. Pour délimiter notre champ d’étude, nous avons établi un scénario ultra-classique de data mining : charger un fichier de données, construire le modèle prédictif avec l’analyse discriminante linéaire, calculer la matrice de confusion et  le taux d’erreur en resubstitution . Bien évidemment, l’étude est forcément parcellaire. Il apparaît que Scilab semble moins à son avantage dans la gestion des données. Il est largement au niveau en revanche en ce qui concerne les traitements, cette dernière appréciation étant toutefois tributaire des packages ou toolbox utilisés.

Mots-clés : scilab, toolbox, nan, analyse discriminante prédictive, analyse discriminante linéaire, logiciel R, analyse prédictive, sipina
Didacticiel : fr_Tanagra_Scilab_R_Comparison.pdf
Données : waveform_scilab_r.zip
Références :
Scilab - https://www.scilab.org/fr
Michaël Baudin, "Introduction à Scilab", Developpez.com.

mardi 5 novembre 2013

Data Mining avec Scilab

Je connais le nom « Scilab  » depuis fort longtemps. Je l’avais catalogué dans la catégorie des logiciels de calcul numérique, au même titre qu’Octave ou, pour parler d’outils commerciaux, de Matlab que j’avais moi-même utilisé du temps où j’étais étudiant. J’y voyais très peu d’intérêt dans le contexte du traitement statistique des données et du data mining.

Récemment un collègue mathématicien m’en a reparlé. Il s’étonnait de la faible visibilité de Scilab au sein de la communauté du data mining, sachant qu’il présente des fonctionnalités tout à fait similaires à celle de R. Ah bon ? Je ne voyais pas les choses ainsi. Curieux comme je suis, je me suis bien évidemment documenté sur la question en fixant un objectif simple : est-ce qu’il est possible de réaliser - simplement, sans contorsions extravagantes – un schéma type d’analyse prédictive avec Scilab ? A savoir : charger un fichier de données (échantillon d’apprentissage), construire un modèle prédictif, en détailler les caractéristiques, charger un échantillon test, appliquer le modèle sur ce second ensemble de données, élaborer la matrice de confusion et calculer le taux d’erreur en test.

Nous verrons dans ce tutoriel que la tâche a été réalisée avec succès, relativement facilement. Scilab est tout à fait armé pour réaliser des traitements statistiques. D’emblée, deux petits bémols me sont clairement apparus lors de la prise en main de Scilab : les librairies de fonctions statistiques existent mais ne sont pas aussi fournies que celles présentes dans R ; leur documentation laisse vraiment à désirer, j’ai du pas mal batailler – et encore, je savais exactement ce que je cherchais – avant de trouver les indications nécessaires sur le web.

Il reste qu’au final, je suis très satisfait de cette première expérience. J’ai découvert un excellent outil gratuit, souple et performant, très facile à prendre en main, qui s’avère être une alternative tout à fait crédible à R dans le domaine du data mining.

Mots-clés : scilab, toolbox, nan, libsvm, analyse discriminante prédictive, analyse discriminante linéaire, logiciel R, analyse prédictive
Didacticiel : fr_Tanagra_Scilab_Data_Mining.pdf
Données : data_mining_scilab.zip
Références :
Scilab - https://www.scilab.org/fr
ATOMS : Homepage - http://atoms.scilab.org/
Wikilivres, "Découvrir Scilab"
Michaël Baudin, "Introduction à Scilab", Developpez.com.