Python pour un Data Scientist / Economiste

ENSAE - OMI2F2

Cours animé par : Xavier Dupré (ENSAE 1999) [1], Anne Muller (ENSAE 2012) [1], Elodie Royant (ENSAE 2008) [2], Antoine Thabault (ENSAE 2012) [2], Nicolas Rousset [2], Antoine Ly (ENSAE 2015), Benjamin Donnot (ENSAE 2015), Gaël Varoquaux [2].

Contributeurs : Jérémie Jakubowicz (ENSAE 2002) [3], Gilles Drigout (ENSAE 2013) [4]

Ce cours s’étale sur 6 séances de cours/TD d’une durée de 4h. 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 récemment devenu une alternative plus que probante 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. La présentation ENSAE 2A - Données, Machine Learning et Programmation slideslogo donne un aperçu des thèmes abordés.

Thèmes :




Visualisation

Graphes

Economie Statistique

Plan

  • Présenter 10 plotting libraries at PyData 2016.
  • Grouper les étudiants par deux
  • Considérer un jeu de données
  • Chaque groupe essaye une librairie différente
  • Insister sur la visualisation de gros jeu de données

Il existe de nombreuses librairies de visualisation réparties en deux grandes familles. La première produit des images (matplotlib, seaborn, networkx), la seconde produit des graphes animés à l’aide de Javascript (bokeh, bqplot). Les librairies les plus récentes implémentent les deux modes en cherchant toujours plus de simplicité. A ce sujet, il faut jeter un coup d’oeil à flexx. Elles explorent aussi la visualisation animée de gros jeux de données telle que datashader.

Notebook sur matplotlib

Notebook sur Javascript

Modules

Visualiser pour comprendre

(à venir)

Modules


Transformations des données


Machine Learning - Formalisation

Deep Learning

Statistique

Notebooks

Tutoriel

Sites

Modèles pré-entraînés

Lectures

Deep Forest

Chiffres, Textes

Plus théoriques

Lectures deep text

Modules

à suivre


Machine Learning Avancé

Apprentissage sans labels

Statistique

(à venir)

Lectures

Autoencoders - réduction de dimensionnalité

No label, weak labels

Online training

Transfert learning


NLP - Image - Réseaux

Traitement du langage

Economie Statistique

Notebooks

Lectures

word2vec

Word embedding

Résumé

Vidéos

Modules


Techniques de programmation et algorithmes

Parallélisation, sérialisation

Statistique

La sérialisation est le fait de convertir n’importe quelle structure de données en un tableau d’octets, c’est indispensable pour la communication entre deux machines, deux processus.

Notebooks

Modules

Lectures


Data Scientist en liberté

Contrairement à ce qu’on pense, les datascientists sont plus prévisibles que les données.

machine learning

quoi d’autres ?

installation


Bibliographie

Livres sur le machine learning

Livres sur les algorithmes

Livres sur la programmation

  • High Performance Python, Micha Gorelick, Ian Ozsvald.
    Le livre est très bien conçu et les exemples sont très clairs. Si vous souhaitez accélérer un programme Python en utilisant le multithreading, OpenMP, Numba, Cython PyPy, ou CPython, je recommande d’y jeter un coup d’oeil d’abord.

Liens sur la programmation

Tutoriels

MOOC

Autres cours, notebooks

Articles d’auteurs très connus

Compétition de code

Pour finir, Choosing the right estimator :

http://scikit-learn.org/stable/_static/ml_map.png

Librairies Python

Librairies de machine learning

Vidéos

[1](1, 2) Contributeur, encadrant et coordinateur du cours.
[2](1, 2, 3, 4) Contributeur, encadrant.
[3]Contributeur, encadrant des premiers jours (2014-2016).
[4]Contributeur.