Python pour un Data Scientist / Economiste#

Note

J’ai créé ce cours et je l’ai animé sur cinq ans jusqu’en 2019. Il l’est maintenant par Lino Galiana et son contenu est également disponible : Python pour les data-scientists et économistes. Page ENSAE : Python pour un datascientist ou un économiste. En cinq ans, le cours est passé de 20 étudiants à plus de 130. Derrière les coulisses, lors de la dernière année, des élèves diplômés ayant assisté au cours sont venus à leur tour assurer des séances de TD. Je passais également plus de temps à lire des rapports d’étudiants que temps dans les amphithéâtres. Je ne sais pas combien de lignes de code j’ai écrites pour automatiser la mise à jour du site, faire tourner des tests unitaires sur les centaines de notebooks pour être à peu près sûr que tout marche bien sans avoir à tout retester la veille. J’ai même écrit du code qui récupère tous les projets depuis ma boîte mail. J’ai quelques souvenirs d’avoir envoyé l’énoncé d’un TD à trois heures du matin pour des chargés de TD le découvrant dans le métro quelques heures plus tard. Les premières années étaient rock’n roll. On ne construit pas un contenu riche en quelques nuits. On m’a proposé également d’écrire un livre mais les nuits étaient trop courtes déjà.

Les tests unitaires continuent encore. Le contenu va tout doucement vieillir. Ainsi va la vie de l’aventure d’un cours dans un domaine en perpétuelle évolution.

Ce cours s’étale sur 24 heures de cours/TD. Les outils proposés sont en langage Python. Ils sont tous open source, pour la plupart disponibles sur GitHub et en développement actif. Python est devenu le premier langage pour les scientifiques et comme c’est un langage générique, il est possible de gérer l’ensemble des traitements appliqués aux données, depuis le traitements des sources de données jusqu’à leur visualisation sans changer de langage. Le cours est prévu pour des profils plutôt statistiques Statistique ou plutôt économiques Economie. Ces images reviendront pour indiquer si les contenus s’adressent plutôt aux uns ou aux autres. Il est évalué par un projet de datascience et d’un exposé fait à plusieurs sur un sujet tiré d’articles de recherche récents.

Le terme cheat sheet est un mot-clé plutôt efficace sur Internet pour retrouver les bout de codes les plus fréquents. Cette page regroupe des cheat sheets sur beaucoup de sujet évoqués ci-dessous : Essential Cheat Sheets for Machine Learning and Deep Learning Engineers. Quelques compétitions ont aussi été créées pour ce cours : Compétitions. Le cours est organisé sous forme de thèmes, tous associés à un problème de données et ou de machine learning. Les thèmes sont de difficultés croissantes et sont abordés invariablement par, des exercices sous la forme de notebooks (énoncé / correction), des articles, des modules connus.

Thèmes

Le cours continue mais sans moi depuis 2020 : Python pour les data-scientists et économistes Arthur Charpentier, lectures (français)

Agilité avec les données#

Il est indispensable de savoir manipuler les données avant de pouvoir faire du machine learning. Filtrer, fusionner, concaténer, il faut savoir faire cela vite pour passer plus de temps sur les problèmes intéressants.

Machine Learning - les briques de bases#

Un problème de données est rarement résolu avec un seul modèle, un seul algorithme et plus souvent un assemblage. La première étape consiste à analyser un problème concret à l’aide d’une grille de problèmes formalisés. C’est cette grille qui est parcourue dans les paragraphes svuiants.

Machine learning - extensions#

Les données ne sont pas toujours organisés sous la forme d’une table de données où il s’agit de prédire Y en fonction de X. Il faut parfois prendre en compte une dépendance temporelle ou spatiale. Cette section étend la grille précédente et proposent des modèles parfois récents.

Galleries de problèmes résolus ou presque#

Il faut voir la page Galleries de problèmes résolus ou presque. Ces problèmes sont principalement résolus à l’aide de deep learning. Chaque problème n’est pas nécessairement compliqué en soi mais chaque modèle nécessite des outils de machine learning puissant et beaucoup de ressources de calculs pour apprendre des réseaux de neurones parfois pendant des mois.

Algorithmes, Optimisation, Programmation#

Plus les données sont volumineuses, plus les contraintes sont nombreuses, plus il faut se montrer inventif. Ecrire un code efficace est souvent utile et parfois impératif simplement pour obtenir un résultat. Néanmoins, il arrive régulièrement que le premier besoin soit celui de collecter des données qui ne sont pas encore disponibles.

Bibliographie#

La plupart des articles sont référencés dans la section du thème auquel ils sont reliés. Les suivants sont en quelque sorte des inclassables.

A propos du cours#

Ce cours a commencé en 2014 et n’a cessé de s’enrichir. Il est animé par Xavier Dupré (ENSAE 1999) et Anne Muller (ENSAE 2012). Le cours qui a pour objectif de vous présenter les notions suivantes.

Auteurs et Contributeurs

Ce cours a bénéficié de nombreuses contributions dont les auteurs sont : Xavier Dupré, Anne Muller (API, scrapping, tutoriels, …), Elodie Royant (API, scrapping, tutoriels, …), Matthieu Bizien (deep learning), Nicolas Rousset (itérateurs), Jérémie Jakubowicz (puzzle algorithmique), Antoine Thabault (premiers notebooks sur pandas, numpy), Gilles Drigout (streaming), Gaël Varoquaux (machine learning avec scikit-learn) et bien sûr les étudiants de l”ENSAE. Feuilles de route et compétitions passées :