lundi 31 octobre 2016

Etude des logiciels de data science

Le logiciel est une composante clé de l’activité du data scientist. S’extasier sur la formule mathématique de la marge dans les SVM est une chose, savoir mettre en œuvre la méthode à bon escient sur une étude réelle avec des vraies données en est une autre. Et cela passe forcément par les outils.

Dans le cadre de mes enseignements en Master SISE, j’ai demandé aux étudiants d’effectuer une étude exploratoire de plusieurs logiciels de data science. J’ai imposé la liste des logiciels à analyser de manière à ce que les étudiants puissent faire preuve d’adaptabilité. Mon objectif était leur faire découvrir des outils d’horizons et avec des modes opératoires différents. Ils disposaient de trois semaines, sachant qu’ils avaient des cours en parallèle, pour : prendre en main l’outil, en évaluer les contours, l’installer dans notre salle informatique, monter des études de cas (on parle de « lab » de nos jours) sous forme de travaux dirigés qu’ils devaient assurer auprès de leurs collègues, élaborer un corrigé sous forme de tutoriel animé à publier sur un site de partage de vidéo.

Les étudiants ont si bien travaillé que je me suis dit qu’il était intéressant de partager leur production avec vous. Sont recensés dans le tableau suivant : la présentation succincte de l’outil, la fiche du lab, les données associées, le corrigé accessible sur Youtube. Les logiciels ont pour point commun d’être libres ou de proposer une version d’essai gratuite suffisamment opérationnelle. D’autres outils existent bien sûr, ils seront vraisemblablement étudiés dans le futur. Et R, Python et Knime ont été laissés sciemment de côté parce qu’ils font l’objet de cours et TD par ailleurs dans le master.

Enfin, tout est perfectible bien sûr. Il s’agit là d’un certain point de vue sur les outils étudiés. Prétendre à l’exhaustivité est impossible, surtout avec des contraintes de temps fortes (préparation, présentation, durée des labs). Les présentations et les exercices constituent avant tout des points d’entrées qui nous permettent de nous initier à l’utilisation de ces logiciels. C’était l’objectif premier du projet.

Étude des logiciels de Data Science
LogicielPrésentationExercicesDonnéesTutoriel
Azure Machine Learning
RapidMiner
Weka
Orange
Rattle
Dataiku DSS

Références :
Piatetsky G., « Gartner 2016 Magic Quadrant for Advanced Analytics Platforms: gainers and losers », KDnuggets, Feb. 2016.

dimanche 23 octobre 2016

Clustering : la méthode TwoStep Cluster

Au gré de mes pérégrinations sur le web, mon attention a été attirée par l’algorithme de classification automatique (clustering, apprentissage non supervisé) TwoStep Cluster décrit sur le site de SPSS. Il présente des caractéristiques très intéressantes de prime abord : il sait traiter les variables actives quantitatives et qualitatives, il peut appréhender des très grandes bases de données avec des temps de traitements ébouriffants, il sait détecter automatiquement le nombre adéquat de classes. La méthode répond à bien des préoccupations pratiques des data scientist dans ce type de démarche. Pourtant, très étrangement, elle est peu connue, et il n’existe pas de package pour R ou pour Python qui ait essayé de l’implémenter.

En y regardant de plus près, je me suis rendu compte qu’il s’agissait d’une approche mixte (ou approche combinée) (Lebart et al., 1995 ; section 2.3) popularisée par le logiciel SPAD. Dans une première étape, des pre-clusters sont construits à l'aide d'un algorithme de partitionnement rapide. Dans une deuxième étape, ces pre-clusters sont fusionnés itérativement à l'aide d'un algorithme hiérarchique.

En réalité, la vraie originalité de la solution SPSS réside dans la stratégie de détection des classes dans la structure hiérarchique. Ce tutoriel s’attachera surtout dans un premier temps à décrypter le mécanisme d’identification du nombre "optimal" de classes. Dans un second temps, nous comparerons sur une base de taille relativement importante l’efficacité (identification du bon nombre de classes) et les temps de calcul de l’algorithme par rapport à des implémentations classiques de l’approche mixte combinant méthode des centres mobiles et classification ascendante hiérarchique, sous SPAD, Tanagra et R.

Mots clés : clustering, classification automatique, typologie, apprentissage non-supervisé, CAH, k-means, birch, ACP, classification sur facteurs, logiciel R, kmeans, hclust, bic, aic
Composants : K-MEANS, HAC
Document : TwoStep Cluster
Données : Données et programme R
Références :
IBM SPSS, "TwoStep Cluster Analysis", version 21.0.0.
Tutoriel Tanagra, "Traitement des gros volumes - CAH Mixte", octobre 2008.
L. Lebart, A. Morineau, M. Piron, « Statistique Exploratoire Multidimensionnelle », Dunod, 1995.

mercredi 19 octobre 2016

Clustering : algorithme des k-médoïdes - Diapos

La méthode des k-médoïdes est une technique de classification automatique par réallocations. Sa particularité repose essentiellement sur la notion de médoïde, qui correspond au point représentatif d’un ensemble d’observations associées à un groupe. Si les classes sont relativement convexes, sa position dans l’espace de représentation est très proche du barycentre. En revanche, pour les classes non convexes, ou en présence de points atypiques, il se révèle autrement plus robuste en dépassant le caractère artificiel du barycentre.

Ce support présente les idées sous-jacentes à la méthode. L’algorithme PAM (partitioning around medoids) – qui est une des implémentations les plus connues de l’approche - est détaillé, ainsi que CLARA (clustering large applications) qui se révèle plus adapté au traitement des grandes bases de données. Le critère silhouette est mis en avant pour identifier le nombre adéquat de classes, vieux serpent de mer de la classification automatique.

Mots-clés : classification automatique, typologie, clustering, apprentissage non supervisé, classification par partition, méthodes de réallocation, médoïde, PAM, partitioning aroung medoids, CLARA, clsutering large applications, critère silhouette, graphique silhouette
Document : Classification - Algorithme des k-médoïdes
Références :
Tutoriel Tanagra, "Clustering : méthode des centres mobiles", octobre 2016.
Tutoriel Tanagra, "Clustering : caractérisation des classes", septembre 2016.
Tutoriel Tanagra, "Classification ascendante hiérarchique - Diapos", juillet 2016.
Tutoriel Tanagra, "Classification automatique sous R", octobre 2015.
Tutoriel Tanagra, "Classification automatique sous Python", mars 2016.

mercredi 12 octobre 2016

Clustering : méthode des centres mobiles - Diapos

La méthode des centres mobiles - méthode des K-Means - est une technique de classification automatique populaire, d’une part parce qu’elle est très simple, d’autre part parce que son implémentation ne nécessite pas de conserver en mémoire vive la totalité des données, permettant ainsi de traiter des très grandes bases. Même si par ailleurs l’algorithme est relativement lent car il nécessite le passage répété des observations.

Ce support décrit l’algorithme dans les grandes lignes. Nous nous intéressons ensuite aux différentes extensions telles que le traitement des variables actives qualitatives ou mixtes (qualitatives et quantitatives), la classification floue (fuzzy c-means), et la classification de variables (classification autour des variables latentes). On se rend compte à cet égard que la méthode des centres mobiles est relativement souple et s’applique à une large palette de problèmes.

Mots-clés : classification automatique, typologie, clustering, apprentissage non supervisé, inertie inter-classes, inertie intra-classes, inertie expliquée, théorème d’huygens, classification par partition, méthodes de réallocation
Document : Classification - Méthode des centres mobiles
Références :
Tutoriel Tanagra, "Clustering : caractérisation des classes", septembre 2016.
Tutoriel Tanagra, "Classification ascendante hiérarchique - Diapos", juillet 2016.
Tutoriel Tanagra, "Classification automatique sous R", octobre 2015.
Tutoriel Tanagra, "Classification automatique sous Python", mars 2016.