Cours de classification non supervisée

Table des matières

Introduction

Ce site présente l'ensemble des ressources pédagogiques relatives au cours de classification non supervisée pour les 2ème années de BUT SD à l'IUT de Vannes.

Objectifs pédagogiques

Les principaux objectifs pédagogiques du cours sont :

  • Comprendre la problématique de classification non supervisée.
  • Replacer cette problématique dans le contexte méthodologique de l'analyse de données.
  • Introduire la notion d'inertie et son utilisation.
  • Présenter différentes approches de classification non supervisée pour l'analyse des données quantitatives, à savoir :
    • la méthode des moyennes mobiles ;
    • la classification ascendante hiérarchique.
  • Savoir mettre en oeuvre ces méthodes avec la langage Python.

Cours

Les supports de cours sont disponibles en ligne sous forme de présentation HTML (une connexion internet est donc requise).

Note 1 : Il est recommandé d'utiliser le navigateur Firefox pour visualiser les slides de cours.

Note 2 : Pour reproduire les exemples du cours, n'oubliez pas de télécharger le module clust_util.py en le plaçant dans le même répertoire que les scripts.

Introduction et notions fondamentales

Classification ascendante hiérarchique

Ressources pédagogiques

Références

L'élaboration de ce cours s'est appuyée sur de nombreuses références. Voici mes principales sources d'inspiration :

L'environnement Python

Les exemples du cours et les travaux dirigés utilisent le logiciel Python. Si vous pensez ne pas être à l'aise avec Python, je vous encourage vivement à faire une petite mise à niveau.

Il existe énormément de très bons cours/didacticiels sur internet qui traitent de l'apprentissage de ce langage en statistiques. Voici quelques liens à titre indicatif :

Par ailleurs, si vous disposez d'une connexion internet fiable, je vous recommande d'utiliser une plateforme de Notebooks en ligne telle que DeepNote. L'inscription est gratuite et évite de devoir gérer l'installation de l'environnement Python sur votre poste. Sinon vous pouvez bien évidement utiliser Python en local en installant la distribution Anaconda.

L'important est de vous assurer que vous utilisez bien la version 3.8 ou supérieure de Python.

Principaux modules Python utilisés

Dans ce cours, nous utiliserons principalement les modules Python suivants :

  • pandas, pour la manipulation des données ;
  • plotly, pour les représentations graphiques ;
  • numpy, pour utiliser des fonctions de calculs numériques "bas niveau", e.g. génération de nombres aléatoires ;
  • scipy, pour utiliser d'autres fonctions de calculs numériques plus "haut niveau", e.g. calcul de distances ;
  • scikit-learn, pour avoir accès aux algorithmes de classification.

Ces modules ne seront pas forcément installés par défaut dans votre environnement logiciel. Si vous utilisez un notebook (local ou distant de type Deepnote), vous pouvez utiliser la commande !pip install <nom_module> pour les installer :

!pip install pandas plotly scipy scikit-learn

Vous pourrez ainsi les importer dans vos scripts de la manière suivante :

import pandas as pd
import numpy as np
import plotly.express as px
from scipy.spatial.distance import pdist, cdist, squareform