I'm proposing several topics for research internships. Feel free to contact me if one of them motivates you.

Master IA/DS : Data Mining - 2022/2023

Introduction
Ceci est la page du cours de Data Mining pour les M2 IA et Data Science, université Lyon 1.

Rooms - Schedule

Vous pouvez retrouver le détail des horaires et des salles là : https://adelb.univ-lyon1.fr/
Les cours ont lieu soit le Mardi matin, soit le vendredi matin (selon la semaine), de 9h à 12h en salle C5.

Programme et contenus

Ci-dessous, une vue générale des cours du semestre. Il s'agit d'un programme provisoire qui sera amené à évoluer.
Les contenus seront mis à jour au fur et à mesure.

Topic Resources
Introduction, Data Description Exercices - Slides - Notebook
Clustering beyond k-means Exercices - Slides - Notebook
Networks 1 - Centralities Exercices - Slides - Formulaire science des réseaux
Networks 2 - Community Detection Exercices - Slides - Notebook
Projet
18/10: Dimensionality reduction beyond PCA Exercices - Slides - Dataset_votes
25/10: Recommendation Exercices - Slides
8/10: Frequent Patterns Exercices - Slides
15/10: Final Exam


Data

Je propose de travailler sur un jeu de données de film, disponible sur kaggle: https://www.kaggle.com/datasets/rounakbanik/the-movies-dataset
Ce jeu de données est assez riche car il dispose à la fois de métadonnées décrivant les films (titre, durée, budget...), ainsi que d'informations de notes d'utilisateurs.
(lien de téléchargement direct alternatif - save 2022)
Le fichier décompressé fait environ 1Go (ce sont de vrai données !).
Le fichier des méta-données seules (34 Mo) utilisé pour les premiers cours peut être téléchargé directement ici Le fichier simplifié des votes utilisateurs/films (36 Mo) peut être téléchargé ici directement ici
Quelques données de réseaux pour pratiquer avec Gephi.
Petit réseau Game Of Thrones(.graphml)
Aeroports avec pays et position(.graphml)

Tools

Vous allez travailler majoritairement avec python.
Vous pouvez soit travailler avec google colab (vous pouvez utiliser google drive pour stocker des fichiers facilement accessible), soit bien sûr travailler en local sur votre machine. Dans ce cas, il vous faudra installer quelques packages particulièrement utile:

Python

  • notebook. Jupyter notebook
  • pandas. Pandas
  • scikit-learn. Machine learning/Data mining
  • seaborn. ploting library
  • networkx. Generic network analysis
  • cdlib. Community detection
Si vous n'êtes pas familiers avec pandas, je propose un tutoriel rapide ici
De même une introduction/rappel sur les structures de données en python (listes, dictionnaires, sets...)ici

Gephi

Gephi is a software for basic graph manipulation and visualization. Although you can't do much in term of graph analysis, it is really convenient to explore and visualize graphs of small to medium size ( < 1000 nodes).
It can be donwloaded there : Gephi.
Gephi requires Java, and suffer from a few bugs on windows (but there is no better alternative). Here are solutions to common problems:

Exams

Projet

  • Pour faire le projet, vous pouvez vous mettre par groupe de 2. Des groupes de 3 seront Exceptionnellement autorisés à condition que les 3 personnes indiquent clairement quelle partie du projet elles ont faite, et les notes seront individualisées.
  • L'objectif du projet est de prendre un jeu de données réel, et de l'analyser en utilisant les techniques et outils vus en cours. Vous pouvez utiliser des outils que nous n'avons pas vu en cours, mais une partie importante du projet doit concerner l'application du cours. Je donne quelques conseils pour trouver un dataset.
  • Vous serez noté à 50% sur deux aspects: 1) Vous avez montré techniquement que vous savez analyser les données, 2) Vous montrez par vos commentaires et discussions écrites que vous avez compris le cours. Le rapport contient donc au moins autant de texte que de code. Vous devez par exemple commenter le choix des méthodes, leurs performances, les transformations que vous faites sur les données, la confiance que vous avez dans les résultats obtenus, etc.
  • Le rendu est composé du code et du texte. Les deux peuvent être fourni sous la forme d'un seul notebook, avec des cellules de code et des cellules markdown (note: vous pouvez insérer des formules en utilisant la syntaxe latex). Si vous préférez, vous pouvez à la place, ou en plus, fournir des fichiers .py et un fichier PDF. Par exemple par souci de clarté, vous pouvez avoir un fichier .py contenant des fonctions complexes que vous importez dans votre notebook. Si vous devez développer un raisonnement complexe avec des schémas ou des équations, il peut également être plus pratique de le faire dans un fichier PDF.
  • Le projet est à rendre pour le Dimanche 4 Décembre, 23:59, en le déposant dans Tomuss, sois sous la forme d'un fichier, sois sous la forme d'une URL vers un dépôt de type GitHub/GitLab.

Examen final

Pour l'examen final: Je n'attends pas de vous de savoir par cœur les équations des différentes méthodes, ou de savoir appliquer des méthodes que nous n'avons pas appliqué en TP. J'attends de vous de savoir quelles sont les différentes méthodes que j'ai présenté, et, dans les grandes lignes, leur fonctionnement et leurs différences. Vous aurez le droit aux documents papier durant l'examen. Examen avec éléments de correction