Feuille de route 2018 (2A)#
Plan#
Les cours et séances se déroulent sur 8 séances de 3h mardi matin. Le cours est divisé en deux pistes Stat et Eco qui correspondent aux profils décrits dans Les notions qu’il faut avoir comprises ou vues. Un compte slack python-ensae-2a.slack.com a été créé pour faciliter les échanges, annonces et questions. Une compétition sera ouverte le premier jour et fermée à la dernière session où les résultas et les idées seront discutées.
Séance |
Voie stat |
Voie éco |
---|---|---|
11/9 (1) amphi |
|
|
18/9 (2) TD/amphi |
Rappels et exercices sur la manipulation des données avec pandas, numpy, matplotlib, scikit-learn, notion de prédicteur, transformeurs, pipelines, stacking |
Rappels et exercices sur le langage Python, manipulation des données avec pandas |
25/9 (3) TD/amphi Séance 3 - stat, Séance 3 - éco, deux exposés |
ACP, réduction de dimension variables catégorielles, textuelles, mention de catboost |
Suite et fin des exercices pandas et représentations graphiques variées, fin des exercices sur pandas, numpy, visualisation avec matplotlib, cartographie |
2/10 (4) TD/amphi Séance 4 - stat, Séance 4 - éco deux exposés |
Ranking, détection d’anomalies, clustering, valeurs manquantes, imbalanced classification, recommandation, test A/B |
Premiers pas avec scikit-learn, ACP, Regréssion linéaire, Logit, classification binaire, scraping avec un exemple sur la récupération d’image 2018-10-02_scraping_recuperer_images |
9/10 (5) TD/amphi Séance 5 - stat, Séance 5 - éco, deux exposés |
Machine learning crypté, séries temporelles, apprentissage par renforcement, algorithme du bandit, auto-learning |
Variables textuelles, clustering, détection d’anomalies, graphes et recommandations |
16/10 (6) TD/amphi Séance 6, deux exposés |
|
|
23/10 (7) amphi Séance 7, deux exposés |
|
|
6/11 (8) TD Séance 8 - stat, Séance 8 - éco, deux exposés |
Notion d’algorithmes, écrire du code efficace en Python, avec pandas, numpy, discussion sur les projets |
Travailler le texte, de la récupération à l’exploitation (2/2), Exercice de webscraping, API, NLP |
Prérequis#
Voix stat : maîtrise du langage Python, connaissance des modules pandas, numpy, voir quelques rappels
Voix éco : maîtrise du langage Python, 2A.eco - Rappel de ce que vous savez déjà mais avez peut-être oublié
Intervenants#
Xavier Dupré, Anne Muller, Elodie Royant, Antoine Ly, Eliot Barril, Frédéric Bardolle, Gaël Varoquaux.
Notes#
Liens, notebooks prévus pour les séances pratiques.
Séance 1#
Précision sur le cours, évaluation, exposés, ressources, TD, amphi,
notebook, python, prérequis
2A.eco - Rappel de ce que vous savez déjà mais avez peut-être oublié
Lectures Lectures sur le machine learning
principe de la prédiction
plus proches voisins
base d’apprentissage et de tests, découpage stratifié
hyperparamètres
définition de la régression et de la classification
score et ROC
A faire pour la prochaine fois : exécuter trois notebooks, 1A.1 - D’une structure de données à l’autre, 1A.1 - Histogramme et dictionnaire, 2A.ml - Features ou modèle
Séance 2 - stat#
8h30 - TD
Vérifier que les trois notebooks ont été exécutés, A faire pour la prochaine fois : exécuter trois notebooks, 1A.1 - D’une structure de données à l’autre, 1A.1 - Histogramme et dictionnaire, 2A.ml - Features ou modèle
Début du TD : Rappels sur scikit-learn et le machine learning (Rappels sur scikit-learn et le machine learning (correction))
Lectures conseillées
Les cours de Gaël Varoquaux Machine learning, cours de Gaël Varoquaux, les notebooks d’exercices associées à ces lectures.
10h15 - modèle complexe avec scikit-learn
Présentation de l’API de scikit-learn
Notion de pipeline
Implémentation d’un modèle avec l’API de scikit-learn Contributing, sklearn.base
Séance 2 - éco#
8h30 - amphi
Rappels sur le langage python, Cheat sheet: Python, variable, listes, dictionnaires, boucles, fonctions
Introduction à pandas, notion de table, lecture, écriture de fichiers texte, Excel, ajout de colonne, opérations entre colonne, apply, opérations standard (sort, filter, group by, join),
Introduction à numpy, opérations standard, calcul matriciel, différences avec un dataframe
10h15 - TD
Vérifier que les trois notebooks ont été exécutés, exécuter trois notebooks, 1A.1 - D’une structure de données à l’autre, 1A.1 - Histogramme et dictionnaire, 2A.ml - Features ou modèle
Séance 3 - stat#
8h30 - TD
Début du TD : Rappels sur scikit-learn et le machine learning (Rappels sur scikit-learn et le machine learning (correction))
10h30 - amphi
Régression logistique et convexité, Régression logistique, diagramme de Voronoï, k-Means (maths)
Variables textuelles (machine learning)
Mesure du temps de calcul pour différentes tailles de jeu de données, étude pour une régression logistique Optimisation de code avec cffi, numba, cython (info)
Séance 3 - éco#
8h30 - amphi
1A.data - Visualisation des données, 1A.data - Visualisation des données - cartes, 1A.data - Visualisation des données - graphes interactifs
10h30 - TD
Séance 4 - stat#
8h30 - cours
10h15 - TD
Traitement des variables catégorielles et textuelles.
2A.ml - Analyse de sentiments, 2A.ml - Analyse de sentiments - correction
Lectures pour ce TD :
Séance 4 - éco#
8h30 - TD
Notebooks pour s’exercer :
Regardez différentes options disponibles pour faire les graphiques et passez un peu de temps sur l’exemple 2A.data - Matplotlib
ACP (s’arrêter à l’exercice 1)
10h15 - cours
Expression régulière et scrapping, 2018-10-02 - Scraping, récupérer une image depuis LeMonde.
Séance 5 - stat#
8h30 - cours
2A.ml - Timeseries et machine learning, Single Spectrum Analysis (SSA)
Optimisation des hyperparamètres et Auto-Learning (metalearning)
Counterfactual Reasoning and Learning Systems: The Example of Computational Advertising
SARSA :
deep reinforcement learning, Alpha Go Zero
10h15 - TD
2A.ml - Analyse de sentiments, 2A.ml - Analyse de sentiments - correction
td2aenoncesession4Arst, correction
Séance 5 - éco#
8h30 - TD
10h15 - cours
ACP
Traitement des variables catégorielles
Graphes et recommandations
Séance 6#
Propriétés des modèles mathématiques
Thèmes : modèles linéaires, modèles ensemblistes, modèles dérivables, gradient, feature importance, parallélisme, boosting, binning, minibatch
En cas de sparsité, idée de LightGBM (feature non conflictuelle), correction, Nearest Neighbours and Sparse Features
Autour du linéaire
Illustrations des propriétés mathématiques
2A.ml - Interprétabilité et corrélations des variables (feature importance)
Lectures annexes
Librairies random forest
XGBoost: A Scalable Tree Boosting System, sparsité et valeurs manquantes
LightGBM: A Highly Efficient Gradient Boosting Decision Tree, sélection des splits, combinaison de features sparses
CatBoost: gradient boosting with categorical features support, ajout de combinaisons de variables
10h15 - Gaël Varoquaux
Interprétation des modèles de machine learning
Notes : Understanding and diagnosing your machine-learning models.
Séance 7#
Ethique dans les données par Frédéric Bardolle
Les fossoyeurs de l’innovation par Nicolas Colin
Tristan Harris : «Beaucoup de ficelles invisibles dans la tech nous agitent comme des marionnettes»
Netflix 98% du contenu visionné est recommandé par un algorithme, fonction objectif pour Netflix : le temps passé sur le site, Netflix préfère une personne qui reste 10h plutôt que 10 personne qui reste 1h, polarisation des contenus
L’efficacité d’un logiciel censé prédire la récidive à nouveau critiquée
Google Translate biais sexiste : A doctor, a nurse traduit en un docteur, une infirmière et non une docteure, un infirmier
Un monde d’automatisation ?, avec entre autres Alexeï Grinbaum
Ethique de la vertu (Aristote, ne fais pas à autrui ce que tu ne voudrais pas qu’on te fasse), éthique utilitariste (Bentham, maximiser le plaisir, diminuer les peines en apposant une échelle de valeur, l’action est jugée sur la conséquence), éthique déontologique (Kant, impératif catégorique, je peux faire quelque chose si tout le monde peut le faire sans mettre le monde en danger, action en fonction de l’intention quelque soit le résultat),
Dilemmes
Séance 8 - stat#
Séance 8 - éco#
Notebook
2A.ml - Analyse de sentiments (correction), lien vers le jeu de données : Project 1: Spooky Data Analysis
Lectures