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
Partitionnement avec k-means
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 :
- Cours de classification non supervisée de E. Lebarbier, T. Mary-Huard (Agro ParisTech).
- Cours de classification non supervisée de Philippe Besse (INSA de Toulouse).
- Cours de classification automatique de données quantitatives de Marie Chavent (Université de Bordeaux).
- Série de vidéos sur la classification non supervisée de François Husson (Agrocampus Rennes).
- Plateforme
EduClust
de l'Universität Konstanz qui permet de expérimenter certains algorithmes de clustering et visualiser les résultats. - Précédent cours de Clustering de l'IUT de Vannes de Arlette ANTONI (IUT de Vannes) qui avait en charge le cours de classification non supervisée sur l'année 2019-2020.
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 :
- Python 3 : des fondamentaux aux concepts avancés du langage
- Apprendre à coder avec Python
- Introduction to Data Science in Python
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