TRAVAIL PRATIQUE DE L’INTELLIGENCE
ARTIFICIELLE
Membres du groupe :
LABULU IBAM Danny
KANGAKANGA FUNI Heritier
KAFWANKA MWANGE Eleonore
KOTATI NGOY Chris
KAYEMBE WA ILUNGA Gloire
ISHARA BYAMASU Justin
MUTOMBO NGOY Orphée
KADIYA TSHIBAMBE Cleon
LUBANZA WA KAMWINYA Ancia
KISIMBA WAMULUNGA John
MWANZA KABONGO Bonheur
TSHUMA KATULUSHI Samuel
KAWEMA KANGULUNGU Marc
SIMUKO LONDJI Bien-aimé
BAC 2 Génie informatique intélligence artificielle et innovation /ESI/UNILU
21 juillet 2025
Résumé
Ce Travail vise à maîtriser l’algorithme DBSCAN pour le clustering non super-
visé. Nous présentons d’abord les objectifs et le cadre théorique, puis deux études
pratiques : un jeu de données synthétique (make_moons) et un jeu réel (jeu « Wine »
1
de Kaggle). Chaque exemple détaille le prétraitement, l’entraînement de DBSCAN,
l’évaluation (score de silhouette) et l’interprétation des résultats. Nous concluons
sur les bonnes pratiques, limites et perspectives.
Table des matières
1 Objectifs du Travail 3
2 Introduction théorique 3
3 Analyse du code 3
3.1 3.1 Jeu synthétique : make_moons . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 3.2 Jeu réel : Wine Dataset (Kaggle) . . . . . . . . . . . . . . . . . . . . . 4
4 Résultats obtenus 5
4.1 Synthétique (make_moons) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2 Réaliste (Wine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Interprétation et amélioration 5
6 Avantages et limites de DBSCAN 5
7 Conclusion pédagogique 6
Bibliographie 6
2
1 Objectifs du Travail
Ce Travail a pour but de :
— Comprendre le fonctionnement de l’algorithme DBSCAN.
— Identifier et ajuster les paramètres clés : eps et min_samples.
— Appliquer DBSCAN sur un jeu de données synthétique (make_moons) puis un jeu
réel (Wine).
— Visualiser les clusters détectés et analyser les points de bruit (outliers).
— Evaluer la qualité du clustering par le score de silhouette et optimiser les hyper-
paramètres.
2 Introduction théorique
Le clustering regroupe des données similaires sans étiquettes. DBSCAN (Density-
Based Spatial Clustering of Applications with Noise) se distingue par :
— L’absence de besoin de préciser le nombre de clusters.
— La détection automatique des outliers (bruit).
— La capacité à capturer des clusters de forme arbitraire.
Concepts clés :
Epsilon (ε) Distance maximale pour que deux points soient voisins.
min_samples Nombre minimum de voisins dans un rayon ε pour être « noyau ».
Point noyau A au moins min_samples voisins.
Point frontière Non noyau mais dans le voisinage d’un noyau.
Bruit Point isolé sans voisinage suffisant.
3 Analyse du code
3.1 3.1 Jeu synthétique : make_moons
from sklearn . datasets import make_moons
import matplotlib . pyplot as plt
X , y = make_moons ( n_samples =300 , noise =0.1)
plt . scatter ( X [: ,0] , X [: ,1])
3
plt . title ( " D o n n e s brutes : make_moons " )
plt . show ()
Application de DBSCAN :
from sklearn . cluster import DBSCAN
db = DBSCAN ( eps =0.2 , min_samples =5)
db . fit ( X )
labels = db . labels_
Extraction et visualisation des clusters :
plt . scatter ( X [: ,0] , X [: ,1] , c = labels , cmap = ’ Paired ’
)
plt . title ( " Clusters DBSCAN sur make_moons " )
plt . show ()
3.2 3.2 Jeu réel : Wine Dataset (Kaggle)
import pandas as pd
df = pd . read_csv ( " wine - clustering . csv " )
# Pr traitement
from sklearn . preprocessing import StandardScaler
scaler = StandardScaler ()
df [ df . columns ] = scaler . fit_transform ( df )
# E n t r a n e m e n t DBSCAN
db_wine = DBSCAN ( eps =2.8 , min_samples =14)
labels_wine = db_wine . fit_predict ( df )
Visualisation :
import seaborn as sns
df_plot = df . copy ()
df_plot [ " cluster " ] = labels_wine
sns . scatterplot (
data = df_plot , x = " Flavanoids " , y = " OD280 " ,
hue = " cluster " , palette = " tab10 "
)
plt . title ( " Clusters DBSCAN sur Wine Dataset " )
4
plt . show ()
4 Résultats obtenus
4.1 Synthétique (make_moons)
DBSCAN a détecté deux clusters lunaires distincts sans présupposer de forme géomé-
trique. Quelques points de bruit (−1) ont été identifiés dans les zones peu denses.
4.2 Réaliste (Wine)
La configuration ε = 2.8, min_samples=14 a produit un score de silhouette final de
≈ 0.2444. Trois à quatre groupes significatifs se sont dégagés, avec un faible pourcentage
de points classés bruit.
5 Interprétation et amélioration
— ε trop petit → trop de bruit.
— ε trop grand → fusion de clusters distincts.
— Choix optimal via k-distance plot (distance au k-ième plus proche voisin).
— min_samples règle la tolérance au bruit et la densité minimale.
6 Avantages et limites de DBSCAN
Avantages :
— Pas besoin de spécifier le nombre de clusters.
— Identifie naturellement les outliers.
— S’adapte à des formes de clusters complexes.
Limites :
— Sensible au choix de ε et min_samples.
— Densité variable d’un cluster à l’autre dégrade la détection.
5
7 Conclusion pédagogique
Ce TP a permis de :
— Visualiser l’efficacité des méthodes non supervisées.
— Comprendre la notion de densité locale en clustering.
— Mettre en œuvre DBSCAN sur deux contextes : synthétique et réel.
— Appréhender l’importance du réglage des hyperparamètres.
Bibliographie
Références
[1] M. Ester, H.-P. Kriegel, J. Sander & X. Xu, “A density-based algorithm for discovering
clusters in large spatial databases with noise,” KDD ’96, 1996.
[2] Scikit-learn : DBSCAN — [Link]
[Link]#dbscan
[3] Kaggle Wine Dataset — [Link]
wine-dataset-for-clustering
[4] A. Géron, Hands-On Machine Learning with Scikit-Learn, Keras & TensorFlow,
O’Reilly, 2019.
[5] Articles Towards Data Science sur DBSCAN, DataCamp Blog.