Projet avec Spark pour l’UE RCP216¶
Merci de lire et de suivre les instructions ci-dessous.
Instructions¶
La note finale à l’UE sera la moyenne entre la note à l’examen sur table et la note de projet. Le projet sera réalisé individuellement et consistera à utiliser Spark pour traiter un problème (avec un jeu de données) parmi les types de problèmes suivants :
Fouille de textes
Fouille de graphes ou de réseaux sociaux
Pour cela, il faudra
A. Choisir un problème de fouille (avec un jeu de données)
Parmi ceux proposés par les enseignants de l’UE (voir plus loin) ; dans ce cas, chacun doit faire son choix ici sur Moodle. Lors du choix, seuls sont accessibles les projets qui n’ont pas encore été choisis. Notez le choix que vous faites car le système peut ne pas vous afficher ce choix ensuite. Il n’est pas nécessaire de choisir immédiatement mais ne tardez pas trop, le choix de sujets disponibles se restreindra au fur et à mesure que vos collègues feront leurs choix.
Professionnels ou personnels, à condition d’avoir déjà les données ; dans ce cas, il faudra envoyer à michel.crucianu(à)cnam.fr, une description suffisante du problème et des données au plus tard le 1er décembre 2025 (évitez de joindre au message des données volumineuses, un lien web est préférable). Vous pouvez également utiliser des données recueillies pour l’UE NFE204 ou des données ouvertes provenant de sites comme https://www.data.gouv.fr/fr/, http://opendatafrance.net/, etc. ; il vous faudra définir un problème à étudier avec les données choisies. Attention, vous ne pouvez pas reprendre pour RCP216 le sujet que vous avez déjà traité pour STA211.
B. Réaliser une analyse de données et une modélisation permettant de répondre au problème posé, à l’aide d’au moins une méthode étudiée en RCP216 (ou STA211 ou RCP209), obligatoirement en utilisant Spark dans un des langages disponibles (python, scala, java ou éventuellement R) et les bibliothèques associées. Justifier les choix de méthode et de paramètres ; lier les résultats des éventuelles analyses préalables au choix de la ou des méthodes de modélisation.
C. Utiliser une méthode de visualisation adaptée parmi celles présentées en RCP216, à la fois pour la présentation de résultats et pour aider vos choix dans des étapes intermédiaires. Justifier le choix de la ou des méthodes. Expliciter les observations faites à partir de la visualisation.
Le rapport devra inclure une présentation claire et concise du problème et des données, une définition de l’objectif de l’étude, la démarche choisie et les résultats obtenus, ainsi qu’une conclusion, sans dépasser les 20 pages. D’éventuelles illustrations complémentaires, non essentielles pour la compréhension du travail, pourront être mises dans des annexes (après les \(\leq 20\) pages du rapport). Un exemple de très bon rapport se trouve ici (avec des sources en langage Scala).
Le rapport (obligatoirement en PDF), accompagné des programmes que vous avez développés mais sans les données, devra être archivé dans un seul fichier .zip et déposé ici sur Moodle .
au plus tard le 28 janvier 2026 ou
au plus tard le 15 avril 2026 – date limite ferme !
Les rapports seront évalués en deux tranches : ceux déposés au plus tard le 28 janvier seront évalués en février, ceux déposés après seront évalués en avril. Dans l’évaluation des rapports, nous tiendrons compte du délai supplémentaire significatif dont auront bénéficié les auditeurs qui auront déposé leur projet en avril.
En aucun cas le rapport ne sera envoyé par courriel à l’enseignant. Ne déposez pas de gros fichiers (.jar, données, etc.) dans le .zip, mais seulement le rapport et les sources. Il n’y a aucune bonne raison pour que la taille de votre .zip soit supérieure à 10 Mo !
Aussi, il est inutile de nous transmettre un rapport qui traite d’autre chose que du sujet que vous avez choisi au départ (votre choix est enregistré), un tel rapport ne serait pas évalué.
Si vous avez une question importante lors de la réalisation du projet, n’hésitez pas à la poser à l’enseignant.
Sujets proposés¶
PetFinder.my Adoption Prediction. L’objectif est de prédire la rapidité à laquelle un animal de compagnie est adopté, à partir de données multimodales décrivant ces animaux, dans une base de plus de 150 000 animaux de compagnie. Dans ce projet il faudra prendre en compte les variables nominales, quantitatives et les descriptions textuelles, mais pas les images ni les éventuelles vidéos. Les données et leur description sont sur https://www.kaggle.com/c/petfinder-adoption-prediction
Reuters-21578 : l’objectif est la classification automatique (thématique) des textes. Il est souhaitable de considérer plusieurs méthodes à la fois pour la représentation des textes et pour leur classification automatique. Le problème est issu de Kaggle et les données sont sur cette page.
Twitter Sentiment Analysis : l’objectif est la classification en deux classes (sentiment positif ou négatif) d’un ensemble de tweets. Les données peuvent être obtenues à partir de cette page.
TREC Question Classification dataset : l’objectif est la classification en 6 classes d’un ensemble de questions. Les données peuvent être obtenues à partir de cette page. Les classes à considérer correspondent aux coarse class labels.
Toxic Comment Classification Challenge : l’objectif est la classification en 6 classes de toxicité d’un ensemble de commentaires issus de Wikipedia. Les données peuvent être obtenues à partir de cette page.
Tweet Dataset for Emotion Recognition : l’objectif est de classer des tweets en 6 classes correspondant aux sentiments suivants : anger, fear, joy, love, sadness, et surprise. Le problème est issu de Kaggle et les données sont sur cette page.
Environmental Reports and News Classification : l’objectif est de réaliser 5 classements, chacun en deux classes, pour un ensemble de brefs rapports. Les rapports sont dans la colonne « text », les classements sont « problème environnemental », « pollution », « climat » et « biomonitoring » (dans les colonnes de noms correspondants) ; les étiquettes de classe absentes doivent être assimilées à la classe 0. Le problème est issu de Kaggle et les données sont dans ce fichier.
Classification de discours : l’objectif est de classer le discours prononcé par une personnalité lors d’une convention de 2020 en démocrate ou républicain. Les données regroupent celles disponibles ici et ici. Il est nécessaire de découper ces données en données d’apprentissage (env. 50%) et données de test (les données restantes).
Co-publications en astro-physique : le site Arxiv permet aux chercheurs du monde entier de publier librement leurs articles de recherche, par discipline. Le jeu de données ca-AstroPh recense les collaborations entre auteurs de la catégorie Astro-physique, durant une période de 10 ans. Données : fichier, page de présentation. À l’aide des concepts et des indicateurs vus en cours et en TP, proposez une analyse de la structure de ce réseau. Terminez par une visualisation (éventuellement partielle) du graphe en utilisant les techniques et principes abordés.
Youtube : Youtube est une plateforme de partage de vidéos, qui inclut des fonctions sociales (amitiés, groupes). Ces fonctionnalités évoluent, et les données proposées ici reposent sur une capture effectuée pour une publication en 2007. Données : fichier (11M), page de présentation (et une 2e page). À l’aide des concepts et des indicateurs vus en cours et en TP, proposez une analyse de la structure de ce réseau. Terminez par une visualisation (éventuellement partielle) du graphe en utilisant les techniques et principes abordés.
Réseau électrique (power grid). Les données proviennent du réseau d’alimentation énergétique des USA. Chaque nœud représente une centrale de production, un transformateur ou un point de consommation. Deux nœuds y sont interconnectés s’il y a physiquement un câble qui les relie en réalité. Proposez une analyse de la structure de ce réseau petit monde, à l’aide de l’ensemble des notions vues en cours et TP. Proposez une visualisation (éventuellement partielle) du graphe en utilisant les techniques et principes abordés.
Réseau d’e-mails. Les données représentent les échanges emails collectés pendant 3 mois et demi à l’Université de Kiel (Allemagne). Chaque sommet représente une adresse, et il y a un lien dirigé A->B si A a envoyé au moins un email à B. Proposez une analyse de la structure de ce réseau (que vous pouvez rendre d’abord non dirigé) à l’aide de l’ensemble des notions vues en cours et TP. Proposez une visualisation (éventuellement partielle) du graphe en utilisant les techniques et principes abordés.