Le Big data marque le début d’une transformation majeure, qui va affecter de façon profonde l’ensemble des secteurs (de l’e-commerce à la recherche scientifique en passant par la finance et la santé). L’exploitation de ces immenses masses de données nécessite des techniques mathématiques sophistiquées visant à extraire l’information pertinente. L’ensemble de ces méthodes forme le socle de la « science des données » (ou data science). Ce passage des données aux connaissances est porteur de nombreux défis qui requièrent une approche interdisciplinaire. La « science des données » s’appuie fortement sur le traitement statistique de l’information : statistiques mathématiques, statistiques numériques, apprentissage statistique ou machine learning. De l’analyse de données exploratoires aux techniques les plus sophistiquées d’inférence (modèles graphiques hiérarchiques) et de classification ou de régression (deep learning, machine à vecteurs de support), une vaste palette de méthodes de statistiques mathématiques et numériques et d’apprentissage est mobilisée. Ces méthodes, pour pouvoir être développées à l’échelle de masses de données requièrent la maitrise des mécanismes de distribution des données et des calculs à très grande échelle. Les mathématiques appliquées (analyse fonctionnelle, analyse numérique, optimisation convexe et non convexe) ont également un rôle essentiel à jouer. D’un point de vue applicatif, la « science des données » impacte fortement de nombreux secteurs. Il existe actuellement partout dans le monde un large déficit de “Data Scientists” et “Data Analysts”. Les étudiants issus de formations en science des données et “Big Data” sont donc très attendus sur le marché de l’emploi. Ce marché de l’emploi est mondial et concerne à la fois les économies développées et émergentes. A l’instar de tous les domaines d’innovations de ruptures (biotechnologies, e-médecine), le besoin d’ingénieurs de très haut-niveau et de doctorants est également important.

1ere période (Septembre-Décembre)

20 ECTS à valider à choisir dont le Data Camp I (obligatoire) (Attention, il n’y a pas de compensation entre les modules… mais vous avez le droit de vous inscrire à plus de 20 ECTS)

Big Data Camp

Responsables : Balazs KEGL et Alexandre GRAMFORT

Crédits : 2.5 ECTS

Syllabus :

You will put your basic machine learning and data analysis knowledge to test by

  1. solving practical data science problems in scientific or industrial applications and by
  2. designing data science workflows.


Code-submission data challenge

To achieve the first objective, you will participate in a data challenge at the RAMP site. The particularity of RAMPs (vs Kaggle) is that you will submit code, not predictions. Your code will be inserted into a predictive workflow, trained and tested. A public cross-validation score will be available on a public leaderboard, real time. Your grade will be a function of the private test score of your best submission, obtained on a hidden test set. The challenge will also include a collaborative phase in which you can access all the submitted solutions, and you will be allowed and encouraged to reuse each other’s code. Part of your grade will come from your activities from this collaborative phase.

You will be able to choose from two to five problems coming from scientific or industrial applications (e.g., brain imaging, astrophysics, biology/chemistry, ad placement, insurance pricing). You can participate in more than one challenges: we will grade you based on your best performance.

The starting kit

Each challenge will come with an open source starting kit available at https://github.com/ramp-kits, containing

  • a Jupyter notebook that describes the industrial or scientific prediction problem, does some exploratory analysis and data visualization, and explains the predictive workflow and one or more basic solutions (example),
  • a Python script that parametrizes the challenge (example),
  • public training and test data sets, different from the official sets we use to evaluate your submissions at the RAMP site (example), and
  • one ore more example submissions (example).

You will be able to test the example submission and all your subsequent submissions before submitting, using a simple command line test script (more information here).


  • Opening of the challenges: October 27, 12h30-14h30
  • Closing of the competitive phase: December 17, 20h
  • Closing of the collaborative phase: January 30, 20h


Half of your grade will come from the data challenge, 5/20 from the competitive phase and 5/20 from the collaborative phase. Selected students will be able to present their solutions to the class, for up to 2/20 bonus grades.

Team project


To achieve the second objective, you will build a predictive workflow in teams of size three to five, implement a data-driven business/science case. We will give you a set of pointers to existing data sources, but you will be encouraged to find business/science cases and data sources on your own. Collaborating with research teams or businesses will also be highly regarded.

You will submit the projects as RAMP starting kits on github. We will not ask you here to optimize the solution, rather to focus on its design and its match to the business or science case.

The business/science case

Half of your grade (5/10) will come from the quality of the predictive business or science case that you will present in the preamble of the Jupyter notebook of your starting kit. The following questions are to guide you in this exercise:

  • What do we want to predict? How will a good prediction improve a key performance indicator (KPI) or lead to a scientific result?
  • How do we measure the quality or value of the prediction in the selected business or science problem? What will be the quantitative score? How does the quantitative score reflect the quality or value of the prediction? How does the (possibly asymmetric) prediction error convert into cost or decreased KPI?
  • Will the predictor be used as decision support, as a part of a fully automated system, or only as part of a report or feasibility study? How will an agent use the system?
  • What data do we need to develop a predictor? Could you find this data? What were the actual data sources? What other sources (private or public) could be exploited? What were and would be the data collection costs?
  • What data cleaning/tidying steps were required to obtain clean training data?
  • Given the data source(s) and the prediction goal, what is the workflow and the workflow elements? Will you need different expertise for the different steps?
  • How fast the phenomena underlying the prediction problem change? How often the model will have to be retrained? What are the associated costs and risks?

The technical quality

The second half of your grade (5/10) will come from the technical quality of your solution. You kit will have to pass the ramp_test_submission test. We will pay close attention to your validation setup (Is the validation reasonable? Do you have enough test data to see significant differences between submissions?). We will also grade the quality of the exploratory analysis and the clarity of the technical explanation of the workflow.


  • December 18: You should arrive to the data camp week prepared, having formed teams and having an approximate idea about the business/science problem you would like to tackle and the potential data sources.
  • December 18 – 22: The data camp week, Ecole Polytechnique, Amphi Faure (9h – 17h). We will have lectures in the morning and guided work and student presentations in the afternoon (students presenting their solutions will get up to 2 bonus points). The tentative program:
  • January 30 20h: deadline of submitting the projects.



The course will require that you develop code in Python. We strongly suggest that you start preparing. You should have a complete Python environment setup on your machine on the first day of the course. We recommend to use Anaconda (https://www.continuum.io/downloads). It includes all required libraries. Here are some necessary resources: numpy, pandas, scikit-learn, xarray. You might want to also install: seaborn, hyperopt, and xgboost. Some of the challenges strongly favor deep learning solutions; we will allow submissions both in pytorch and in keras (with tensorflow backend).

The scikit-learn web site is also a great resource to brush up on your ML skills. The following tutorials are recommended to learn more about pandas and scikit-learn:




The slack forum

During the challenge and the data camp we will be communicating through slack. The workspace URL is:


You should be able to register if your emails ends with:

  • telecom-paristech.fr
  • ensae-paristech.fr
  • polytechnique.edu
  • supelec.fr
  • ensae.fr
  • edu.ece.fr
  • ens-lyon.fr
  • ensta-paristech.fr
  • u-psud.fr
  • eleves.enpc.fr*

* Contact us if you cannot register.

You can also use it for communicating within and between teams.

Data sources

The following is a list of data sources that you may use in your team project. Note however that picking a nice data set and setting up a prediction problem is not enough for a good grade: you also have to make a reasonable business or science case.

Introduction to Bayesian learning

Responsables : Anne SABOURIN

Crédits : 2.5 ECTS

Syllabus :

This course is an introduction to Bayesian methods for machine learning. As a first go, the main ingredients of Bayesian thinking are presented and typical situations where a Bayesian treatment of the learning task is useful are exemplified. Particular attention is payed to the links between regularization methods and specification of a prior distribution.

The second part of this course concerns the computational challenges of Bayesian analysis. Major approximation methods such as variational Bayes, Monte-Carlo-Markov-Chain sampling and sequential sampling schemes are introduced and implemented in lab session.

* Format: 7 * 3h + exam

* Programming language: R

* Grading: mini-projects 1/2 + written exam 1/2.

* Program

  • S1: Bayesian learning: basics.
    Bayesian model, prior-posterior, examples
    Point and interval estimation
    Prior choice, examples, exponential family
    A glimpse at asymptotics and at computational challenges
    Bibliography: [2] chapters 1, 2 ; [1] chapter 1 ; [3] chap 1.
  • S2: Bayesian modeling and decision theory
    Naïve Bayes, KNN
    Bayesian Linear Regression
    Bayesian decision theory
    Bibliography: [2] chapter 3, ; [1] chapter 4 ; [3] chapter 2.
  • S3: Lab session
  • S4 : Approximation methods
    Variational Bayes, EM, Approximate inference, examples
    Bibliography: [2] chapter 10.
  • S5 Monte-Carlo sampling methods
    Importance sampling, MCMC (Metropolis Hastings, Gibbs), examples.
  • S6: Sequential methods
    Sequential models and Bayesian filtering: Kalman, particle filtering.
  • S7: Lab session: Monte-Carlo / Sequential sampling


[1] Berger, J. O. Statistical decision theory and Bayesian analysis. Springer Science & Business Media, 2013.

[2] Bishop, C. M. Pattern recognition and machine learning. Springer, 2006.

[3] Robert, C.. The Bayesian choice: from decision-theoretic foundations to computational implementation. Springer Science & Business Media, 2007.

Advanced Learning for Text and Graph Data (ALTEGRAD)

Teachers : Michalis VAZIRGIANNIS, Antoine TIXIER, Ioannis NIKOLENTZOS

Crédits : 5 ECTS

Syllabus :


The ALTEGRAD course aims at providing an overview of state-of-the-art ML and AI methods for text and graph data with a significant focus on applications.

Each session will comprise two hours of lecture followed by two hours of programming sessions.

Grading for the course will be based on a final data challenge.


All interested students should fill the following form to enrol: link to form

Course Syllabus 2017

  • 7/11 11am-3pm ENS Cachan Amphi Curie (d’Alembert building). Graph-of-words advanced topics (1/2)
    • Introduction to text preprocessing and NLP
    • graph of words and information retrieval
  • 14/11 11am–3pm ENS Cachan Condorcet room. Graph-of-words advanced topics (2/2)
    • Keyword extraction, Summarization (abstrative, extractive)
    • Graph based document categorization
    • Event detection in text streams (twitter)
  • 15/11 9am-1pm ENS Cachan Condorcet room. Word & document embeddings
    • Introduction to NN architectires for NLP
    • Latent Semantic Indexing
    • Word embeddings: word2vec, glove models, word mover’s distance, doc2vec
    • Backpropagation for MLP architectures
    • Deep Learning architectures for text classification (CNNs, RNNs, LSTMs)
  • 5/12 (Master Data Science students only) Polytechnique. Room and time TO BE DETERMINED. Influential spreader detection, influence maximization
    • single spreaders: epidemic models (SIR/SIS), baselines for spreaders selection
    • multiple spreaders:  LT/IC model, Greedy Algorithm
  • 11/12 2-6pm ENS Cachan Condorcet room. Graph kernels, community detection
  • 12/12 11am-3pm ENS Cachan Amphi Curie (d’Alembert building). Deep Learning for Graphs
  • 15/12 2-5:30pm (MVA students only) ENS Cachan Amphi Curie (d’Alembert building) Repeated from 5/12Influential spreader detection, influence maximization

The ALTEGRAD challenge Fall 2017 topic is:
“Can you predict whether two short texts have the same meaning?”

You can find more information for the challenge here.

Theoretical guidelines for high-dimensional data analysis

Responsable : Christophe GIRAUD

Crédits : 2.5 ECTS

Syllabus : 


Goal of the lectures:

  • to draw your attention to some issues in data analysis, and some proposals to handle them;
  • to learn to read a research paper, to catch the take home message and to identify the limits;
  • to favor your own critical analysis.

The lecture will be based on some recent research papers. The presence during the lectures is mandatory and taken into account in the final evaluation.






Further reading


False discoveries, multiple testing, online issue

paper 1 (short review)


Reliability of scientific findings? Online FDR control


Strength and weakness of the Lasso

Paper 1


No free computationnal lunch


Adaptive data analysis

Paper 1


Kaggle overfiting


Curse of dimensionality, robust PCA, theoretical limits

Paper 1 (suppl. material)


Robust PCA


Robust learning

Paper 1


Learning with Median Of Means

Machine Learning avancé

Enseignant : Florence D’ALCHÉ-BUC

Crédits : 2.5 ECTS

Syllabus : 

This course will present advanced methods in Machine learning related with the following issues:
  • learning from labeled and unlabeled data
  • learning under weak supervision, zero/one/few shot learning
  • ranking methods
  • cost sensitive classification
  • outlier detection
Apprentissage par renforcement

Responsable : Erwan LE PENNEC

ECTS : 2,5


Ce cours de 20h propose une introduction à l’apprentissage par renforcement. Il est basé sur la nouvelle édition du livre “Reinforcement Learning: An Introduction” de R. Sutton et A. Barto (disponible en ligne sur la page http://incompleteideas.net/book/the-book-2nd.html).

1. Introduction à l’apprentissage par renforcement et processus de décision markovien
2. Le cas des bandits
3. Méthodes tabulaires: prédiction par programmation dynamique, méthode de Monte Carlo et TD
4. Planification et apprentissage pour les méthodes tabulaires
5.  Méthodes approchées: prédiction, planification et apprentissage

Optimisation for Data Science

Responsables : Alexandre GRAMFORT et Robert GOWER

Crédits : 5 ECTS

Syllabus :
Modern machine learning heavily relies on optimization tools, typically to minimize the so called loss functions on training sets. The objective of this course is to cover the necessary theorical results of convex optimization as well as the computational aspects. This course contains a fair amount of programming as all algorithms presented will be implemented and tested on real data. At the end of the course, students shall be able to decide what algorithm is the most adapted to the machine learning problem given the size the data (number of samples, sparsity, dimension of each observation).

Evaluation :
Labs. 2-3 Labs with Jupyter graded (30% of the final grade).

Project. Evaluate jupyter notebooks. 30% of final grade.

Project 2016: Implement SVM with cvxopt package, derive dual and implement dual solution
(without intercept) with prox grad and coordinate descent (SDCA).

Exam. 3h Exam (40% of the final grade).

To sum up :

Eval type % final grade Remarks
Lab 30% Students have 1 week to upload solutions on moodle
Project 30% To upload on moodle by ???
Examen 40% Final course


Introduction to Graphical Models

Responsables : Umut Şimşekli

Crédits : 2.5 ECTS

Syllabus :

  • Lecture 1: Introduction & Probability reminder
  • Lecture 2: Conditional independence, Directed and undirected graphical models, 
  • Lecture 3: Factor graphs, Sum-product algorithm, Exponential family distributions 
  • Lecture 4: Gaussian Mixture Models and the Expectation-Maximization algorithm
  • Lecture 5: Applications of the Expectation-Maximization algorithm, Non-negative matrix factorization
  • Lecture 6: Hidden Markov Models
  • Lecture 7: Hidden Markov Models, Mini project 
Graphical Models for large scale content access

Responsables : François YVON

Crédits : 2.5 ECTS

Syllabus :

  1. Introduction
    Classification de documents,
    Modèles graphiques orientés
  2. Les modèles de thèmes
    Mélange de lois multinomiales
    Algorithme EM
    Modèle PLSA
    Modèle LDA
  3. Les modèles structurés
    Dépendances linguistiques, structure dans les modèles graphiques
    Retour sur les HMM
    Modèles d’alignments IBM1, IBM2
  4. Les modèles conditionnels
    Régression logistique et maximum d’entropie
    Modèle CRF
  5. Inférence exacte
    Elimation des variables
    Passage de messages
    Algorithme de l’arbre de jonction
  6. Inférence approchée: méthodes variationnelles
    Propagation de croyances dans des graphes cycliques
    Principes de l’inférence variationnelle
    Application à LDA
  7. Inférence approchée: échantillonnage
    Principe des méthodes d’échantillonage
    Application au mélangue de lois multinomiales
    Application à LDA
Statistical Learning Theory

Responsables : Arnak DALALYAN

Crédits : 4 ECTS

Syllabus :

The main purpose of this course is to introduce the mathematical formalism of the learning theory and to showcase its relations with more classical statistical theory of nonparametric estimation.

  • Presentation of 3 central problems: regression, binary classification, clustering or density estimation. Connection between these problems.
  • Universal consistency. Overfitting and underfitting. The Hoeffding inequality and empirical risk minimisation. Rademacher complexities.
  • Density estimation by histograms. Bias-variance decomposition and the rate of convergence over Holder classes.
  • Adaptive choice of the bandwidth by the method of estimated unbiased risk minimization. Local choice of the bandwidth by the Lepski method.
  • Nonparametric regression and sparsity. Thresholding Fourier coefficients.
Modèles à chaîne de Markov cachée et méthodes de Monte Carlo séquentielles

Enseignant : Nicolas Chopin – ENSAE – CREST

ECTS : 3

Syllabus :

Les modèles dits à chaîne de Markov cachée (ou à espace d’état), sont des modèles de séries temporelles faisant intervenir un ’signal’ (un processus X_t markovien décrivant l’état d’un système) observé de
façon imparfaite et bruitée sous forme de données, par ex. Y_t = f(X_t) + U_t.

Ces modèles sont très utilisés dans de nombreuses disciplines :

  • Finance : volatilité stochastique (X_t est la volatilité non-observée)
  • Ingénierie : pistage de cible (X_t est la position d’un mobile dont on essaie de retrouver la trajectoire ; reconnaissance de la parole ( X_t est un phonème)
  • Biostatistique : Ecologie (X_t = taille de la population)
  • Epidémiologie (X_t = nombre de personnes infectées)

Le but de ce cours est de présenter les méthodes modernes d’analyse séquentielle de tels modèles,
sur des algorithmes particulaires (Monte Carlo séquentiel). On traitera notamment les problèmes du
filtrage, du lissage, de prédiction, et d’estimation des paramètres. A la fin du cours, nous évoquerons
rapidement l’extension de tels algorithmes à des problèmes non-séquentiels, notamment en

Pré-requis :

cours 2A simulation et Monte Carlo, ou cours similaire Les cours de 3A de ’Statistique Computationnel-le’ et de ’Statistique Bayésienne’ sont conseillés mais non obligatoires.

Acquis de la formation :

A la fin du cours, l’étudiant sera en mesure :

  • d’énoncer les propriétés principales des modèles HMM
  • de mettre en oeuvre un filtre particulaire pour filtrer et lisser un modèle HMM donné
  • d’estimer les paramètres d’un tel modèle à partir de différentes méthodes


  • 1. Introduction : définition des HMM (Hidden Markov models), propriétés principales, notion de
    filtrage, lissage, et prédiction, formules forward-backward.
  • 2. HMM discrets, algorithme de Baum-Petrie
  • 3. HMM linéaire Gaussian, algorithme de Kalman
  • 4. Algorithmes SMC pour le filtrage d’un modèle HMM
  • 5. Estimation dans les modèles HMM
  • 6. Introduction aux applications non-séquentielles des algorithmes SMC

* Del Moral (2004). Feynman-Kac formulae, Springer.
* Cappé, Moulines and Ryden (2010) , Inference in Hidden Markov Models (Springer Series in

Statistique en grande dimension

Enseignant : Alexandre TSYBAKOV

Crédits : 4 ECTS


La statistique en grande dimension est un domaine récent développe au cours de la dernière décennie. Son objectif est de traiter les données nouvelles, telles que, pour chaque individu, on dispose d’un grand nombre de variables observées, qui est parfois plus grand que le nombre des individus dans l’échantillon. Bien évidemment, pas toutes les variables sont pertinentes et d’habitude il en existe très peu. La notion de parcimonie (sparsite) est donc fondamentale pour l’interprétation de données en grande dimension.

Le but de ce cours est de présenter quelques principes fondateurs qui émergent dans ce contexte. Ils sont communs a de nombreux problèmes apparus récemment, tels que la régression linéaire en grande dimension, l’estimation de grandes matrices de faible rang, ainsi que les modèles de réseaux, par exemple, les modèles stochastiques a blocs. L’accent sera mis sur la construction de méthodes optimales en vitesse de convergence et leurs propriétés d’oracle.


  • Modele de suite gaussienne. Sparsite et procedures de seuillage.
  • Regression lineaire en grande dimension. Methodes BIC, Lasso, Dantzig selector, square root Lasso. Proprietes d’oracle et selection de variables.
  • Estimation de grandes matrices de faible rang. Sparse PCA.
  • Inference sur les reseaux. Modele stochastique a blocs (stochastic bloc model).


  • C.Giraud. Introduction to high-dimensional statistics. Chapman and Hall, 2015.
  • A.B.Tsybakov. Apprentissage statistique et estimation non-parametrique. Polycopie de l’Ecole Polytechnique, 2014.
  • S.van de Geer. Estimation and testing under sparsity. Lecture Notes in Mathematics 2159. Springer, 2016.
Estimation non paramétrique

Responsable : Cristina BUTUCEA

Crédits : 4 ECTS



Big Data Frameworks

Responsable : Salim NAHLE

Crédits : 5 ECTS

Numerus clausus : 30



The objectives of this course are the following:

  • Discover the different components of a Big Data cluster and how they interact.
  • Understand Big Data paradigms.
  • Understand the benefits of open source solutions.
  • Develop a Big Data project from scratch
  • Master Spark, its data models and its different methods of operation
  • Learn how to use Spark to analyze data, develop Machine Learning pipelines and finally do streaming with Spark
  • Understand and implement distributed algorithms.
  • Understand the advantages of SQL/NOSQL databases.

Description of the course:

The module Big Data Frameworks is composed of two courses:

  • Big Data with Hadoop (27 hours)
  • Data Science with Spark (13 hours)

Big Data with Hadoop:

Apache Hadoop has been evolving as the Big Data platform on top of which multiple building blocks are being developed. This course presents the Hadoop ecosystem, Hadoop Distributed File System (HDFS) as well as many of the tools developed on it:

  • MapReduce and YARN
  • Hive and HBase
  • Kafka, Flume, NiFi, Flink, Oozie, etc.

Students will also discover various subjects such as security, resource allocation and data governance in Hadoop

Data Science with Spark:

Apache Spark is rapidly becoming the computation engine of choice for big data. This course presents:

  • Spark’s architecture and Spark Core: RDDs (Resilient Distributed Datasets), Transformations, and Actions
  • Spark and Structured Data: explore Spark SQL and Spark Data Frames
  • Spark Machine Learning libraries (MLLIB and ML)
  • Spark Streaming


Java, Python, Machine Learning and basic knowledge in Linux system administration and SQL


The final mark of the module is a weighted average of 2 marks:

  • Big Data with Hadoop (weight 2)
  • Data Science with Spark (weight 1)

Each course is evaluated by a midterm exam (coefficient 0.3, 1 hour) and a continuous evaluation (coefficient 0.7, labs and mini-projects).


Convex analysis, monotone operators and optimization

Responsables : Pascal BIANCHI, Olivier FERCOQ et Walid HACHEM

Crédits : 5 ECTS

Syllabus :


– Maîtriser les outils mathématiques pour la construction d’algorithmes d’optimisation convexe.
– Savoir démontrer la convergence des itérées.
– Savoir résoudre numériquement des problèmes d’optimisation comportant des termes de régularisation non dérivables et structurés.
– S’initier à l’optimisation distribuée et la programmation sous Hadoop Spark.

Descriptif du cours

Le cours n’a PAS vocation à fournir un répertoire d’algorithmes le plus abondant possible. Il s’agit de prendre du recul afin de comprendre les fondements mathématiques pour la construction d’une vaste classe de méthodes itératives. Après une introduction à la théorie de l’analyse convexe, nous verrons les conditions sous lesquelles on peut démontrer la convergence d’un algorithme du point fixe. Cette approche générale permet de d’obtenir, comme corollaire, la convergence de l’emblématique algorithme du gradient proximal. Elle permet également de construire d’autres algorithmes plus généraux : les méthodes primales-duales. 
Ces méthodes permettent de résoudre des problèmes d’optimisation comportant des régularisations complexes et structurées, ou des problèmes d’optimisation sous contraintes. De tels problèmes se rencontrent fréquemment en apprentissage statistique, traitement du signal, et traitement de l’image.

Sur le plan pédagogique, un juste compromis entre fondements théoriques et applications est visé. Deux TP permettront de mettre en application les méthodes numériques vues en cours. Ils incluent une initiation à l’optimisation distribuée et grande échelle, sous Hadoop Spark.

Prérequis : pas de prérequis à l’exception des connaissances élémentaires en analyse convexe : fonctions et ensembles convexes, minimiseurs. Le premier cours est consacré à des rappels.

Note finale : 3/4 examen (3h), 1/8 travail en séance de TP, 1/8 compte-rendu de TP.

Systems for Big Data Analytics

Responsable : Yanlei DIAO

Crédits : 5 ECTS

This course covers the fundamental design principles of influential software systems for Big Data Analytics. The course begins with the design principles of relational database systems for business data processing, including declarative querying, algorithm design, and query optimization,  as well as the extensions to online analytic processing and data mining. The course then examines fundamental architectural changes to scale data processing beyond the limit of a single server, including parallel databases,  MapReduce, distributed key-value stores, iterative analytics and Machine Learning using Spark, and scalable stream analytics. Lab sessions and homework assignments will be conducted using the Microsoft Azure Cloud.

  • WEEK 1: Relational Model, Relational Algebra, SQL, PostgreSQL in Azure Cloud
  • WEEK 2: Relational Calculus and SQL
  • WEEK 3: Disk, Files, and Indexes
  • WEEK 4: Evaluation of Relational Operators
  • WEEK 5: Query Processing and Optimization
  • WEEK 6: Data Warehouses Lesson
  • WEEK 7: Introduction to Spark for Scalable Analytics
  • WEEK 8: Parallel Databases and MapReduce Systems
  • WEEK 9: Key Value Stores and Scalable Machine Learning
  • WEEK 10: Streaming Analytics
Visualization and Visual Analytics for Data Science

Responsables : Jean-Daniel Fekete (Inria), Juliana Freire (NYU), Petra Isenberg (Inria), and Claudio Silva

ECTS : 4

Syllabus :

Visualization plays an important role in Data Science for allowing humans to make sense of data and its analyses. Will present the principles underlying visualization, related to perception, cognition, but also to design for the construction of effective visual representations and interaction techniques to allow practitioners to make sense of complex data, extract insights, and sometimes discover unexpected information from the data.

In a second part, we will show how visualization can be used in combination with large databases and machine learning to help understanding higher-level phenomena, such as debugging complex machine-learning models, understanding the behavior of deep-learning systems, and exploring data at scale. The course will highlight principles and theories, and showcase many examples, as well as practical techniques and tools.

2nde période (Janvier-Avril)

Enseignements facultatifs (minimum 20 ECTS au choix… de préférence plus pour compenser crédits manquants)

Apprentissage en ligne et Agrégation

Responsable : Pierre ALQUIER

Crédits : 4 ECTS


  • bien comprendre les différents modèles et contextes de prédiction en ligne (prédiction séquentielle, problème de bandit, transfer learning…);
  • comprendre et savoir implémenter l’algorithme de gradient en ligne ; comprendre le fonctionnement de l’agrégation à poids exponentiels.
  • être capable de comprendre un article de recherche sur la problématique de la prédiction en ligne.

Descriptif du cours

Ce cours constitue une introduction à l’apprentissage en-ligne, c’est-à-dire quand les données sont révélées au fur et à mesure du processus d’apprentissage plutôt que sous la forme d’un échantillon donné une fois pour toutes. Après une rapide introduction aux méthodes incontournables (halving, online gradient), on s’intéressera aux méthodes d’agrégation. L’idée de base est, étant donné plusieurs prédicteurs, de les faire voter en leur attribuant des poids spécifiques plutôt que d’en choisir un seul. Ces méthodes permettront des résultats optimaux dans des conditions extrêmement générales.

Dans un second temps, on reviendra au cadre d’apprentissage “batch” ou “off-line” plus classique: on verra que les méthodes d’agrégation proposées précedemment peuvent également s’utiliser dans ce cas. On discutera également les différents algorithmes possibles pour implémenter ces méthodes: MCMC et méthodes variationnelles.

A la fin du cours, on étudiera des contextes un peu moins standards, comme les problèmes de bandits (où l’on a qu’une information partielle sur l’effet de chaque décision prise) et les problèmes de transfer learning et lifelong learning, qui permettent de réutiliser l’information acquise en résolvant un problème statistique pour en résoudre de nouveaux.

Deux ou trois séances seront dédiées à l’implémentation en R ou Python des algorithmes vus en cours et à leur test sur des jeux de données. Le cours sera évalué par un court projet (résumé d’un article de recherche, implémentation éventuelle des méthodes proposées dans l’article).


Les concepts de base en algèbre linéaire et en analyse convexe. Surtout, une connaissance raisonnable de la théorie des probabilités.

Note finale

Soutenance orale d’un projet.

Introduction mathématique au compressed sensing

Responsable : Guillaume LECUÉ

Crédits : 4 ECTS


L’objectif de ce cours est d’étudier des problèmes de statistiques en grandes dimensions afin de dégager trois idées fondamentales de cette thématique qui pourront par la suite être appliquées dans de nombreux autres problèmes liés aux sciences des données. Nous énonçons brièvement ces principes :

  1. Un grand nombre de données réelles appartiennent à des espaces de grandes dimensions dans lesquels les méthodes classiques de statistiques sont inefficaces (cf. fléau de la dimension). Néanmoins ces données sont pour la plupart d’entre elles structurées. Si bien que la “vraie” dimension du problème n’est plus celle de l’espace ambiant mais plutôt celle de la structure qui contient l’information utile des données. On parle de données structurées ou parcimonieuses. La construction de bases ou dictionnaires permettant de révéler les structures de faible dimension de ces données est une composante importante de la statistique en grande dimension.
  2. En première approche, la recherche de ces structures de faible dimension semble nécessiter le lancement d’une recherche combinatoire dans un espace de grande dimension. De telles procédures ne peuvent pas être utilisées en pratique. Une composante importante de la statistique en grande dimension est alors de proposer et d’analyser des algorithmes qui peuvent être implémentés même dans des espaces de grande dimension. Pour cela, deux approches ont reçu une attention particulière : la relaxation convexe (couplé à la boîte à outils de l’optimisation convexe) et les algorithmes itératifs qui permettent de résoudre parfois des problèmes d’optimisation non-convexe.
  3. Finalement, la troisième composante est le rôle joué par l’aléatoire dans la statistique en grande dimension. Il s’avère que les structures de faibles dimensions sont généralement révélées par des objets aléatoires et que, jusqu’à maintenant, on ne sait pas exhiber ces structures à l’aide de mesures déterministes aussi efficacement que le font, par exemple, les matrices aléatoires.

Descriptif du cours

Un cours de statistiques en grande dimension peut donc couvrir plusieurs pans des mathématiques dont la théorie de l’approximation, l’optimisation convexe et les probabilités. Dans ce cours, nous étudierons principalement l’aspect algorithmique et probabiliste de cette théorie. La théorie de l’approximation ne sera que très brièvement abordée au travers de l’exemple des images.

Ce cours abordera le paradigme de la statistique en grande dimension principalement autour de trois thématiques :

  1. problème de reconstruction exacte et approchée d’un signal de grande dimension à partir d’un petit nombre de mesures linéaires de ce vecteur sachant qu’il a un petit support;
  2. complétion de matrice / système de recommandation : comment compléter une matrice à partir de l’observation d’un petit nombre de ses entrées sachant que cette matrice est de faible rang;
  3. détection de communauté dans les graphes : trouver les sous-graphes de forte densité dans des ‘grands’ graphes.

Nous abordons donc le problème de la statistique en grande dimension au travers de trois objets/ types de données clefs pour la science des données : les vecteurs de grande dimension mais parcimonieux, les matrices de grande taille mais de faible rang et finalement, les graphes de ‘grande’ taille dont les noeuds sont organisés en communautés.

Le problème de Compressed Sensing sera utilisé comme le principale vecteur pédagogique pour l’apprentissage des trois idées clefs de la statistique en grandes dimensions mentionnés précédemment. On y consacrera donc 8 séances divisées comme suit : 5 séances de cours, 2 séances d’exercices et 1 séances de pratiques informatiques. Puis nous consacrerons les 4 dernières séances aux problèmes de complétion de matrices et de détection de communautés: 1 séance de cours/exercices et 1 séance d’informatique pour chacune des deux thématiques.

D’un point de vue des techniques mathématiques nous mettrons l’accent sur les thématiques suivantes :

  1. concentration de variables aléatoires et calcul de complexité;
  2. méthodes et analyse d’algorithmes en optimisation convexe.

Les séances de travaux pratiques informatiques s’effectueront en Python. On mettra particulièrement l’accent sur les librairies sklearn, cvxopt/cvxpy et networkx.


Pas de prérequis à l’exception des connaissances élémentaires en algèbre des matrices, analyse convexe et probabilités.

Note finale

1 mémoire sous forme de texte ou de notebook python commenté + soutenance par binôme.

Méthodes géométriques en Machine Learning

Responsable : Marco CUTURI (marcocuturi.net)

Crédits : 3 ECTS

Syllabus :


This course will present recent methodological advances in machine learning that all have in common that they rely
on geometric principles, and particularly on the idea that data analysis can be carried out using pairwise comparisons
between data points. We will cover in particular the cases where such pairwise comparisons are distances or kernel
similarities. The course will answer the following questions:

  1. Visualization of metric data: how can we represent and visualize data that is available under the form of a matrix
    of pairwise distances or similarities?
  2. Learning metrics: Given a task at hand (notably classification), how can we choose a "good" metric or kernel to
    improve the performance on that task?
  3. Metrics and kernels for exotic data-types (e.g. text, sequences, time-series, shapes, histograms): how can we
    choose a metrics or a kernel that performs well in supervised tasks? How can we ensure that they can be seamlessly
    used in a learning problem (e.g. auto-differentiated with modern frameworks such as tensorflow or pytorch)?


  1. (4 lectures) Introduction, motivating examples in applied literature. Reminders on kernels and distances, k-NN
    classifiers, Hilbert/Metric spaces, Positive / negative definiteness, kernel methods & representer theorem, SVM.
  2. (4 lectures) Dimensionality reduction and visualization techniques for geometric data: Johnson-Lindenstrauss,
    (kernel)-PCA, (metric) multidimensional scaling, isomap, LLE, t-SNE, extensions to (variational) autoencoders,
    Embeddings using co-occurrence data: word embeddings.
  3. (2 lectures) Learning metrics. LMNN and other metric learning algorithms. Multiple kernel learning.
  4. (4 lectures) . Metrics and kernels for structured data: Fisher kernels, kernels for
    strings/sequences/texts,  DTW/edit-distances for time-series, Distances/kernels on the simplex, Wasserstein and
    Gromov-Wasserstein metrics, Automatic differentiation of these metrics.

Note: Lectures will be taught in english if non-french speakers register to the course, french otherwise.


Schölkopf, Bernhard, Alexander Smola, and Klaus-Robert Müller. “Nonlinear component analysis as a kernel
eigenvalue problem.” Neural computation10.5 (1998): 1299-1319.

Tenenbaum, Joshua B., Vin De Silva, and John C. Langford. “A global geometric framework for nonlinear
dimensionality reduction.” science290.5500 (2000): 2319-2323.

Roweis, Sam T., and Lawrence K. Saul. “Nonlinear dimensionality reduction by locally linear
embedding.” Science 290.5500 (2000): 2323-2326.

Maaten, Laurens van der, and Geoffrey Hinton. “Visualizing data using t-SNE.” Journal
of MachineLearning Research 9.Nov (2008): 2579-2605.

Davis, Jason V., et al. “Information-theoretic metric learning.” Proceedings of the 24th international conference
on Machine learning. ACM, 2007.

Weinberger, Kilian Q., and Lawrence K. Saul. “Distance metric learning for large margin nearest neighbor
classification.” Journal of Machine Learning Research 10.Feb (2009): 207-244.

Aurélien Bellet, Amaury Habrard, Marc Sebban:
Metric Learning. Synthesis Lectures on Artificial Intelligence and Machine Learning, Morgan & Claypool
Publishers 2015

Kulis, Brian. “Metric learning: A survey.” Foundations and Trends in Machine Learning 5.4 (2012): 287-364.

Cuturi, Marco, et al. “A kernel for time series based on global alignments.” 2007 IEEE International Conference
on Acoustics, Speech and Signal Processing-ICASSP'07. Vol. 2. IEEE, 2007.

Villani, Cédric. Optimal transport: old and new. Vol. 338. Springer Science & Business Media, 2008.

Mémoli, Facundo. “Gromov–Wasserstein distances and the metric approach to object matching.” Foundations
of computational mathematics 11.4 (2011): 417-487.


Apprentissage et optimisation séquentiels

Responsable : Gilles STOLTZ

Crédits : 5 ECTS


  • Connaître le cadre des bandits stochastiques à nombre fini de bras, et le cadre de la prévision de suites arbitraires par agrégation de prédicteur
  • Maîtriser les techniques de preuves de bornes inférieures sur le regret
  • Maîtriser les techniques de preuves de bornes supérieures sur le regret

Descriptif du cours

Ce cours est un cours très technique, centré sur les preuves mathématiques ; aucune programmation d’algorithmes ne sera proposée, uniquement des preuves, parfois longues et douloureuses. L’objectif est d’apprendre à poser et modéliser un problème d’apprentissage séquentiel, d’exhiber des algorithmes si possible computationnellement efficaces pour majorer le regret, et de montrer ensuite l’optimalité des bornes obtenues, en prouvant qu’aucun autre algorithme ne peut faire mieux en un sens à préciser.

Cette démarche (modélisation, algorithme pour la borne supérieure, borne inférieure universelle) est la démarche canonique pour publier des résultats sur un problème donné. Nous verrons également comment rédiger élégamment des preuves. Ce cours est donc fort intéressant pour ceux qui se destinent à une thèse de mathématiques (et ceux-là uniquement).


  • Une maîtrise et du recul sur les sujets suivants (attention, avoir suivi juste quelques heures de cours sur ces sujets n’est pas suffisant)
  • Théorie de la mesure (ex : lemme de la classe monotone, théorème de Radon-Nykodym) 
  • Théorie de l’intégration (ex : théorèmes de Fubini)
  • Calcul des probabilités (ex : espérances conditionnellement à un vecteur de variables aléatoires) 
  • Théorie des martingales (ex : théorèmes de Doob pour les sur- ou sous-martingales) 
  • Notions élémentaires de statistique (ex : intervalles de confiance non-asymptotiques à la Hoeffding) 
  • Eléments de théorie de l’information idéalement (ex : divergence de Kullback-Leibler, lemme de Pinsker)

Note finale 

La validation du cours se fera par un examen en temps quasi-illimité (9h – 20h), sans doute en avril (attention aux conflits avec les dates de stage). Il n’est pas possible de remplacer l’examen par un projet, ce cours étant théorique. Attention, l’examen a été jugé difficile à passer par les étudiants des années précédentes.

Deep learning

Responsables : Charles OLLION et Olivier GRISEL

Crédits : 5 ECTS

English version below

Initiation pratique à l’apprentissage profond

Le Deep Learning (Apprentissage Profond en Français) a bénéficié d’une forte visibilité dans le monde de l’apprentissage automatique, grâce notamment aux progrès rapides et importants dans la reconnaissance vocale, la vision par ordinateur, et le traitement automatique du langage naturel. Cette branche du machine learning a suscité des investissements importants de la part des géants de l’internet tels que Google, Microsoft, Facebook et IBM.

C’est également en grande partie grâce à l’apprentissage profond que le programme AlphaZero a pu battre les champions de Go et les meilleurs programmes d’échecs en fin 2017.

Le Deep Learning permet de construire des modèles prédictifs hiérarchiques appelés réseaux de neurones artificiels. Grâce à leur structure, ces réseaux construisent automatiquement des représentations de plus en plus abstraites des données.

L’avènement de ces techniques a été rendu possible par le Big Data – grand volume de données pour l’apprentissage ; par la rapide croissance des capacités de calcul, notamment grâce aux GPUs ; et enfin par la meilleure compréhension des techniques d’optimisation des réseaux de neurones.


Ce cours couvre les techniques pratiques d’optimisation des réseaux de neurones profonds. Il permettra aux étudiants d’être opérationnels pour l’étude et la mise en place de modèles d’apprentissage avancés sur des données complexes, grâce à aux techniques et outils suivants:

  • Bibliothèques Numpy, TensorFlow, Keras

  • Techniques d’optimisation, de transfert et de régularisation

  • Connaissance des architectures classiques et à l’état de l’art

En particulier les étudiants mettront en œuvre ces méthodes pour les applications suivantes :

  • l’analyse de l’image grâce aux réseaux de convolution profonds ;

  • l’analyse du langage par l’apprentissage non supervisé de représentations de mots et les réseaux récurrents ;

  • une ouverture sur d’autres applications tels que les moteurs de recommandation, les modèles génératifs, …

Public visé et prérequis

Ce cours s’adresse aux étudiants ayant déjà étudié le Machine Learning. Il est composé de nombreux travaux pratiques sur machine (prévoir un ordinateur portable).

Les prérequis techniques sont langage python (notamment sous jupyter, notions de numpy et scikit-learn).

Modalités de contrôle

Contrôle continu en début de session travaux pratiques, et évaluation finale sur machine.


Practical introduction to deep learning

Deep Learning has become a widely used term in the world of artificial intelligence, thanks to rapid and significant advances in voice recognition, computer vision, and natural language processing. This branch of machine learning has attracted significant investment from the internet giants such as Google, Microsoft, Facebook and IBM.
The AlphaGo program that could beat the champion Lee Sedol in March 2016 included a significant Deep Learning component.

Deep Learning algorithms attempt to model high level abstractions in data using an artificial neural networks. Thanks to their hierarchical structure, these networks automatically construct increasingly abstract representations of data.
The advent of Deep Learning was made possible by Big Data – large amounts of data for learning; rapid growth of computing power thanks to GPUs; and finally by the better understanding of the neural network optimization techniques.


This course covers practical techniques of optimization deep neural networks. Students will be able study and implement advanced learning models on complex data, through the following techniques and tools:

  • Libraries Numpy, TensorFlow, Keras

  • optimization techniques, transfer and regularization

  • Understanding of classical model architecture and state of the art

In particular, students will implement methods for the following applications:

  • Image analysis through deep convolutional networks;

  • language analysis by unsupervised learning of representations of words and recurrent networks;

  • other applications such as recommendation engines, generative models …

Audience and prerequisites

This course is for students who have already studied Machine Learning. It consists of many practical sessions (laptop required).
The technical prerequisites are Python language (especially in jupyter, concepts and numpy scikit-learn).

Methods of control

Continuous assessment at the beginning of practical work session, and final evaluation (coding session).

Structured Data: Learning, Prediction Dependency, Testing

Responsable : Florence d’ALCHÉ-BUC, Slim ESSID et Zoltàn SZABO.

Crédits : 5 ECTS


To master the mathematical tools for learning and prediction tasks, estimation of dependency measures, and hypothesis testing on structured domains.

Description of the course

Many real-world applications involve objects with an explicit or implicit structure. Social networks, protein-protein interaction networks, molecules, DNA sequences and syntactic tags are instances of explicitly structured data while texts, images, videos, biomedical signals are examples with implicit structure. The focus of the course is solving learning and prediction tasks, estimation of dependency measures, and hypothesis testing under this complex/structured assumption.

While in learning and prediction problems the case of structured inputs has been investigated for about three decades, structural assumption on the output side is a significantly more challenging and less understood area of statistical learning. The first part of the course provides a transversal and comprehensive overview on the recent advances and tools for this exploding field of structured output learning, including graphical models, max margin approaches as well as deep learning. The covered methods can be categorized into two sub-classes: scoring and energy-based techniques, and structured output regression algorithms.

The second part of the course gives an alternative view on the structured problem family, dealing with topics on dependency estimation and hypothesis testing. Emerging methods in these fields can not only lead to state-of-the-art algorithms in several application areas (such as blind signal separation, feature selection, outlier-robust image registration, regression problems on probability distributions), but they also come with elegant performance guarantees, complementing the regular statistical tools restricted to unstructured Euclidean domains. We are going to construct features of probability distributions which will enable us to define easy-to-estimate independence measures and distances of random variables. As a byproduct, we will get nonparametric extensions of the classical t-test (two-sample test) and the Pearson correlation test (independence test).


The course requires a basic knowledge of kernel methods, graphical models, deep learning, optimization and functional analysis.


Project. Topics: link prediction, image/document understanding, drug activity prediction, molecule prediction, functional prediction, information theoretical optimization (including two-sample and independence testing).

Data stream Processing

Responsables : Jérémie Sublime, Raja Chiky & Alexis Bondu

Crédits : 3 ECTS


  • Introduction aux concepts autour des flux de données (data stream)
  • Introduction et pratique sur les systèmes de gestion de flux de données (DSMS: Data Stream Management Systems)
  • Techniques de résumés de flux de données (échantillonnage, sketch, etc.)
  • Techniques et technologies d’apprentissage pour les flux de données massives avec mise en pratique

Descriptif du cours

Ce cours s’articule autour de techniques permettant le traitement et l’analyse de grands flux de données. Il s’agit de prendre du recul afin de comprendre les spécificités et problématiques de ce type de données, les différents types de streams existants, quels sont les modèles théoriques existants pour les modéliser, et quels outils existent pour les traiter en théorie et en pratique.

Après la présentation théorique de ce que sont les flux de données, le cours aborde la problématique des flux de données sous deux angles :

  • Une approche théorique sur l’adaptation d’algorithmes de Machine Learning et de Data Mining pour traiter de telles données, avec toutes les problématiques qui y sont liées : traitement en temps réel, traitement en une seule passe, et échantillonnage de données.
  • Une approche pratique présentant les technologies, logiciels et systèmes de management utilisés pour gérer de telles données.

Sur le plan pédagogique, le cours comportera 6 séances de cours et TP en alternance, suivie par une 7ème séance consacrée à la présentation d’articles scientifiques récents sur le sujet du Data Streaming.


  • SQL de base
  • Bases en programmation Java recommandées
  • Notions de Machine Learning (apprentissage supervisé et non-supervisé)

Note finale

2/3 de contrôle continu en TP et 1/3 présentation d’un article scientifique.

Optimisation et Statistique

Responsable : Francis BACH

Crédits : 5 ECTS


De nombreux problèmes d’estimation en apprentissage statistique sont formulés comme des problèmes d’optimisation. Ces formulations ont permis une separation entre l’analyse des performances de l’estimateur et le développement d’algorithmes de résolution du problème. Face aux grands volumes de données, une telle séparation n’est plus efficace et l’analyse doit mêler statistique et optimisation. Dans ce cours, seront présentés de manière unifiée les résultats statistiques classiques sur la M-estimation et l’optimisation convexe, en montrant les liens entre statistique et optimisation. Un accent sera mis sur l’analyse non-asymptotique de l’approximation stochastique.


  • Maîtriser les outils mathématiques pour l’analyse d’algorithmes de gradient stochastique.
  • Comprendre les liens entre les propriétés de convergence des algorithmes et la régularité du problème sous-jacent (comme la convexité forte).
  • Savoir démontrer les différents résultats présentés.


Pas de prérequis à l’exception des connaissances élémentaires en analyse convexe (fonctions et ensembles convexes), en probabilités (espérance conditionnelle et outils simples de grandes déviations) et statistique (regression linéaire et logistique).

Note finale

  • (a) Présence en cours obligatoire,
  • (b) TPs simples d’implémentation des principaux algorithmes (20%),
  • (c) Présentation d’article (80%).
Estimation Bayésienne

Responsable : Vincent RIVOIRARD

Crédits : 5 ECTS

Numeros clausus : 10 étudiants

Prérequis obligatoire

  • statistique bayésienne paramétrique,
  • régression non-paramétrique à noyau,
  • théorèmes de convergence en proba (début Billingsley)
Datascience pour l’AdTech

Responsable : Cyrille DUBARRY

Crédits : 2.5 ECTS

Présentation du domaine

Le monde de la publicité en ligne a été révolutionné il y a quelques années par l’apparition des technologies d’enchère en temps réel, connues sous leur dénomination anglaise Real-Time Bidding (RTB). Ces enchères permettent l’achat d’espaces publicitaires à la granularité la plus fine : impression par impression. A chaque visite d’un utilisateur sur un site de contenu, chaque annonceur peut choisir de lui afficher ou non une publicité et déterminer le prix maximum qu’il est prêt à payer pour cette opportunité. Une des conséquences est le besoin d’automatisation et d’optimisation pour les acteurs connectés au RTB et de nombreuses solutions font naturellement appel au Machine Learning. Ce sont ces solutions que ce module se propose d’explorer, tant d’un point de vue théorique que pratique…

Objectifs pédagogiques

A l’issue de ce module, les étudiants connaîtront les challenges du monde de l’AdTech et sauront identifier les problèmes auxquels le Machine Learning peut apporter une solution. Des cas pratiques seront donnés en réflexion afin de comprendre comment passer d’une problématique business à un problème de Machine Learning identifié. La réflexion ira jusqu’à l’analyse finale afin de prouver que la solution proposée était bien la bonne.

Plus généralement, l’accent sera mis sur le fait que le métier de Data Scientist ne se limite pas à la mise en place d’algorithmes de prédiction ou de classification.


L’évaluation se fera par l’utilisation du Machine Learning pour analyser un jeu de données fourni par Teads.tv.

  • Jour 1 : Introduction à l’AdTech et aux systèmes d’enchère
  • Jour 2 : Machine Learning pour le calcul du bid – Choix d’algorithmes et tuning
  • Jour 3 : Evaluation de modèles online (AB-testing) et offline
  • Jour 4 : Infrastructure et Big Data
  • Jour 5 : Autres applications du Machine Learning à l’AdTech
Machine Learning, Business case

Responsables : Cyril VERON et Nicolas EID

Crédits : 5 ECTS

Syllabus :

Le cours de Machine Learning Business Case est un cours dédié à la mise en place de projet complet
de Data Science : 

  • Lors de cet UE, vous développerez en groupe des applications de Machine Learning pour répondre à des préoccupations Business des entreprises : cadrage du Business Case, exploration et nettoyage des données, choix de l’approche scientifique, implémentation numérique d’algorithmes d’apprentissage, analyse des performances, interprétation des travaux, pitch des résultats, etc.
  • L’animation du cours suscite et encourage la participation de tous les étudiants, le travail en équipe et l’intelligence collective.
  • La validation du cours s’effectuera au travers d'un projet Data Science réalisé en groupe.
Recherche opérationnelle et données massives

Responsables : ALES Zacharie & CARPENTIER Pierre

Crédits : 2,5 ECTS

Numerus clausus : 10 (sans compter les étudiants ENSTA).

Syllabus :

Première partie : Introduction à la recherche opérationnelle

  • Algorithmique  des  graphes
  • Programmation linéaire
  • Programmation linéaire en nombres entiers

Seconde partie : RO et données massives

I – Approche d’optimisation discrète pour la classification associative Présentation et  implémentation d’une méthode de  classification basée sur  la   résolution  exacte  de  problèmes   d’optimisation  discrète
permettant l’obtention d’un classifieur performant et interprétable.

II – Algorithmes pour les grands graphes de terrain :
Comment classer des pages web par popularité ? Comment constituer des listes d’amis automatiquement sur Facebook ? Quels produits recommander à un utilisateur sur Amazon ? Nous verrons quelques algorithmes de graphe et comment les implémenter pour qu’ils passent à l’échelle (1G liens sur un laptop).

Optimisation non différentiable et méthodes proximales

Enseignant : Pierre CARPENTIER

Crédits : 2,5 ECTS


L’objectif de ce cours est de présenter les algorithmes de résolution des problèmes d’optimisation non différentiables. Le cours fait appel à de nombreux exemples d’application et met en évidence la nécessité de prendre spécifiquement en considération le caractère non différentiable des problèmes.

La première séance est consacrée à l’exposé des principales propriétés des fonctions sous-différentiables, dans le cadre de l’analyse convexe, avec des exercices destinés à l’apprentissage de la manipulation de ces outils. Les trois séances suivantes présentent les algorithmes en optimisation sous-différentiable, leurs applications dans le cadre de la relaxation lagrangienne ainsi que les méthodes proximales et leur utilisation en dualité. Elles sont suivies de travaux pratiques en Julia.

High dimensional matrix estimation

Responsable : Karim LOUNIC

Crédits : 2,5 ECTS

Syllabus :

In several high-dimensional problems, the information of interest take the form of a high-dimensional matrix with a low statistical complexity structure. In multivariate regression applications such as multitask collaborative filtering and recommender systems, we can measure the statistical complexity of the information matrix through group sparsity or the rank. In Principal Component Analysis, the goal is to learn the covariance structure of a high-dimensional random vector. In this problem, the statistical complexity is better quantified by the effective rank.

The goal of this course is to highlight how the complexity structure of a matrix conditions the design and the theoretical analysis of an estimation procedure. To this end, we will introduce several tools: oracle inequalities, minimax theory and concentration inequalities.

Program of the course:

  1. Multi-task regression
  2. Trace regression and matrix completion
  3.  Covariance matrix estimation and Principal Component Analysis

Prerequisites: Basis knowledge of probability and optimization.

Final grade: Project

Cours Projet Big Data & Assurance

Responsable : Denis OBLIN

Crédits : 2,5 ECTS

Syllabus :

Le but du cours est de présenter la construction d’un projet data dans le secteur de l’assurance.

L’accent sera mis sur les difficultés rencontrées :

  • captation des données
  • questions organisationnelles et relationnelles entre directions,
  • maturation des besoins derrière l’intuition initiale
  • coaching des datascientists en dehors de leur code

Des professionnels pourraient partager leur retour d’expérience sur la mise en place de projets Big Data dans leur entreprise.

Les points abordés lors du cours seront :

  • Assureurs : quel patrimoine de données aujourd’hui ?
  • Les 3 étages de la valorisation de l’entreprise par les données (opérationnel, nouveaux
    services, nouveau business model), valorisation niveau opérationnel : tour d’horizon
    d’utilisation de la data, direction par direction dans une compagnie d’assurance, autres
    niveaux de valorisation : tour d’horizon des start up insurtech et leur exploitation de la
    donnée (alan, simply, …)
  • Quelle organisation data ? faut-il un datalab ? comment le piloter ?
  • Big Data / actuariat : complémentarité ou concurrence ? comment les rapprocher ?
  • Que dit le droit sur l’utilisation des données : RGDP, pack assurances de la CNIL, directive
    distribution assurances, … ?
  • Ce que les objets connectés changent pour l’assurance : relation client, évaluation du risque,
    nouvelle matière assurable, assurance courte durée.
Infrastructure de données

Enseignant : Nicolas TRAVERS (ESILV)

Crédits : 2.5 ECTS


Le cours “infrastructure de données” a pour but de décrire la manière de modéliser les données et de les distribuer de manière efficace dans une infrastructure distribuée dédiée à la gestion de données à large échelle.

En passant par des techniques de dénormalisation, d’optimisation de requêtes via sharding et indexation, l’étude des contraintes des systèmes d’information (cohérence, persistance, distribution, etc.), l’étude des solutions existantes et de leur spécificités, le cours permettra à l’élève d’intégrer l’éco-système NoSQL pour la gestion de données et de faire son choix d’infrastructure de données adéquate en fonction de ses propres besoins d’interrogation.

En détails :

  • Panorama des bases de données distribuées
  • Placement des données et Sharding – HDFS, Clustered index, Consistent Hashing
  • Modélisation de données – Relationnel => orienté colonnes / documents / graphes
  • Méthode pour la dénormalisation et modèle de coût NoSQL
  • Mise en pratique :
    • Mongodb – interrogation, distribution, indexation, plan d’exécution
    • Cassandra – idem
    • Neo4j – idem

MCC : Examen écrit, tout document autorisé et ordinateur non connecté.


Stage obligatoire d’une durée minimum de 14 semaines à compter du mois d’avril.