jeudi 18 août 2016

Master SISE - Remise à niveau - Clustering

Le clustering (classification automatique, typologie, apprentissage non supervisé) consiste à catégoriser des objets à partir de leurs propriétés de similarité. Ce programme de remise à niveau pour le Master SISE est consacré à la classification ascendante hiérarchique (CAH) et la méthode des centres mobiles (K-Means), techniques que l’on retrouve quasi-systématiquement dans les cours d’initiation au clustering. D’autres méthodes avancées seront étudiées en Master (méthodes adaptées aux grandes dimensions, dbscan, birch, cartes de Kohonen, etc.).

Les exercices de ce thème font la part belle à l’interprétation des résultats, en particulier la caractérisation des groupes à l’aide des variables actives et illustratives. Les outils utilisés sont Excel, Tanagra et R.

Document principal : Principes de la classification automatique
Outils : Excel, Tanagra, R (RStudio)
Exercice 1 : Classification ascendante hiérarchique, données.
Exercice 2 : Centres mobiles, données.
Exercice 3 : Étude de cas.

mardi 16 août 2016

Master SISE - Remise à niveau - Analyse prédictive

L’analyse prédictive a énormément contribué à la popularité du data mining et du machine learning. Dans ce programme de remise à niveau pour le master SISE, nous nous concentrons sur les techniques d’apprentissage supervisé où la variable cible est catégorielle. C’est un parti pris pédagogique sachant que la régression fait également partie de l’analyse prédictive mais, dans sa perception commune, elle est plutôt associée à la démarche économétrique et aux statistiques.

Dans une première approche, nous nous focaliserons sur l’analyse discriminante linéaire et les arbres de décision. Les méthodes avancées (ex. SVM, méthodes ensemblistes [random forest, boosting, gradient boosting], réseaux de neurones, etc.) sont enseignées en Master.

Nous multiplions les outils dans ce thème : nous utilisons Excel en tandem avec Tanagra et Sipina d’une part ; R (RStudio) d’autre part. Pouvoir jongler entre les outils permet de ne pas en être dépendants.

Document principal : Principes de l’apprentissage supervisé
Outils : Excel, Tanagra, Sipina, R (RStudio)
Exercice 1 : Analyse discriminante prédictive, données.
Exercice 2 : Analyse discriminante et sélection de variables, données.
Exercice 3 : Arbres de décision, données.
Exercice 4 : Arbres de décision – Frontières induites.
Exercice 5 : Comparaison de méthodes, données.

jeudi 11 août 2016

Master SISE - Remise à niveau - Inférence statistique

L’inférence statistique constitue la base même de la découverte de connaissances à partir des données. Il s’agit de délimiter jusqu’à quel point un constat ou une mesure effectuée sur un échantillon (un ensemble d’observations) peut être généralisé sur l’ensemble de la population. L’approche est d’autant plus crédible que nous pouvons associer une probabilité d’erreur aux décisions que nous prenons.

Le domaine est vaste et complexe. Il prend ses racines dans les calculs probabilistes. Nous simplifions un peu beaucoup dans ce programme de remise à niveau pour le master SISE en nous focalisant sur les aspects opérationnels de la pratique des statistiques : les estimations ponctuelles et par intervalle, les tests d’hypothèses.

Tous les calculs doivent être effectués sur machine à partir de fichiers de données réalistes, sous Excel et sous R.

Document principal : Inférence statistique
Outils : Excel + R (RStudio)
Exercice 1 : Lecture des tables statistiques.
Exercice 2 : Estimation et test, données.
Exercice 3 : Comparaison de populations, données.
Exercice 4 : Corrélation et régression, données.

vendredi 5 août 2016

Les cartes de Kohonen avec R

Ce tutoriel vient compléter le support de cours consacré aux "Cartes auto-organisatrices de Kohonen". Le premier objectif est de mettre en lumière deux aspects importants de l’approche : sa capacité à résumer l’information disponible dans un espace à deux dimensions ; son couplage avec une méthode de classification automatique permettant d’associer la représentation topologique (et la lecture que l’on peut en faire) à l’interprétation des groupes issus de la typologie. Nous utiliserons le logiciel R et le package « kohonen ».

Dans un deuxième temps, nous effectuerons une étude comparée de la qualité de la segmentation avec les K-Means, qui fait figure de référence, en procédant à une validation externe c.-à-d. en confrontant les regroupements proposés par les approches avec une classification préétablie. Cette procédure est souvent utilisée en recherche pour évaluer les performances des méthodes de clustering. Elle prend tout son sens lorsqu’on l’applique sur des données artificielles où l’on connait – parce que générée sciemment – la bonne typologie. Nous utiliserons les composants K-Means et Kohonen-Som de Tanagra.

Rendons à César ce qui lui appartient, ce tutoriel est en partie inspiré de l’article de Shane Lynn, accessible sur le site R-bloggers. Je me suis évertué à le compléter en introduisant les calculs intermédiaires permettant de mieux saisir le sens des graphiques, et en effectuant l’étude comparative.

Mots-clés : som, self organizing maps, kohonen, technique de visualisation, réduction de dimensionnalité, classification automatique, clustering, cah, classification mixte, logiciel R, package kohonen
Composants : KOHONEN-SOM, HAC, K-MEANS
Lien : Les cartes de Kohonen avec R
Fichier : waveform - som
Références :
Tutoriel Tanagra, "Les cartes auto-organisatrices de Kohonen - Diapos", Juillet 2016.
Tutoriel Tanagra, "Les cartes de Kohonen", Juillet 2008.
Lynn S., "Self-Organising Maps for Customer Segmentation using R", R-bloggers, February 2014.

jeudi 4 août 2016

Master SISE - Remise à niveau - Analyses factorielles

Les techniques d’analyses factorielles sont très populaires, notamment dans le monde francophone. D’une part, parce que l’école d’analyse factorielle française a été, et est toujours, particulièrement prolifique, nous délivrant des ouvrages exceptionnels donnant tout le sel à ces techniques ; d’autre part, parce que les méthodes sont intrinsèquement performantes, nous offrant des possibilités multiples d’inspection des données.

Ce programme de remise à niveau pour le Master SISE concerne l’analyse en composantes principales (ACP), l’analyse des correspondances multiples (ACM) et l’analyse factorielle des correspondances (AFC). A chaque thème est associé deux séries d’exercices : la première se présente comme un guide permettant d’assimiler les principaux repères d’une analyse ; la seconde est une étude de cas où l’étudiant doit architecturer lui-même sa démarche, en fonction des objectifs de l’étude et des caractéristiques des données.

Les supports de qualité pouvant servir de référence sont très nombreux sur internet. J’ai fait une petite sélection dans le document principal. Il est très facile d’enrichir son apprentissage en faisant quelques recherches sur Google. Le tout est de ne pas se perdre.

Document principal : Analyses factorielles
Voir aussi : Pages ACP et AFC/ACM de ce site des tutoriels
Outils : R + RStudio (conseillé, non obligatoire)
Exercice 1 : Apprentissage ACP, données (Autos 2005).
Exercice 2 : Etude de cas ACP (Crime).
Exercice 3 : Apprentissage ACM, données (Races canines).
Exercice 4 : Etude de cas ACM (Cars preference).
Exercice 5 : Apprentissage AFC, données (Médias professions).
Exercice 6 : Etude de cas AFC (Régionales 2004).

dimanche 31 juillet 2016

Les cartes auto-organisatrices de Kohonen - Diapos

Les cartes de Kohonen (en anglais, SOM : self organizing maps) sont des réseaux de neurones orientés à deux couches : l’entrée correspond à la description des données, la sortie est organisée sous forme de grille (le plus souvent) et symbolise une organisation des données. Les cartes servent à la fois pour la réduction de dimensionnalité (d’un espace à p dimensions, nous nous projetons dans un espace 2D), pour la visualisation (les proximités sur la grille correspondent à une proximité dans l’espace initial), et la classification automatique (on peut procéder à des regroupements des neurones de la couche de sortie).

Ce support de cours décrit dans les grandes lignes les mécanismes sous-jacents aux cartes de Kohonen. L’accent est mis sur la visualisation qui est un de ses atouts forts.  La mise en œuvre sous R (package kohonen) et Tanagra (KOHONEN-SOM) est également présentée. J’ai déjà écrit un tutoriel sur le sujet il y a fort longtemps (2008), un autre viendra incessamment où j’essaierai de mettre l’accent sur la visualisation et la robustesse de la méthode.

Mots-clés : som, self organizing maps, kohonen, technique de visualisation, réduction de dimensionnalité, classification automatique, clustering, cah, classification mixte, logiciel R, package kohonen
Composants : KOHONEN-SOM
Document : Kohonen SOM - Diapos
Références :
Tutoriel Tanagra, "Les cartes de Kohonen", Juillet 2008.
Tutoriel Tanagra, "Les cartes de Kohonen avec R", Août 2016.

jeudi 28 juillet 2016

Master SISE - Remise à niveau - Introduction à R

R est multiple : il représente un langage de programmation doté des attributs principaux d’un langage (type de données, structures algorithmiques, organisation des programmes en fonctions et modules) ; il correspond à un logiciel de statistique et de data mining, doté d’une bibliothèque de fonctions extensibles à l’infini grâce au système des packages, particulièrement ingénieux je trouve, qui contribue largement à son succès ; il propose enfin des outils performants de management des données.

Mon cours en Master se focalise sur le premier aspect. Le second viendra au fur et à mesure de l’étude des techniques de data mining et machine learning. Ce programme de remise à niveau pour le Master SISE est donc principalement consacré au troisième thème, celui de la manipulation des données, de l’exploration des opérations de calculs intermédiaires (transformation de variables, recodage, statistiques récapitulatives, etc.), et des représentations graphiques.

Document principal : Introduction au logiciel R
Outils : R + RStudio (conseillé, non obligatoire)
Exercice 1 : Manipulation des data frame, données.
Exercice 2 : Calculs statistiques sur vecteurs, données.
Exercice 3 : Corrélation et régression avec R, données.

lundi 25 juillet 2016

Classification ascendante hiérarchique - Diapos

La CAH (classification ascendante hiérarchique) est une technique de classification (typologie, clustering, apprentissage non supervisé) très populaire. Son succès repose – entres autres – sur la nature de la solution qu’elle propose : nous disposons à l’issue des traitements d’une série de partitions emboîtées représentées graphiquement à l’aide d’un dendrogramme. Ainsi, au lieu d’une réponse unique, très possiblement arbitraire surtout s’agissant de regroupements sans a priori d’ensembles d’observations, nous disposons de scénarios de solutions qui nous permettent d’enrichir l’analyse que nous menons sur nos données.

Ce support de cours décrit dans les grandes lignes les mécanismes sous-jacents à l’algorithme d’apprentissage. La mise en œuvre sous R (hclust), Python (package scipy) et Tanagra (HAC) est également détaillée. Les nombreux tutoriels cités en bibliographie permettront aux lecteurs d’aller plus loin dans la pratique de la technique dans des problèmes réels.

Mots-clés : cah, classification ascendante hiérarchique, classification automatique, typologie, clustering, apprentissage non supervisé, tandem analysis, classification sur composantes principales, cah mixte, logiciel R, hclust, python, package scipy, distance euclidienne, stratégie d’agrégation, méthode ward, saut minimum, saut maximum, single linkage, complete linkage, classement d’un individu supplémentaire, inertie, inertie inter-classes, inertie intra-classes, théorème d’huygens
Composants : HAC, K-MEANS
Document : cah.pdf
Références :
Tutoriel Tanagra, "Classification automatique sous R", octobre 2015.
Tutoriel Tanagra, "Classification automatique sous Python", mars 2016.

lundi 18 juillet 2016

ANOVA à un et deux facteurs - Diapos

Je m’intéresse un peu à l’ANOVA (analyse de la variance ou analyse de variance) en ce moment. Ça m’a rappelé mes débuts dans l’enseignement. A l’époque, 2e moitié des années 90, on me proposait souvent des remplacements (ben oui, on est novice, on n’a pas trop le choix). Cela m’a amené à faire des grands écarts entre des cours de séries temporelles, d’ANOVA, …, de bases de données sous Paradox (qui s’en rappelle aujourd’hui ?), de programmation SQL sous Interbase (itou ?), etc. Avec le recul, je me rends compte que ces aventures auront été très formatrices.

A propos de l’ANOVA donc, j’ai jeté un coup d’œil sans trop y croire dans mes archives. J’étais moins organisé que maintenant il faut dire. Grande fut ma surprise de tomber sur un support relativement construit. Du coup, j’ai décidé de le mettre en ligne en le vérifiant entièrement, en le relookant très légèrement (j’ai ajouté des couleurs, le document initial était particulièrement austère), et en introduisant les traitements sous R.

Pour rappel, l’ANOVA consiste à vérifier que plusieurs échantillons proviennent de la même population en se basant sur la comparaison des moyennes. On peut également la considérer sous le prisme de l’étude de l’influence d’une ou plusieurs variables qualitatives sur une variable d’intérêt quantitative (Wikipédia).

Mots clés : anova, analyse de variance, tests post hoc, comparaisons multiples, logiciel R, aov, pairwise.t.test, correction de bonferroni, sidak, mesures répétées
Lien : ANOVA.pdf
Données : autos_anova.xlsx
Références :
Dagnelie P., "Statistique théorique et appliquée - Tome 2. Inférence statistique à une et à deux dimensions", De Boeck, 2011.
Guenther W., "Analysis of variance", Prentice-Hall, 1964.

mardi 12 juillet 2016

Master SISE - Remise à niveau - Statistique Descriptive

Voici le second opus (live is life, lalaa… lalala, toute ma jeunesse ça...) du programme de remise à niveau. Il concerne les statistiques descriptives sur tableur.

Pour les initiés, il n’y a aucune difficulté. Le principal enjeu est la réalisation des différentes tâches sous Excel. Il faut une certaine connaissance du tableur, d’où la nécessité du thème précédent.

Pour les non-initiés aux statistiques, il faut un peu de lecture pour comprendre les principaux concepts de la description des données. Certains sont relativement simples (caractéristiques de tendance centrale, fréquences absolues et relatives, …), d’autres demandent un peu plus d’attention (liaison statistique, …).

Des supports de qualité sont accessibles en ligne. Ils sont référencés dans le document principal.

Document principal
: Statistique descriptive
Outil : Excel (Libre ou Open Office Calc peuvent faire l’affaire)
Exercice 1 : Statistiques univariées et bivariées, données.
Exercice 2 : Choix des outils, données.
Exercice 3 : Corrélation et régression, données.

vendredi 8 juillet 2016

Master SISE - Programme de remise à niveau - Excel

Ce premier thème du programme de remise à niveau pour le master SISE concerne Excel. Je sais ce qu’en pensent certains de mes congénères. Il n’en reste pas moins qu’il arrive en bonne place dans le sondage annuel des KDnuggets (ex. en 2016). Il en est de même dans les offres d’emploi. Personne ne peut négliger cela. En réalité, il ne faut pas demander à Excel ce qu’il ne sait pas faire. Nativement, les fonctions statistiques sont un peu limitées, les fonctions de data mining sont inexistantes, dire le contraire serait mentir. Mais, d'un autre côté, Excel se révèle simple mais puissant pour le management de données, tant que la volumétrie reste modérée. Dans les faits, les utilisateurs tirent pleinement profit de ses capacités en le couplant avec un outil spécialisé de data mining, via le mécanisme des add-ins (macros complémentaires) par exemple.

Ce programme est consacré au traitement des listes sous Excel (réaliser les exercices à l'identique est possible sous Libre ou Open Office). Nous verrons ainsi tour à tour le filtre automatique, la mise en forme conditionnelle, le filtre avancé et l’outil tableau croisé dynamique.

Supports de référence : Excel - Traitement des listes.
Exercice 1 : Filtre automatique, données.
Exercice 2 : Mise en forme conditionnelle, données.
Exercice 3 : Filtre avancé, données.
Exercice 4 : Tableau croisé dynamique, données.

samedi 11 juin 2016

Les add-ins Tanagra et Sipina pour Excel 2016

Les macros complémentaires (« add-in » en anglais) « tanagra.xla » et « sipina.xla » participent grandement à la diffusion des logiciels Tanagra et Sipina. Il s’agit d’intégrer des menus dédiés au data mining dans Excel, ils mettent en place une passerelle simple entre le tableur et les outils spécialisés.

J’avais développé et testé les dernières versions des macros complémentaires pour Excel 2007 et 2010. Ayant pu accéder récemment à Excel 2016, vous pensez bien que j’ai tout de suite vérifié le dispositif. La conclusion est que le système fonctionne sans anicroche.

Mots-clés : importation des données, fichier excel, macro complémentaire, add-in, add-on, xls, xlsx
Lien : fr_Tanagra_Add_In_Excel_2016.pdf
Références:
Tutoriel Tanagra, "L'add-in Tanagra pour Excel 2007 et 2010", août 2010.
Tutoriel Tanagra, "L'add-in Sipina pour Excel 2007 et 2010", août 2014.

mardi 7 juin 2016

Image mining avec Knime

La fouille d’images ou image mining est une discipline assez ancienne. Schématiquement, il s’agit d’appliquer des techniques de machine learning au contenu des images c.-à-d. à partir de leurs caractéristiques visuelles. Sa démocratisation est plus récente en revanche. J’y vois plusieurs raisons : la profusion des données images avec le web (big data, etc., etc.) nécessite un savoir faire supplémentaire, on observe d’ailleurs que le traitement d’images est de plus en plus présent dans les challenges ; l’apparition d’outils faciles à appréhender pour les férus de data mining.

Le module "Image Processing" de Knime est assez symbolique de cette évolution. Il n’est même pas nécessaire de faire l’apprentissage langage de programmation. On peut réaliser une analyse complète sans avoir à écrire une seule ligne de code. Le plus important est d’avoir une vision globale de la trame de l’étude. Il nous suffit alors de définir dans le bon ordre la séquence des traitements pour obtenir des résultats qui tiennent la route.

Ce tutoriel a pour objet un problème de classement. On souhaite discerner automatiquement les photos contenant un véhicule de celles contenant tout autre type d’objet. La principale information est que, malgré des connaissances relativement succinctes en traitement d’images, j’ai pu mener à son terme l’étude avec une aisance qui en dit long sur l’utilisabilité du logiciel. Le plus difficile aura été d’identifier le composant le plus adapté à chaque étape, les tutoriels didactiques sont rares, en français n’en parlons même pas, il faut prendre un peu de temps pour lire attentivement la documentation.

Mots clés : image mining, fouille d'images, catégorisation d'images, arbres de décision, random forest
Lien : fr_Tanagra_Image_Mining_Knime.pdf
Données et programme (archive Knime) : image mining tutorial
Références :
Knime Image Processing, https://tech.knime.org/community/image-processing
S. Agarwal, A. Awan, D. Roth, « UIUC Image Database for Car Detection » ; https://cogcomp.cs.illinois.edu/Data/Car/

mardi 31 mai 2016

Programmation Python sous Spark avec PySpark

Dans la série « je découvre Spark », voici un tutoriel consacré à la librairie PySpark pour la programmation Python sous Spark. Il vient en contrepoint à celui consacré à SparkR (pour R). La trame est exactement la même.

La première partie est donc commune (installation et configuration de Spark) ; la seconde partie consacré à l’exploitation des méthodes de PySpark est originale.

La principale information est que nous avons pu réaliser exactement les mêmes traitements sous R et Python, à savoir : l’importation des données, leur partition en échantillon d’apprentissage et de test, la modélisation sur la première, la prédiction sur la seconde, l’élaboration de la matrice de confusion et le calcul des indicateurs de performances.

Tout comme pour SparkR, ce tutoriel a bénéficié du travail exploratoire des étudiants du Master SISE de cette année pour leurs projets « Big Data ». Je les remercie encore une fois.

Mots-clés : langage python, package pyspark, big data, hadoop, spark, big data analytics, anaconda, spyder, régression logistique
Lien : Python sous Spark avec PySpark
Fichiers : Données et programme Python
Références :
Spark, "Welcome to Spark Python API Docs!".
Tutoriel Tanagra, "Programmation R sous Spark avec SparkR", mai 2016.

jeudi 19 mai 2016

Programmation R sous Spark avec SparkR

Apache Spark est un framework open source de calcul distribué dédié au Big Data. Sa particularité est qu’il est capable de travailler en mémoire vive. Il est très performant pour les opérations nécessitant plusieurs itérations sur les mêmes données, exactement ce dont ont besoin les algorithmes de machine learning.

Au-delà des API (modules de classes et fonctions) standards, Spark intègre des librairies additionnelles : Streaming, traitement des données en flux ; SQL, accès aux données Spark avec des requêtes SQL ; GraphX, traitement des graphes ; et, c’est ce qui nous intéresse au premier chef, MLlib, types de données et algorithmes pour le machine learning.

SparkR est un package R qui permet de manipuler les types de données et méthodes de MLlib (pas toutes, le portage est en cours) en programmation R, et de bénéficier  directement des avantages de Spark (gestion de la volumétrie, calcul distribué). Ce tutoriel a pour objectif de s’initier à l’utilisation de SparkR en traitant un exemple typique d’analyse prédictive.

Enfin, et ça me fait très plaisir de pouvoir le dire, ce document doit beaucoup au travail de deux groupes d’étudiants du Master SISE pour leurs projets "Big Data", l’un avait travaillé sur "SparkR", l’autre sur "PySpark" (programmation Python, qui fera l’objet d’un autre tutoriel). Ils ont largement défriché le terrain, qu’ils en soient chaleureusement remerciés.

Mots-clés : logiciel R, package SparkR, big data, hadoop, spark, big data analytics, rstudio, régression logistique
Lien : R sous Spark avec SparkR
Fichiers : Données et programme R
Références :
Phelip A., "Découvrez SparkR, la nouvelle API de Spark", Blog Xebia, Sept. 2015.
Emaasit D., "Installing and starting SparkR locally on Windows OS and RStudio", R-bloggers, July 2015.
Tutoriel Tanagra, "Programmation Python sous Spark avec PySpark", mai 2016.
Tutoriel Tanagra, "Programmation R sous Hadoop", avril 2015.