FDMS – Challenge Tennis

Voici les informations pour le challenge de prédiction des matches de Tennis de l’UE FDMS

Accès aux données

La base de données est accessible à travers mySQL. Les informations d’accès aux données sont fournies sur Piazza (pour des raisons de sécurité)

Notés que, depuis phpmyadmin, vous pouvez exporter les tables en fichiers CSV

Structure de la base de données

La base de données est structurées en plusieurs tables décrites ici

games_atp

C’est la base d’entrainement. Chaque ligne correspond à un match.

  • ID1_G : L’identifiant du joueur qui a gagné le match
  • ID2_G : L’identifiant du joueur qui a perdu le match
  • ID_T_G : L’identifiant du tournoi (voir tours_atp)
  • ID_R_G : L’identfiant du round dans le tournoi (voir rounds)
  • RESULT_G ; Le résultat du match
  • DATE_G:  La date du match

games_atp_public

C’est la table des matches pour lesquels vous devez prédire le résultat. Les résultats du leaderboard seront calculés sur une partie de ces matches. A la fin du challenge, les résultats sur l’ensemble des matches seront publiés.

facts_atp

  • ID1 : L’identifiant du joueur qui a gagné le match
  • ID2 : L’identifiant du joueur qui a perdu le match
  • ID_T : L’identifiant du tournoi (voir tours_atp)
  • ID_R : L’identfiant du extit{round} dans le tournoi (voir rounds)
  • FS_1 : Nombre de premiers services réussis (joueur 1)
  • FS_OF1 : Nombre de premiers services (joueur 1)
  • ACES_1 : Aces (joueur 1)
  • DF_1 : Double Fautes (joueur 1)
  • UE_1 : textit{Unforced errors} (erreurs directes ?)
  • W1S_1: Nombre de points gagnés sur premier service
  • W1SOF_1: Nombre de points joués sur premier service
  • W2S_1: Nombre de points gagnés sur second service
  • W2SOF_1: Nombre de points joués sur second service
  • WIS_1 : Nombre de points gagnés en tout
  • BP_1 : Nombre de balles de break gagnées
  • BPOF_1 : Nombre de balles de break obtenues
  • RPW_1 : Nombre de points gagnés
  • RPW_OF1 : Nombre de points jouées
  • .._2 : Les mêmes pour le joueur 2

 players_atp

La mapping entre les identifiants et les noms des joueurs. Contient aussi quelques informations additionnelles.

ratings_atp

Contient le classement et le nombre de points ATP des jours à différentes dates

rounds

Permet de matcher un identifiant de round à un type de round

courts

Permet d’associer une type court à sa surface réelle

tours_atp

Description des différents tournois. NB: la date du tournoi peut être utilisée comme date de match si un matche n’est pas associè à une date

 Soumission sur le leaderboard

Le site du leaderboard se trouve à l’adresse suivante: (voir PIAZZA)

Le fichier de soumission est CSV (valeurs séparées par des ‘,’) de 5 colonnes:

  • ID Joueur 1
  • ID Joueur 2
  • ID Tournoi
  • ID Round
  • Résultat prédit (1 si joueur gagne, 2 si joueur 2)

Pour soumettre un fichier sur le site, voici la commande:

curl –form file=@fichier.csv  –form « team_name=xxxx » –form « description=xxxx » http://xxx/submit
Si tout se passe bien, il devrait apparaitre ensuite sur le leaderboard.

 

 

Soumission Stage

Soumettre un sujet de stage

Envoyer le sujet de stage à toute l’équipe responsable du master sciences-master-info-dac@sorbonne-universite.fr
Ou contacter les responsables pédagogiques : vincent.guigue@lip6.fr et hubert.naacke@lip6.fr

Stages de M1 / stages de M2

Les étudiants de M2 ont un stage obligatoire de 5 à 6 mois.
Les étudiants de M1 ont un stage fortement recommandé de 2 à 3 mois

Calendrier

Les étudiants de M2 sont en stage entre mi-février à septembre pour une période de 5 à 6 mois. Nous publions les sujets au fil de l’eau sur une page privée, mais l’idéal est de soumettre les sujets entre octobre et novembre, les étudiants cherchant activement à partir de début décembre.

Les étudiants de M1 sont en stage entre juin et septembre pour une période de 2 à 3 mois.

Contrats d’accompagnement

Dans le cadre des stages de M2, nous avons mis en place une procédure permettant de définir un contrat d’accompagnement sur ces stages. Le principe consiste à mettre à disposition durant plusieurs jours, en plus du stagiaire, un enseignant/chercheur compétent permettant de prodiguer des conseils directement à l’entreprise sur la problématique visée par le stage. Ces contrats d’accompagnements s’adressent donc aux entreprises désireuses d’explorer de nouveaux outils, et qui ne possèdent pas, à l’heure du stage, les compétences internes nécessaires pour les mettre en place.

as-2016-2017

Apprentissage Statistique

Transparents Cours

http://www-connex.lip6.fr/~gallinar/gallinari/pmwiki.php?n=Teaching.Main

Petit guide de la back-propagation en Torch

guide_lua

TP 1 – Prise en main de LUA et Torch – Descente de Gradient

TP 2 – Mini-batch, train/test et implémentation de critère

TP 3 – Non-linéarité et Critères

TP 4 – Implémentation des modules

TP5 – Graphes de calcul

TP6 – Graphes de calcul et intro au RNNs

 

  • Implémentation des GRUs, section 3.2 de http://arxiv.org/pdf/1412.3555v1.pdf
  • as_tp6

TP7 – RNNs

 

TP8 – TD 1

TP9/10 – Modèles stochastiques

TP 11/12 – Apprentissage par Renforcement (Deep, of course)

TP 13 -TD 2

Projet Deep Learning

Guidelines

Vous sélectionnerez (en binôme)  un article/projet parmi ceux ci-dessous. Les projets comportent trois aspects  :

  • un aspect théorique : vous devrez comprendre la problèmatique de l’article, le contexte de cette problèmatique, les contributions et les limites des approches proposées;
  • un aspect expérimental : vous devrez définir un plan d’expériences pour illustrer et discuter  les approches décrites dans l’article choisi, trouver les données adéquates, synthétiser et commenter vos résultats;
  • un aspect dév. : vous mettrez en oeuvre le plan expérimental défini en produisant un code soigné.

En plus du code, un rapport final est demandé, qui synthétisera l’aspect théorique et expérimental. Il est bien sûr grandement conseillé de faire un peu de bilbiographie et de lire les articles connexes.

Deadlines :
  • 29/11/2016 – rapport intermédiaire
    vous décrirez 1) le contexte, la problèmatique, les contributions de l’article choisi (2 pages environ); 2) le plan d’expérience que vous comptez mener, les données que vous comptez utiliser (2 pages max).
  • A définir – rapport final + code
 Sujets :
Titre
Sujet
Difficulté
Fiabilité du Prof
Fun
OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER Une nouvelle cellule de mixture pour les réseaux de neurones. A priori peut fonctionner sur les peits jeux de données (voir article: Deep Sequential Neural Networks qui ressemble beaucoup) 2/5 2/5 2/5
Auto-Encoding Variational Bayes Pour ceux qui aiment un peu les maths. Permet de générer des images 4/5 5/5 4/5
Generative Adversarial Nets1406.2661v1 La version moins matheuse pour générer des images, mais difficile à faire converger 3/5 5/5 4/5
MEMORY NETWORKS Pour faire du Question Answering. Modèles à mémoire 3/5 3/5 4/5
Neural Turing Machines Une machine de turing dérivable 5/5 5/5 5/5
Pixel Recurrent Neural Networks Pour traiter les images pixels par pixels 2/5 4/5 4/5
HIERARCHICAL MULTISCALE RECURRENT NEURAL NETWORKS Traitement de séquences par RNN héirarchiques 3/5 3/5 3/5
WAVENET: A GENERATIVE MODEL FOR RAW AUDI Génération Audio 3/5 (ATTENTION = puissance de calcul nécessaire) 4/5 4/5
LEARNING TO PROTECT COMMUNICATIONS
WITH ADVERSARIAL NEURAL CRYPTOGRAPHY
3/5 2/5 entre 2 et 5/5
FRACTALNET: ULTRA-DEEP NEURAL NETWORKS WITHOUT RESIDUALS La version ultime des Highway networks 3/5 4/5 3/5

 

 

fdms-2016-2017

Ressources FDMS 2016-2017

  •  Important: Les travaux à rendre le seront avant le dimanche soir précédent le cours suivant, par email (ludovic[.]denoyer[@]lip6.[.]fr), avec le sujet « [FDMS]: Nom étudiant, Semaine XX »

Episode 1  – Travail Personnel

Le travail personnel cette semaine s’organise sur deux aspects:

  • Apprendre Python : Il est essentiel que vous ayez une connaissance du langage python et des librairies de traitement de données récentes et largement utilisées: numpy, pandas, sklearn principalement. Pour cela, je vous propose de suivre le tutorial suivant: https://github.com/savarin/pyconuk-introtutorial — Travail à rendre: Aucun, si vous le faites pas, vous aurez de grosses difficultés dès le prochain TP
  • Les bases de la data science et du machine learning :  Afin de vous familiariser avec les notions sous-jacentes à la data science, je vous propose le travail suivant:
    • Lecture de l’article « Statistical Modeling: The Two Cultures » de L. Breiman. Cet article donne les clefs pour comprendre les deux types d’approche classiques centrées données: la « data modelling culture » qui correspond aux approches ‘modélisation’ historiques (et sur lesquelles sont par exemple basés les modèles de type météo), et l’approche ici appelée « Algorithmic Modeling Culture » qui correspond grosso modo à l’approche machine learning et qui tend à prendre une place de plus importante dans le traitement de données. Travail à rendre: Vous ferez un résumé (1 à 2 pages) des principes, différences, avantages et inconvénients des deux types d’approches. Vous donnerez des exemples d’applications pour lesquelles vous pensez que l’une ou l’autre des approches et la plus appropriée.
    • Lecture de l’article « Model Selection in Data Analysis Competitions » qui donne des « recettes de cuisine » classiques utilisées dans le cadre des compétitions de data science. Travail à rendre: Vous résumerez les 5 points principaux (3.1 à 3.5) en une ou deux phrases

Episode 2 – Sélection de modèles

Episode 3 – Sélection de caractéristiques

Episode 4 – Combinaisons de modèlse

  • Cours = fdms_2015_2016_cours3
  • TME = Implémentation de Bagging et AdaBoost sur des jeux de données binaires – comparaison des algorithmes
  • Challenge = Exploration des données
    • http://132.227.201.***/phpmyadmin

 Episode 5 – Visualisation

 Challenge Tennis: ICI

Episode 6 : Recommendation

  • TP4 : Implémentation des modèles de CF avec descente de gradient stochastique
    • Modèle classique L2
    • Modèle avec biais utilisateur et items
    • Modèle avec Biais temporel
    • Evaluation des modèles sur la base MovieLens
  • Movie Lens : http://files.grouplens.org/datasets/movielens/ml-100k.zip (fichier u.data)
def loadMovieLens(path='/data/movielens'):

  # Get movie titles
  movies={}
  for line in open(path+'/u.item'):
    (id,title)=line.split('|')[0:2]
    movies[id]=title

  # Load data
  prefs={}
  for line in open(path+'/u.data'):
    (user,movieid,rating,ts)=line.split('\t')
    prefs.setdefault(user,{})
    prefs[user][movies[movieid]]=float(rating)
  return prefs

  • Passage à MovieLens 1M

Episode 7 : Dataiku

Pour ceux qui travaillent sur leur ordinateur portable, veuillez installer dataiku DSS pour la prochaine séance.

 

 

Mini-stage : laissez parler votre rigueur et votre imagination !

Méthodologie

Cas pratique. Thème : « Time series prediction and forcasting »

Travail à réaliser en binôme.

Cours 1 : réaliser l’état de l’art (lecture, synthèse, …- voir cours) à partir de la biblio suivante :

Cours 2 : Les séries temporelles peuvent être utilisées pour de nombreuses applications et domaines de recherche :

  •   détection d’évènement sur Twitter
  • Prédiction de trajets
  • Prédiction spatio-temporelle de données climatiques
  • Détection de spams
  • Identification des processus de diffusion de l’information
  • Détections des pannes

Travail à faire

  • Choisir une problématique (ou en proposer une)
  • Développer une méthode ou améliorer un algorithme pour résoudre cette problématique
  • Proposer un protocole d’évaluation de la méthode/l’ algorithme proposé(e)

Pour la semaine prochaine (23/01/17) : présentation de 10 minutes par binôme de type « présentation d’une contribution à une conférence »

Bien introduire avec motivation/justification:

  • Le contexte et la problématique
  • L’état de l’art
  • Le modèle proposé
  • Le protocole expérimental
  • Le types de résultats attendus (exemples de courbes, tableaux, etc…)
  • Les conclusions et perspectives

Seront évalués :

  • La qualité de la présentation
  • L’effort de synthèse de l’état de l’art
  • Le positionnement par rapport à l’état de l’art
  • Les justifications liées à la contribution
  • La cohérence de l’expérimentation avec le contexte/modèle proposé
  • Votre rigueur et votre imagination/originalité !