L'objectif du cours est de mettre en pratique les techniques d'apprentissage automatique sur des données réelles et de se familiariser avec certains outils informatiques (Python, panda, scitkit-learn). Le cours est articulé autour d'un projet (en équipe de deux) sur des jeux de données réalistes, avec un suivi continu par “office hours” avec un chargé de TD, et quelques amphis communs (introduction et évaluation des projets).
Responsable du cours: Simon Lacoste-Julien
Encadrant: Fajwel Fogel
Horaires: Le premier cours magistral est le 20 novembre 2014. L’évaluation finale est le lundi 30 mars 2015.
Office hours: le suivi se fait par Fajwel par “office hours” les lundis de 10h à 11h (en général, sauf exception: toujours vérifier le calendrier MASH).
Il faut prendre rendez-vous préalablement en utilisant le système de réservation ici.
Lieu: l'Université de Paris-Dauphine — vérifier le local pour chaque scéance en consultant le calendrier MASH.
jeudi 20 novembre 10h-12h: Cours d'intro par Simon – diapos
jeudi 27 novembre 10h-12h: TD intro à python et scikit-learn par Fajwel – diapos
lundi 1er décembre 10h-12h: OH obligatoire (prendre rendez-vous avec Fajwel)
jalon: avoir formé son équipe et venir avec quelques pistes de projet à discuter avec Fajwel
mercredi 17 décembre 10h-12h: OH obligatoire (prendre rendez-vous avec Fajwel)
jalon: Avoir choisi son sujet de projet; envoyer par mail à Simon et Fajwel un résumé de 1 page du projet choisi et de votre stratégie initial (mettre le terme [MASH] dans le sujet du mail)
à partir du lundi 5 janvier chaque semaine: OH optionnelle de 10h-11h
Avec exceptions (par exemple, pas le 12 janvier) – voir calendrier MASH
lundi 16 février 10h-12h
jalon: Présentation de 10 minutes devant la classe (+5 minutes de question) pour chaque équipe sur l’état du projet (problème, approche, résultats préliminaires).
lundi 30 mars 10h-12h: évaluation finale
Remettre un rapport écrit sur le projet d'environ 5 pages.
Session poster (8 pages A4); 10 minutes de présentation évaluée.
The Elements of Statistical Learning, Hastie, Tibshirani & Friedman – gratuit en ligne!
Data Mining, Witten, Frank & Hall.
Pattern Classification, Duda, Hart & Stork.
Voici quelques suggestions de projets. Vous pouvez aussi proposer votre propre projet. Entre autres, il y a beaucoup d'autres possibilités sur le site de compétition Kaggle. L'important est que les données soient assez réalistes, et que vous puissiez apprendre avec le projet.
Nous avons la chance d'avoir la collaboration de Anne Guérin, directrice d'opérations marketing de la compagnie 1000mercis, pour le master MASH. Elle a accepté d’être contactée par mail (anne@1000mercis.com) pour des questions sur les données et les objectifs pour ces projets (à utiliser avec parcimonie). Pour avoir accès aux données, une équipe doit premièrement avoir confirmé qu'elle a choisi ce projet; 1000mercis procédera alors à l'extraction des données (l’équipe peut suggérer d'autre attributs à extraire préalablement) et les distribueront via un accès sftp seulement à l’équipe concernée.
On étudie les visiteurs d’un site e-commerçant ; ils ont des parcours divers et variés ; on se demande lesquels sont les plus intéressants pour nous, à toucher en priorité, pour des campagnes spécifiques.
Identifiant de l’individu, date, URL de la page, type de page (catégorie, produit,…), informations complémentaires (ID du produit, composition du panier,…) + catalogue si disponible. Données de conversion dans le passé. La définition des features sur lesquelles apprendre fait partie intégrante du problème.
un score pour chaque individu
AUC pour un évènement de conversion intervenant dans une fenêtre temporelle de X jours après identification de l’individu.
Si bonne performance du projet, possibilité de mettre en pratique et de voir performance réelle (en terme de taux de clics, de visite de produit, etc.).
On étudie les données d’exposition par bannière publicitaire ; on se demande comment adapter nos stratégies pour une plus grande efficacité (ou bien même problématique que A que l’on traite différemment).
identifiant de l’individu, date, URL de la page, prix d’achat et de bid des espaces, 95ème centile des prix d’achat de cet inventaire, prix en-dessous duquel l’inventaire n’est pas vendu, différents ID sur l’inventaire selon la granularité, clic, … + une notion de conversion (c’est-à-dire tel événement s’est produit dans les X jours suivant l’impression ou Y suivant le clic). La définition des features sur lesquelles apprendre fait partie intégrante du problème.
quelles actions prendre pour améliorer la performance de nos campagnes (sur l’inventaire, sur le prix d’achat,…) (à discuter avec 1000mercis)
pour un certain volume à dépenser, coût d’acquisition (budget dépensé / nombre de conversions) attendu.
beaucoup de robots affichent des impressions et/ou cliquent automatiquement ; il s’agit d’identifier les domaines avec des impressions frauduleuses pour les exclure de nos campagnes.
par cookie, données d’exposition et visites éventuelles suite au clic sur la bannière. Étiquette de site frauduleux / non-frauduleux.
liste de domaines frauduleux
Courbe precision/recall.
on route plusieurs emails par semaine à des inscrits newsletter. Dans l’ensemble, les internautes sont très réactifs les premiers mois, puis ouvrent moins fréquemment les messages qu’on leur envoie. Il s’agit de déterminer quelles sont les personnes qui vont arrêter d’ouvrir les messages en étudiant l’historique de leurs données de réaction. Plus spécifiquement, on s'intéresse aux personnes qui intéragissaient beaucoup avec les mails de 1000mercis, et qui soudainement pourraient arrêter si on leur envoyait le mauvais mail.
par individu, ensemble des emails envoyés, des ouvertures et des clics (identifiant de l’individu, identifiant du message, date).
pour un mail potentiel et un invididu donné, la probabilité que cet individu deviendra un inactif si le mail leur est envoyé.
Log-loss.
éram est un client de 1000mercis. Pour ce projet, il y a une possibilité (non-garantie) de rencontrer le directeur de marketing de éram un peu après chacune des évaluations (celle du 16 février et celle du 30 mars) pour discuter du projet car il est très intéressé.
éram procède à des réassorts en cours de saison en fonction des ventes. Il s’agit de prévoir en étudiant la courbe de diffusion des produits quels sont les futurs best-sellers de la saison
historique des achats : identifiant client, identifiant produit, date d’achat + table de référence des produits (éventuellement identifiant du magasin /site web)
prédiction de volume de vente des produits pour en faire un ranking
Erreur de régression. À discuter.
One of the only currently open Kaggle competition with a prize (15,000$ in prize). The competition closes on February 9th.
In online advertising, click-through rate (CTR) is a very important metric for evaluating ad performance. As a result, click prediction systems are essential and widely used for sponsored search and real-time bidding. For this competition, we have provided 11 days worth of Avazu data to build and test prediction models. Can you find a strategy that beats standard classification algorithms?
See the competition details for info.
Give the predicted probability of click for each ad impression in the test set.
Logarithmic Loss
A popular Kaggle competition (more than 700 teams) that just recently ended; organized by the French company Criteo.
Display advertising is a billion dollar effort and one of the central uses of machine learning on the Internet. However, its data and methods are usually kept under lock and key. In this research competition, CriteoLabs is sharing a week’s worth of data for you to develop models predicting ad click-through rate (CTR). Given a user and the page he is visiting, what is the probability that he will click on a given ad?
Label - Target variable that indicates if an ad was clicked (1) or not (0).
I1-I13 - A total of 13 columns of integer features (mostly count features).
C1-C26 - A total of 26 columns of categorical features.
Give the predicted probability of click for each ad impression in the test set.
Logarithmic Loss
The challenge of this competition is to predict if the car purchased at the Auction is a Kick (bad buy).
32 independent variables (with semantic described); 1 dependent binary variable (IsBadBuy) to predict.
The probability that a specific auction is a bad buy.
Gini metric on the ranking of the possible bad buys according to their probabilities (see info here).
Determine whether an author has written a given paper.
Microsoft Academic Search is an open platform that provides a variety of metrics and experiences for the research community, in addition to literature search. One of the main challenges of providing this service is caused by author-name ambiguity. On one hand, there are many authors who publish under several variations of their own name. On the other hand, different authors might share a similar or even the same name. As a result, the profile of an author with an ambiguous name tends to contain noise, resulting in papers that are incorrectly assigned to him or her. This KDD Cup task challenges participants to determine which papers in an author profile were truly written by a given author.
Profile information of 250k authors such as author name and affiliations; 2.5M papers information such as paper title, conference, keywords; and a paper-author dataset with (paper ID, author ID) potential paper-author assignments. Additional info. Labels information: some authors have confirmed they were really authors of the papers; or have deleted papers meaning they were not authors.
For a specific author profile which contains possible assigned papers, rank the papers so that the most likely to be truly authored papers appear at the beginning.
Mean average precision (see here).
Constructing an optimal portfolio of loans.
This competition asks you to determine whether a loan will default, as well as the loss incurred if it does default. Unlike traditional finance-based approaches to this problem, where one distinguishes between good or bad counterparties in a binary way, we seek to anticipate and incorporate both the default and the severity of the losses that result. In doing so, we are building a bridge between traditional banking, where we are looking at reducing the consumption of economic capital, to an asset-management perspective, where we optimize on the risk to the financial investor.
This data corresponds to a set of financial transactions associated with individuals. The data has been standardized, de-trended, and anonymized. You are provided with over two hundred thousand observations and nearly 800 features. Each observation is independent from the previous. For each observation, it was recorded whether a default was triggered. In case of a default, the loss was measured.
For each row in the test set, you should predict the loss (possibly 0 if there is no default).
Mean absolute error (see here)