Projet de Machine Learning K
Projet de Machine Learning K
Projet de Machine Learning K
Paix-Travail-patrie Peace-Work-Fatherland
*************** ***************
UNIVERSITE DE YAOUNDE I THE UNIVERSITY OF YAOUNDE I
ENSPY NASEY
DEPARTEMENT DU GIM DEPARTMENT OF GIM
B.P. 8390 Yaoundé, Tel : +237 677 378 P.O. Box 8390Yaoundé, Tel : +237 677 378
474 474
EXPOSE DE MACHINE
LEARNING :
ALGORITHME K-MEANS ET
DBSCAN
GROUPE 4 :
PARTICIPANTS :
• ASSAKANG CHERODE
• MOMO EITEL DARLOS
• NOUTCHIEU DOMNGANG STEVE
Contents
I. INTRODUCTION ................................................................................................................... 3
II. ALGORITHME K-MEANS : ................................................................................................. 4
a) PRINCIPE DE BASE DE L’ALGORITHME K-MEANS : ............................................... 4
b) ETAPES DE L’ALGORITHME K-MEANS : .................................................................... 5
c) ALGORITHME CLASSIQUE K-MEANS :....................................................................... 8
d) ORGANIGRAMME CLASSIQUE ALGORITHME K-MEANS : ................................... 9
e) AVANTAGES ET INCONVENIENTS DE LA METHODE K-MEANS : ..................... 10
f) EXERCICE D’APPLICATION : ...................................................................................... 10
III. ALGORITHME DBSCAN ................................................................................................ 23
1. Principe de base .............................................................................................................. 23
2. CONCEPTS CLÉ DE DBSCAN ................................................................................. 24
3. ETAPES DE L’ALGORITHME .................................................................................... 25
4. AVANTAGES ET INCONVÉNIENTS ........................................................................ 26
5. EXEMPLE D’APPLICATION ...................................................................................... 26
IV. COMPARAISON ENTRE K-MEANS ET DBSCAN ......................................................... 29
V. CONCLUSION ..................................................................................................................... 30
Page 2 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
I. INTRODUCTION :
La classification est une technique d’analyse de données qui consiste à regrouper des
éléments similaires en catégories ou en classes. Il existe deux types de classification :
supervisée et non supervisée. La classification supervisée est utilisée pour prédire la classe de
nouvelles données inédites. Elle repose sur des données étiquetées, c’est-à-dire que chaque
observation de la population est associée à une classe connue. En revanche, la classification
non supervisée ne repose pas sur des données étiquetées. L’algorithme reçoit un ensemble de
données non étiquetées et doit identifier des modèles et des regroupements par lui-même. Au
sein de ce devoir, nous allons nous intéresser à la classification non supervisée plus
précisément en examinant les algorithmes K-means et DBSCAN.
Page 3 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
1. Contexte :
Le partitionnement en k-moyenne (ou k-means en anglais) est une méthode de
partitionnement de données et un problème d’optimisation combinatoire. Elle permet de
regrouper des individus ayant des caractéristiques similaires(clusters) à travers l’analyse de
jeux de données caractérisée par un ensemble de descripteurs.
La méthode des kmeans repose sur la minimisation de la somme des distances
euclidiennes au carré entre chaque objet (ou sujet, ou point) et le centroïde (le point central) de
son cluster.
Contrairement aux autres algorithmes de MACHINE LEARNING, il ne permet pas de
prédire un résultat puisqu’il fait partie de la catégorie des méthodes non supervisées. Les
termes “non supervisée” signifient que les groupes n’existent pas avant d’être créés ; il ne
s’agit d’apprendre à partir des données comment construire des clusters existants. Il s’agit
seulement de regrouper les données.
Remarque : Dans la méthode des kmeans, les objets (ou sujets, ou sites, ou points, etc.)
appartiennent à un seul cluster, et les clusters ne se chevauchent pas.
2. Principe de base :
• La distance euclidienne :
La distance euclidienne est à la base de la méthode des kmeans, puisqu’il s’agit
d’attribuer un cluster à chaque point, de façon à ce que la somme des distances euclidiennes au
carré entre chaque point et le centroïde de son cluster, soit la plus faible possible. On parle de
minimisation de la variation intra-cluster.
La distance euclidienne est simplement une généralisation du théorème de Pythagore
qui dit que ” le carré de la longueur de l’hypoténuse, qui est le côté opposé à l’angle droit, est
égal à la somme des carrés des longueurs des deux autres côtés.”
Ainsi, dans un espace à deux dimensions la distance euclidienne entre deux points
peut être estimée par hypoténuse d’un triangle rectangle.
Page 4 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Dans un espace à n dimensions (u, v, …z), la distance euclidienne entre les points, ou
deux observations A (Xa, Ya, Za) et B (Xb, Yb,…, Zb), est définie par :
• La Méthode du coude :
Elle est basée sur le fait que la somme de la variance intra clusters peut être réduite
grâce à l'augmentation du nombre de clusters. Plus il est élevé, plus il permet d'extraire des
groupes plus fins à partir de l'analyse d'objets de données qui ont plus de similarité entre eux.
On utilise le point de retournement de la courbe de la somme des variances pour choisir le bon
nombre de clusters. Cela signifie quoi qu’il faut exécutez l'algorithme des k-means pour
différents nombres de clusters (par exemple, de 1 à 10). Ensuite pour chaque nombre de
clusters, on calcule la somme des variances intra-cluster, qui est généralement mesurée par la
somme des carrés des distances entre chaque point et le centre de cluster auquel il est assigné.
Après on trace un graphique du nombre de clusters sur l'axe des x et de la somme des variances
intra-cluster sur l'axe des y. on analyse la courbe et on recherche le point détournement (coude)
où l'ajout de plus de clusters ne réduit pas significativement la somme des variances intra-
cluster. Le nombre de clusters correspondant au point de retournement est souvent choisi
comme le nombre optimal de clusters.
Page 5 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Cette méthode permet d'évaluer la qualité des clusters créés grâce aux algorithmes de
clustering. Compris entre [-1,1], le score silhouette est parfois utilisé pour trouver la valeur
optimale du nombre de clusters « k ». Pour ce faire, on considère la valeur de « k » ayant le
score de silhouette le plus proche de 1. Autrement dit, Pour un point de données donné,
calculez la distance moyenne entre ce point et tous les autres points du même cluster. Cela
donne la cohésion intra-cluster (a). Pour le même point de données, calculez la distance
moyenne entre ce point et tous les points d'un autre cluster voisin. Cela donne la séparation
inter-cluster (b). Le coefficient de silhouette pour ce point est alors calculé comme suit :
(𝒃−𝒂)
silhouette = 𝐦𝐚𝐱(𝒂,𝒃).Répétez les étapes 1 à 3 pour tous les points de données et calculez la
moyenne des coefficients de silhouette pour obtenir le score de silhouette global.
i. La méthode de Forgy :
Cette méthode est l’une des méthodes d’initialisation les plus rapides pour les k-Means.
Si nous choisissons d’avoir k clusters, la méthode Forgy choisit k points parmi les données au
hasard comme points initiaux. Cette méthode a du sens car les clusters détectés par k-Means
sont plus susceptibles d’être proches des modes présents dans les données. En choisissant au
hasard des points à partir de données, nous rendons plus probable l’obtention d’un point proche
des modes.
ii. La méthode de partitionnement aléatoire :
Dans cette méthode, nous attribuons aléatoirement chaque point des données à un ID de
cluster aléatoire. Ensuite, nous regroupons les points en fonction de leur ID de cluster et
prenons la moyenne (par ID de cluster) pour obtenir les points initiaux. La méthode de partition
aléatoire est connue pour produire des points initiaux proches de la moyenne des données. En
Page 6 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
d’autres mots, Au départ, nous avons un ensemble de points de données que nous souhaitons
regrouper en clusters. Pour initialiser le processus de clustering, nous attribuons aléatoirement
à chaque point de données un identifiant de cluster (par exemple, un nombre de 1 à k, où k est
le nombre de clusters souhaité). Ensuite, nous regroupons les points de données en fonction de
leur identifiant de cluster. Cela signifie que tous les points ayant le même identifiant de cluster
sont regroupés ensemble. Pour chaque cluster, nous calculons le centre de gravité du cluster en
prenant la moyenne des coordonnées de tous les points qui lui sont assignés. Ce centre de
gravité est généralement appelé "centroid" ou "moyenne du cluster ». Les centroïdes calculés
deviennent les points initiaux pour les itérations suivantes des algorithmes de clustering, tels
que les itérations du k-means.
3. Une fois que tous les points de données ont été attribués à un centre de
cluster, recalculez les nouveaux centres en prenant la moyenne des points
de données de chaque cluster :
Pour chaque cluster, on calcule la moyenne de toutes les coordonnées des points de
données qui lui sont attribués. Par exemple, si on travaille avec des données bidimensionnelles
ou chaque point à des coordonnées (x, y), on calcule la moyenne des coordonnées x et y des
centres de cluster. Les moyennes calculées deviennent les nouvelles coordonnées des centres
de cluster. Ainsi, chaque centre de cluster sera déplacé vers le centre de gravité de ses points de
données associés.
4. Répétez les étapes 3 et 4 jusqu'à ce que les centres de cluster ne changent
plus ou jusqu'à ce qu'un critère d'arrêt prédéfini (comme un nombre
maximum d'itérations) soit atteint.
Le nombre d’itérations maximum dans l’algorithme K-means est un hyper paramètre
qui peut être ajusté pour améliorer la performance de l’algorithme. En général, le nombre
d’itérations est fixé à un nombre suffisamment élevé pour que les centres de cluster convergent
vers une solution stable. Cependant, un nombre d’itérations trop élevé peut entraîner un temps
de traitement plus long et un sur ajustement des données.
Il n’y a pas de règle stricte pour choisir le nombre d’itérations maximum. Cependant, il
est recommandé de commencer par un nombre d’itérations élevé, puis de réduire
progressivement le nombre d’itérations jusqu’à ce que la performance de l’algorithme ne
s’améliore plus. En général, un nombre d’itérations compris entre 100 et 1000 est suffisant
pour la plupart des applications.
Page 7 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Entrée
Ensemble de N données, notés par x
Nombres de groupes souhaités
Sortie
Une partition de K groupes {C1, C2,… Ck}
Début
1) Initialisation aléatoire des centres Ck ;
Répéter
2) Affectation : générer une nouvelle partition en assignant chaque objet au groupe dont le centre
est le plus proche :
µk=𝑁1 ∑𝑋𝜖𝑐𝑘 𝑥𝑖
Jusqu’à convergence de l’algorithme vers une partition stable ;
Fin.
Page 8 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Début
Entrez le paramètre k et x du
processus de clustering
fin
Page 9 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
1. AVANTAGES :
2. INCONVENIENTS :
f) EXERCICE D’APPLICATION :
• « Numpy » :
Numpy est une bibliothèque Python très populaire qui est principalement utilisée pour
effectuer des calculs mathématiques et scientifiques. Elle introduit une gestion facilitée des
tableaux de nombres. Elle fournit des structures de données de base, telles que les tableaux
Page 10 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
multidimensionnels, qui sont essentielles pour effectuer des calculs numériques efficaces.
Numpy offre une vaste gamme de fonctions mathématiques et d'opérations de manipulation de
tableaux, ce qui en fait un outil incontournable en Machine Learning.
• « Pandas »:
Pandas est une bibliothèque du langage de programmation Python, entièrement dédiée
à la Data Science. Grâce à Pandas, le langage Python permet enfin de charger, d’aligner,
de manipuler ou encore de fusionner des données. Le fonctionnement de Pandas repose sur les
« Data frame » : des tableaux de données en deux dimensions, dont chaque colonne contient les
valeurs d’une variable et chaque ligne contient un ensemble de valeurs de chaque colonne. Les
données stockées dans un Data frame peuvent être des nombres ou des caractères.
• « Matplotlib » :
Est une bibliothèque qui permet d’améliorer l’aspect visuel des graphiques notamment
en ajoutant un titre et des légendes, mais aussi en choisissant le style et la couleur des
visualisations. Il est aussi possible de jouer sur la taille des figures ainsi que de choisir la
disposition des graphiques si vous choisissez d’afficher plusieurs graphiques dans une même
figure. Elle permet : le tracé des fonctions, faire des graphique 2D,3D, faire des widgets…
• « Seaborn » :
Est une bibliothèque python qui offre la possibilité de résumer et de visualiser des
données. Elle permet de créer de jolis graphiques statistiques en python. Cette bibliothèque
apporte des fonctionnalités inédites qui favorisent l’exploration des données. Seaborn facilite la
création de graphiques tels que des diagrammes de dispersion, des histogrammes, des
diagrammes en boîte, des graphiques à barres et bien d'autres. Elle fournit également des
fonctionnalités avancées pour la visualisation de modèles de données complexes, tels que les
matrices de corrélation et les graphiques de régression. Seaborn permet d'ajouter des palettes de
couleurs esthétiques et de personnaliser facilement l'apparence des graphiques, ce qui en fait un
outil précieux pour communiquer et interpréter les résultats des modèles de Machine Learning.
Page 11 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
d'accès complet. La fonction « read_csv » de pandas est utilisée pour lire les données du
fichier CSV et les stocker dans un objet appelé df.
• « df. head ()»: Cette ligne affiche les premières lignes du Data frame . La méthode head () visualise,
par défaut les cinq premières lignes du data set. Cela peut être modifié en mettant le nombre de
lignes souhaité entre les parenthèses.
Page 12 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
On se rends compte qu’au total, on a 5 colonnes dont 4 ont pour types des entiers code
sur 64 bits, une ayant pour type des objets et 200 lignes. Dans ce data set il y’a aucun nombre
nul.
• « df. describe() » : cette ligne de code fournit des statistiques descriptives pour un objet
Data Frame . Elle calcule des statistiques telles que la moyenne, l’écart type, le
minimum, le maximum et les quartiles pour chaque colonne numérique du Data Frame.
Les colonnes non numériques sont ignorées par défaut.
Page 13 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
On renomme ces variables pour pouvoir mieux les manipuler dans la suite du data
set.
• « plt.show() »La troisième ligne de code affiche les graphiques créés à l’aide de la
méthode show() de matplotlib.pyplot.
Ainsi on obtient les graphes ci-dessous :
Page 14 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
ANALYSE : Le graphique ci-dessus montre que le sexe n'a pas de rapport direct
avec la segmentation de la clientèle.
Page 15 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
• « for i in range (1, 11): » Cette boucle itère sur les nombres de 1 à 10. Cela
signifie que la boucle sera exécutée 10 fois, à chaque itération la valeur de i sera
mise à jour.
Page 16 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
ANALYSE :
Comme on peut le voir sur le graphique, on peut dire que le coude peut être 3 ou 5. pour
faire le choix, nous allons utiliser les deux valeurs de k et voir laquelle a un meilleur rendu.
Page 17 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Ces codes utilise l'algorithme KMeans avec 5 et 3 clusters. Il ajuste le modèle KMeans
aux données `X` et attribue des étiquettes de cluster à chaque point de données. Ensuite, un
nuage de points est tracé pour représenter les données en fonction des revenus et des scores, en
utilisant les étiquettes de cluster pour colorer les points à l’aide de la fonction
sns.scatterplot(X['Income'], X['Score'], hue=X['Labels'], palette=sns.color_palette('hls',
5)). Cela permet de visualiser la structure des données et de voir comment les points sont
regroupés en fonction de leurs caractéristiques.
Page 18 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
ANALYSE :
On se rends compte que le nombre de clusters le mieux adaptés est 5.
Page 19 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
• « fig = plt.figure(figsize=(20, 8)) » : Cette ligne de code crée une nouvelle figure avec une
taille de 20 pouces de largeur et 8 pouces de hauteur. La figure est stockée dans la variable
fig et sera utilisée pour les sous-graphiques à venir.
Page 20 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
ANALYSE : on se rends compte qu'on peut enfin donner un nom à nos groupes :
Cluster 0 correspond aux revenus faibles et dépenses faibles
Cluster 1 correspond aux revenus élevés et dépenses élevés
Cluster 2 correspond aux revenus élevés et dépenses faibles
Cluster 3 correspond aux revenus moyens et dépenses moyens
Cluster 4 correspond aux revenus faibles et dépenses élevés
Page 21 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
• « plt.scatter(x[y_kmeans==0,0],x[y_kmeans==0,1],s=100,c="red",label =
"revenus faibles et dépenses faibles") »: Cette ligne de code trace un nuage de
points pour les points appartenant au cluster 0. Les points sont affichés en rouge avec
une taille de 100 et une étiquette “revenus faibles et dépenses faibles”.
• « plt.scatter(x[y_kmeans==1,0],x[y_kmeans==1,1],s=100,c="blue",label =
"revenus eleve et dépenses eleves") »: Cette ligne de code trace un nuage de points
pour les points appartenant au cluster 1. Les points sont affichés en bleu avec une
taille de 100 et une étiquette “revenus eleve et dépenses eleves”.
• « plt.scatter(x[y_kmeans==2,0],x[y_kmeans==2,1],s=100,c="green",label =
"revenu eleve et dépenses faibles") »: Cette ligne de code trace un nuage de points
pour les points appartenant au cluster 2. Les points sont affichés en vert avec une
taille de 100 et une étiquette “revenu eleve et dépenses faibles”.
• « plt.scatter(x[y_kmeans==3,0],x[y_kmeans==3,1],s=100,c="cyan",label =
"revenus moyens et dépenses moyens") »: Cette ligne de code trace un nuage de
points pour les points appartenant au cluster 3. Les points sont affichés en cyan avec
une taille de 100 et une étiquette “revenus moyens et dépenses moyens”.
• « plt.scatter(x[y_kmeans==4,0],x[y_kmeans==4,1],s=100,c="magenta",label =
"revenu faibles et dépenses eleves") »: Cette ligne de code trace un nuage de points
pour les points appartenant au cluster 4. Les points sont affichés en magenta avec une
taille de 100 et une étiquette “revenu faibles et dépenses eleves”.
• « plt.scatter(kmeansmodel.cluster_centers_[:,0],kmeansmodel.cluster_centers_[:,
1],s=300,c="yellow",label="centroids") »: Cette ligne de code trace les centres de
cluster pour chaque cluster. Les centres de cluster sont affichés en jaune avec une
taille de 300 et une étiquette “centroids”.
Page 22 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Ainsi, nous avons fait une classification supervisé en utilisant le K-means pour la
segmentation de la clientèle.
• Pour chaque observation on regarde le nombre de points à au plus une distance ε de celle-
ci. On appelle cette zone le ε-voisinage de l’observation.
• Si une observation compte au moins un certain nombre de voisins y compris elle-même,
elle est considérée comme une observation cœur. On a alors décelé une observation à
haute densité.
• Toutes les observations au voisinage d’une observation cœur appartiennent au même
cluster. Il peut y avoir des observations cœur proche les unes des autres. Par conséquent
de proche en proche on obtient une longue séquence d’observations cœur qui constitue un
unique cluster.
• Toute observation qui n’est pas une observation cœur et qui ne comporte pas
d’observation cœur dans son voisinage est considérée comme une anomalie.
Page 23 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
• Définition 1 :
le 𝜀 −voisinage d’un point𝑝 noté D est défini par :
𝑵𝜺 (𝒑) = {𝒒 ∈ 𝑫/𝒅(𝒑, 𝒒) ≤ 𝜺}
où 𝜀𝜖𝑅 + et 𝑑(𝑝, 𝑞) est la distance entre les points 𝑞 et 𝑝. La distance euclidienne
est généralement utilisée.
NB : 𝒑𝝐𝑵𝜺 (𝒑).
• Définition 2.
• La densité en un point 𝑝 est le nombre de point intérieur au cercle de rayon 𝜀 formé
autour de 𝑝.
• Un point 𝑝 est un point dit central (core point) si|𝑁𝜀 (𝑝)| ≥ 𝑀𝑖𝑛𝑃𝑡𝑠, 𝑀𝑖𝑛𝑃𝑡𝑠𝜖𝑁
• Un point p est un point frontière (borde point) si |𝑁𝜀 (𝑝)| ≤ 𝑀𝑖𝑛𝑃𝑡𝑠, mais 𝑝𝜖𝑁𝜀 (𝑤) et
𝑤 est un point central.
• Un point 𝑝 est un point dit aberrant (noise point) si 𝑝 n’est pas un point central ou un
point frontière.
Un point 𝑝 est dit directement accessible par la densité à partir d’un point 𝑞 si
• 𝒑𝝐𝑵𝜺 (𝒒).
• |𝑵𝜺 (𝒒)| ≥ 𝑴𝒊𝒏𝑷𝒕𝒔
A noter que cette relation est symétrique entre deux points centraux, mais ne l’est
généralement pas entre un point central et un point frontière.
• Définition 4(density-reachable)
Un point 𝑝 est dit accessible par la densité à partir d’un point 𝑞 s’il existe une séquence
de points (𝑝1 , 𝑝2 , … , 𝑝𝑛 ) où 𝑝1 = 𝑞 , 𝑝𝑛 = 𝑝, 𝑝𝑖+1 est directement accessible par la densité à
partir de 𝑝𝑖 , ∀𝑖 ∈ {1,2, … , 𝑛 − 1}.
Cette relation est transitive, mais pas symétrique.
• Définition 5(density-conected)
Un point 𝑝est connecté par densité la densité à un point 𝑞 s’il existe un point 𝑚 tel que
𝑝𝑒𝑡q sont accessibles par la densité à partir de 𝑚.
Cette relation est symétrique.
• Définition 6
Un cluster 𝐶 est un ensemble non vide de points appartenant à 𝐷 qui respecte les
conditions suivantes :
• ∀(𝑝, 𝑞), 𝑠𝑖𝑝 ∈ 𝐶 et 𝑞 accessible par la densité à partir de 𝑝, 𝑞 ∈ 𝐶 .
• ∀(𝑝, 𝑞), 𝑝 est connecté par la densité à 𝑞.
Page 24 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
• Lemme 7
Soit le point 𝑝 ∈ 𝐷 et |𝑁𝜀 (𝑝)| ≥ 𝑀𝑖𝑛𝑃𝑡𝑠. Alors,
𝑂 = {𝑜|𝑜 ∈ 𝐷, oaccessibleparladensitéàpartirdep} est un cluster.
Lemme 8
Soit 𝐶 un cluster et 𝑝 ∈ 𝐶 tel que |𝑁𝜀 (𝑝)| ≥ 𝑀𝑖𝑛𝑃𝑡𝑠. Alors,
𝐶 = 𝑂 = {𝑜|𝑜 ∈ 𝐷, oaccessibleparladensitéàpartirdep}.
• Définition 9
Soit 𝐶1 , 𝐶2 , … , 𝐶𝑘 les clusters de 𝐷. Le Bruit B est défini par :
𝑩 = {𝒑 ∈ 𝑫|∀𝒊 ∶ 𝒑 ∉ 𝑪𝒊 }
3. ETAPES DE L’ALGORITHME :
❖ 𝐸1 : commencer toujours par un point aléatoire 𝑝 qui n’a pas été visité et calculer
𝑁𝜀 (𝑝)𝑒𝑡 |𝑁𝜀 (𝑝)|.
❖ 𝐸2 :Si 𝑝 est un point central, alors un nouveau cluster est crée avec les points
appartenant à 𝑁𝜀 (𝑝). Si un point 𝑞 ∈ 𝑁𝜀 (𝑝) est également un point central , 𝑁𝜀 (𝑞) est
ajouté au cluster. S’il n’y a plus de points centraux dans le voisinage étendu, alors le
cluster est complet et finalisé.
❖ 𝐸3 : Si 𝑝 n’est pas un point central, il est considéré comme un Bruit pour l’instant.
❖ 𝐸4 : Les étapes 𝐸1, 𝐸2 et 𝐸3 sont répétés avec un nouveau point.
❖ 𝐸5 : Après avoir explorer tous les points, les points toujours seuls sont identifiés comme
du Bruit.
Page 25 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
4. AVANTAGES ET INCONVÉNIENTS
1. Avantages :
2. Inconvénients :
➢ L’algorithme est moins performant lorsque les clusters sont de densités variées
étant donné que les paramètres sont globaux.
➢ Vue que les points frontières peuvent se retrouver dans différents clusters
dépendamment de l’ordre de visite des points alors cet algorithme n’est plus
certain malgré le fait que cette circonstance est très rare.
➢ L’algorithme est très sensible aux valeurs des paramètres.
5. EXEMPLE D’APPLICATION :
Utilisation de l’algorithme DBSCAN pour grouper l’Annula Income et le Spending
Score du des clients du Mall dont le data set est Mall_customers.
Import numpy as np
Import matplotlib.pyplot as plt
import pandas as pd
Page 26 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
Page 27 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
❖ Tracer du nuage
Page 28 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
❖ Résultat du tracer
Page 29 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
- Le DBSCAN identifie les clusters en se focalisent sur la densité des points dans l’espace
des données, ce qui lui permet de trouver des clusters de forme complexes.
- Il est capable de détecter les points aberrants(outiliers) en tant que bruit (noise) et de les
exclure des clusters.
- DBSCAN peut gérer des clusters de densités différentes, ce qui en fait un choix plus
robuste pour certaines distributions de données
V. CONCLUSION
Page 30 sur 31
PROJET DE MACHINE LEARNING K-MEANS ET DBSCAN
SOURCE :
Page 31 sur 31