mercredi 21 octobre 2009

Sipina – Traitement des très grands fichiers

Triturer les très grands fichiers est le fantasme ultime du data miner. On veut pouvoir traiter de très grandes bases dans l’espoir d’y déceler des informations cachées. Malheureusement, rares sont les logiciels libres qui peuvent les appréhender. Tout simplement parce que la quasi-totalité d’entre eux chargent les données en mémoire. Knime semble faire exception. Il sait swapper une partie des données sur le disque. Mais j’avoue ne pas savoir comment exploiter pleinement cet atout (paramétrer ou contrôler l’encombrement mémoire en fonction des données et des algorithmes utilisés par exemple).

Cette rareté n’est guère étonnante. En effet, l’affaire est compliquée. Il ne s’agit pas seulement de copier des informations sur le disque, il faut pouvoir y accéder efficacement compte tenu de la méthode d’apprentissage mise en œuvre. Deux aspects s’entremêlent : (1) comment organiser les données sur le disque ; (2) est-il possible de proposer un système de cache afin d’éviter d’avoir à accéder au disque à chaque fois qu’il faut traiter un individu ou lire la valeur d’une variable.

Dans ce didacticiel, nous montrons comment exploiter une solution que j’ai naguère implémentée dans Sipina. Elle n’a jamais été valorisée ni documentée. J’avoue l’avoir totalement oubliée jusqu’à ce que je la redécouvre par hasard en préparant le tutoriel sur l’échantillonnage dans les arbres. Nous montrons qu’il est possible de traiter, en disposant de toutes les fonctionnalités interactives, un fichier comportant 41 variables et (surtout) 9.634.198 observations lorsque nous activons cette option.

Pour apprécier pleinement la solution proposée par Sipina, nous ferons le parallèle avec le comportement des logiciels Tanagra 1.4.33 et Knime 2.0.3 face à un tel fichier.

Mots clés : gros volumes, très grands fichiers, grandes bases de données, arbre de décision, échantillonnage, sipina, knime
Composants : ID3
Lien : fr_Sipina_Large_Dataset.pdf
Données : twice-kdd-cup-discretized-descriptors.zip
Références :
Tutoriel Tanagra, « Traitement de gros volumes – Comparaison de logiciels ».
Tutoriel Tanagra, « Sipina – Echantillonnage dans les arbres »

dimanche 18 octobre 2009

Sipina - Echantillonnage dans les arbres

Lors de l’induction d’un arbre de décision, l’algorithme doit détecter la meilleure variable de segmentation pour chaque nœud que l’on souhaite partitionner. L’opération peut prendre du temps si le nombre d’observations est très élevé. Ceci d’autant plus que les variables candidates sont continues, il faut trouver la borne de discrétisation optimale.

Le logiciel Sipina introduit une option d’échantillonnage local dans tous les algorithmes d’induction d’arbres qu’il propose. L’idée est la suivante : sur chaque sommet, plutôt que de travailler sur la totalité des observations présentes pour choisir la variable de segmentation, il réalise les opérations sur un échantillon. Bien entendu, lorsque le nombre d’observations disponibles sur le sommet est plus faible que la taille d’échantillon demandée, il n’y a plus lieu de procéder à un échantillonnage, Sipina utilise toutes les observations. Cela arrive dans les parties bases de l’arbre lorsqu’il est particulièrement profond. Nous avions évoqué cette idée dans un de nos anciens posts (Echantillonnage dans les arbres de décision), nous la mettons en œuvre dans ce didacticiel.

Nous manipulons un fichier comportant 21 descripteurs et 2.000.000 d’observations, dont une moitié est utilisée pour construire l’arbre, l’autre pour son évaluation. Nous constaterons que, dans certaines circonstances, travailler sur un échantillon dans les nœuds permet de réduire le temps de calculs (divisé par 30 !) tout en préservant les performances en classement.

Nous comparerons les temps de calcul avec ceux de Tanagra où une autre stratégie a été mise en place pour accélérer les traitements.

Mots clés : arbre de décision, échantillonnage, sipina, apprentissage, test, traitement des grandes bases de données, gros fichier
Composants : SAMPLING, ID3, TEST
Lien : fr_Sipina_Sampling.pdf
Données : wave2M.zip
Références :
J.H. Chauchat, R. Rakotomalala, « A new sampling strategy for building decision trees from large databases », Proc. of IFCS-2000, pp. 199-204, 2000.

mercredi 14 octobre 2009

Sipina - Traitement des données manquantes

L’appréhension des données manquantes est un problème difficile. La gestion informatique en elle-même ne pose pas de problème, il suffit de signaler la valeur manquante par un code spécifique. En revanche, son traitement avant ou durant l’analyse des données est très compliqué.

Il faut prendre en considération deux aspects : (1) la nature de la valeur manquante (complètement aléatoire, partiellement aléatoire, non aléatoire) ; (2) la technique statistique que nous mettons en œuvre par la suite, en effet, certaines méthodes de traitement des données manquantes sont plus ou moins adaptées selon les techniques statistiques que nous utilisons.

L’objectif de ce tutoriel est de montrer la mise en œuvre des techniques implémentées dans le logiciel SIPINA et d’observer les conséquences des choix sur l’induction des arbres de décision avec la méthode C4.5 (Quinlan, 1993).

Mots clés : valeur manquante, donnée manquante, missing data, sipina, C4.5
Lien : fr_Sipina_Missing_Data.pdf
Données : ronflement_missing_data.zip
Références :
P.D. Allison, « Missing Data », in Quantitative Applications in the Social Sciences Series n°136, Sage University Paper, 2002.
J. Bernier, D. Haziza, K. Nobrega, P. Whitridge, « Handling Missing Data – Case Study », Statistical Society of Canada.

mercredi 7 octobre 2009

Evaluation des classifieurs - Quelques courbes

L’évaluation des classifieurs est une étape incontournable de l’apprentissage supervisé. Nous avons construit un modèle de prédiction, nous devons en mesurer les. D’un côté, nous avons la matrice de confusion et les indicateurs afférents, très populaire dans la recherche en apprentissage automatique (ah… les fameux grands tableaux avec des moyennes de taux d’erreur sur des bases de données qui n’ont rien à voir entre elles…) ; de l’autre, dans les applications, on privilégie les courbes qui semblent mystérieuses si l’on n’est pas du domaine (courbe ROC en épidémiologie, entre autres ; courbe de gain en marketing ; courbe rappel – précision en recherche d’information).

Dans ce didacticiel, nous montrons dans un premier temps comment construire ces courbes en détaillant les calculs dans un tableur. Puis, dans un deuxième temps, nous utilisons les logiciels Tanagra 1.4.33 et R 2.9.2 pour les obtenir. Nous comparerons les performances de la régression logistique et des SVM (support vector machine, noyau RBF) sur notre fichier de données.

Mots-clés : courbe ROC, courbe de gain, courbe lift, courbe rappel précision, échantillon d'apprentissage, échantillon test, régression logistique, svm, noyau RBF, librairie libsvm, logiciel R, glm, package e1071
Composants : DISCRETE SELECT EXAMPLES, BINARY LOGISTIC REGRESSION, SCORING, C-SVC, ROC CURVE, LIFT CURVE, PRECISION-RECALL CURVE
Lien : fr_Tanagra_Spv_Learning_Curves.pdf
Données : heart_disease_for_curves.zip

samedi 3 octobre 2009

Diagnostic de la régression logistique

Ce tutoriel décrit la mise en œuvre des outils d’évaluation et de diagnostic de la régression logistique binaire, disponibles depuis la version 1.4.33 de Tanagra. Les techniques et les formules afférentes sont présentées dans le fascicule de cours que nous avons mis en ligne récemment (voir références). Il serait intéressant de le charger également afin de pouvoir s’y référer lorsque nous décrivons les résultats.

Nous traitons un problème de crédit scoring. Nous cherchons à déterminer à l’aide de la régression logistique les facteurs explicatifs de l’accord ou du refus d’une demande de crédit de clients auprès d’un établissement bancaire.

Nous utiliserons Tanagra 1.4.33 dans un premier temps. Dans un deuxième temps, nous essaierons de reproduire les mêmes calculs à l’aide du Logiciel R 2.9.1 [procédure glm()].

Mots-clés : régréssion logistique, analyse des résidus, détection des points atypiques et points influents, résidus de pearson, résidus déviance, levier, distance de cook, dfbeta, dfbetas, test de Hosmer - Lemeshow, diagramme de fiabilité, reliability diagram, calibration plot, logiciel R, glm()
Composants : BINARY LOGISTIC REGRESSION, HOSMER LEMESHOW TEST, RELIABILITY DIAGRAM, LOGISTIC REGRESSION RESIDUALS
Lien : fr_Tanagra_Logistic_Regression_Diagnostics.pdf
Données : logistic_regression_diagnostics.zip
Références :
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.

Tanagra - Version 1.4.33

Cette version accompagne la sortie du fascicule du cours consacré à la régression logistique (" Pratique de la Régression Logistique - Régression logistique binaire et polytomique " - Septembre 2009). Plusieurs techniques d'évaluation et de diagnostic de la régression logistique ont été développées, l'une d'entre elles (reliability diagram) peut s'appliquer à toute méthode supervisée :

1. La matrice de variance covariance des coefficients.
2. Test de Hosmer et Lemeshow
3. Diagramme de fiabilité (reliability diagram ou calibration plot en anglais)
4. Analyse des résidus, détection des points atypiques et/ou influents (résidus de pearson, résidus déviance, dfichisq, difdev, levier, distance de Cook, dfbeta, dfbetas)

Un tutoriel décrivant la mise en œuvre de ces outils sera mis en ligne très prochainement.