Extraction de connaissances à partir de données structurées et non structurées

Sujet de l'année dernière

Rendu

Vous devez rendre votre fichier .ipynb (obtenable en allant sur Fichier -> Télécharger au format -> Notebook (.ipynb)), et le déposer avec votre nom de famille dans le nom de fichier (et dans le notebook), à cette adresse :

sans objet ici

Données

Nous allons utiliser un jeu de données concernant le niveau d'ozone (et plus précisemment le dépassement d'un seuil) en fonction d'autres informations telles que la température, l'humidité... Ces données sont disponibles sur cette page. En plus de 72 variables explicatives (la date n'est pas à prendre en compte), nous avons la cernière colonne nous indiquant si la journée a montré un taux élevé d'ozone (1) ou non (0). C'est cette variable (dite cible) que nous allons chercher à modéliser et prédire.

Voici comment importer les données (sans le nom des variables) dans python. Notez le paramètre na_values qui permet de définir que les données manquantes sont indiquées par un "?" dans le fichier de données.

Les informations sont contenus dans un fichier texte (avec l'extension .names), dont le contenu est présenté ci-dessous.

A faire

  1. Importer les données correctement dans python (en récupérant automatiquement le nom des variables dans le fichier onehr.names)
  2. Supprimer les jours avec des données manquantes
  3. Réaliser une ACP sur les variables explicatives
  4. Représenter la variable cible sur le plan factoriel de l'ACP
  5. Calculer une partition des jours, à l'aide de $k$-means, avec un nombre de classes adapté
  6. Chercher, pour chacun des 4 modèles vues en cours (régression logistique, $k$-plus proches voisins, arbre de décision et réseau de neurones), le meilleur paramètrage de chaque algo
  7. Comparer les différents résultats de prédiction entre eux
  8. Dans chaque classe obtenue avec $k$-means, regarder si les résultats sont similaires ou s'il y a des comportements différents