Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Latest commit

 

History

History
1646 lines (1164 loc) · 76.8 KB

td_2a.rst

File metadata and controls

1646 lines (1164 loc) · 76.8 KB

Python pour un Data Scientist / Economiste

2A

ENSAE - OMI2F2

Cours animé par : Xavier Dupré (ENSAE 1999)1, Anne Muller (ENSAE 2012)2, Elodie Royant (ENSAE 2008)3, Antoine Thabault (ENSAE 2012)4, Nicolas Rousset5, Antoine Ly (ENSAE 2015), Benjamin Donnot (ENSAE 2015), Gaël Varoquaux6.

Contributeurs : Jérémie Jakubowicz (ENSAE 2002)7, Gilles Drigout (ENSAE 2013)8

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.

  • feuille de route 2016 <l-feuille-de-route-2016-2A>
  • compétitions <td2A-competition-ml>
  • projet informatique <l-projinfo2a>.

Thèmes :


Rappels de programmation

Economie

Notebooks

notebooks/td2_eco_rappels_1a

sérialisation, index, dataframe


Matrices et DataFrames - numpy pandas SQL

Import/export de données dans un DataFrame, manipulation selon une logique SQL, utilité des index, lambda function, premiers graphiques, commandes magiques.

DataFrame

Economie Statistique

Notebooks

notebooks/_gs2a_dataframe

Modules

Array, Matrix

Economie Statistique

Notebooks

notebooks/_gs2a_dnumpy

Lectures

Modules

SQL

Economie Statistique

Notebooks

ext2a/sql_doc notebooks/_gs2a_sql


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

notebooks/_gs2a_visu

Notebook sur Javascript

ext2a/javascript_doc

  • Lire Javascript et traitement de données <blog-js-data>

Modules

Cartes

Economie Statistique

Notebooks

Formats de données

Modules

Visualiser pour comprendre

(à venir)

Modules


Transformations des données, Embedding

Construire un embedding consiste le plus souvent à construire une fonction qui convertit un entier, un graphe, un texte en un vecteur réel de dimension fixe exploitable par un modèle de machine learning. Cette partie s'intéresse à construire de meilleures variables que celles issues du problème initiale.

Projections, Réduction des dimensions

Economie Statistique

(à venir)

  • PCA, Sparse PCA, Kernel PCA
  • SOM
  • LSH

Lectures

Modules

Animations

Variables catégorielles

Economie Statistique

(à venir)

  • Corrélation entre des variables catégorielles

Lectures

Distances

(à venir)

Statistique

Lectures

Clustering

Economie Statistique

notebooks/_gs2a_clustering

(à venir)

  • score silhouette
  • clustering de variables catégorielles

Lectures

Modules

Détection d'anomalies

(à venir)

Lectures

Vidéos

Modules

Graphe et embedding

(à venir)

Lectures


Machine Learning - Formalisation

Machine learning, cours de Gaël Varoquaux

Economie Statistique

Gaël est un des concepteurs de scikit-learn.

Notebooks

notebooks/_gs2a_statdes notebooks/_gs2a_ml_base

Lectures

Modules

Pratique du machine learning, problème de données

Economie Statistique

questions/some_ml

Notebooks

notebooks/_gs2a_ml

Lectures

Recherche

multilabel

Multilabel

Digressions

Métriques

Librairies

JMLR poste régulièrement des articles sur des librairies de machine learning open source.

  • fastFM: A Library for Factorization Machines

Modules

Ranking

(à venir)

Lectures

Modules

Système de recommandation

(à venir)

Lectures

Modules

Deep Learning

Statistique

Notebooks

notebooks/_gs2a_deep

Tutoriel

Sites

Modèles pré-entraînés

Lectures

Deep Forest

Chiffres, Textes

Plus théoriques

Lectures deep text

Vus dans des conférences

Modules

à suivre

Deep learning embarqué

Reinforcement Learning

ou apprentissage par renforcement

Statistique

(année prochaine)

Lectures

Bandits

Statistique

(année prochaine)

Lectures

Modèles bayésiens

Statistique

(année prochaine)

Notebooks

notebooks/_gs2a_bayes

Lectures

Vidéo

Modules

Factorization Machines

(à venir)

Lectures


Machine Learning Avancé

Régression quantile

(à venir)

Lectures

Modules

Interprétabilité des modèles

Economie Statistique

(à venir)

Lectures

Modules

Optimisation des hyperparamètres

(à venir)

Lectures

Modules

Online training

(à venir)

Lectures

Modèles avec dépendances dans le temps

(à venir)

Lectures

Timeseries - Séries temporelles

Economie Statistique

Notebooks

notebooks/_gs2a_timeseries

(à venir : modèles SETAR pour les séries non périodiques, modèles proies prédateurs)

Lectures

Modules

Finance

Statistique

Modules

Auto-Learning

Economie Statistique

(à venir)

Lectures

Modules

Machine Learning sur des données cryptées

Statistique

(à venir)

Lectures

Modules

Prédire une distribution

Statistique

(à venir)

Lectures

Apprentissage sans labels

Statistique

specials/nolabel

Notebooks

(à venir)

Lectures

Autoencoders - réduction de dimensionnalité

No label, weak labels

Online training

Transfer learning


NLP - Image - Réseaux

Traitement du langage

Economie Statistique

Notebooks

notebooks/_gs2a_nlp

Lectures

word2vec

Word embedding

Résumé

Vidéos

Modules

Images

Economie Statistique

(à venir)

Lectures

Modules

Modèles pré-entraînés

Visage, paroles

(à venir)

Modules

Lectures

Graphes et réseaux

Economie Statistique

(année prochaine)

Lectures


Techniques de programmation et algorithmes

Webscrapping et API

Economie Statistique

Notebooks

notebooks/_gs2a_eco_scraping notebooks/_gs2a_eco_api

Ressources

Modules

Site web

Notebooks

notebooks/_gs2a_eco_website

Lectures

Modules

Jupyter et les commandes magiques

Statistique

Notebooks

notebooks/_gs2a_magic_commands

Big data sans cluster, données non structurées

Statistique

Notebooks

notebooks/_gs2a_no_sql_exo notebooks/_gs2a_no_sql_twitter notebooks/_gs2a_big_in_memory

Lectures

Bases de données no SQL

Modules

Tensor, tableaux multidimensionnel

Statistique

(à venir)

Modules

C++, R

Statistique

Notebooks

notebooks/_gs2a_langages notebooks/_gs1a_D_calcul_dicho_cython

Lectures

  • l-python_cplusplus
  • sklearn-compiledtrees : création d'une implémentation C++ de la fonction de décision d'un arbre de décision entraîné avec scikit-learn

Vidéos

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

notebooks/_gs2a_parallelisation notebooks/_gs2a_serialisation

Modules

Lectures

Puzzles algorithmiques

Statistique

td_2a_algo specials/nb_complet specials/algorithm_culture specials/problem_solved

Notebooks

notebooks/_gs2a_puzzle

Certains sont tirés de plusieurs sites dont Google Code Jam.

Lectures

Streaming algorithms

notebooks/_gs2a_streaming

Lectures

Modules


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 :

image

Librairies Python

Librairies de machine learning

Vidéos


  1. Contributeur, encadrant et coordinateur du cours.

  2. Contributeur, encadrant et coordinateur du cours.

  3. Contributeur, encadrant.

  4. Contributeur, encadrant.

  5. Contributeur, encadrant.

  6. Contributeur, encadrant.

  7. Contributeur, encadrant des premiers jours (2014-2016).

  8. Contributeur.