Sans Nom 1
Sans Nom 1
Sans Nom 1
Le clustering DBSCAN est un algorithme de clustering sous-estimé mais très utile pour les
problèmes d'apprentissage non supervisé.
Apprenez comment fonctionne le clustering DBSCAN, pourquoi vous devriez l'apprendre, et
comment implémenter le clustering DBSCAN en Python.
Introduction
La maîtrise de l'apprentissage non supervisé ouvre un large éventail d'avenues pour un scientifique
des données. Il y a tellement de possibilités dans la vaste étendue de l'apprentissage non supervisé et
pourtant beaucoup de débutants en apprentissage automatique ont tendance à s'en éloigner. En fait,
je suis sûr que la plupart des nouveaux arrivants s'en tiendront aux algorithmes de regroupement de
base comme le regroupement K-Means et le regroupement hiérarchique.
Bien qu'il n'y ait rien de mal à cette approche, elle limite ce que vous pouvez faire lorsque vous êtes
confronté à des projets de clustering. Et pourquoi se limiter quand vous pouvez élargir votre
apprentissage, vos connaissances et vos compétences en apprenant le puissant algorithme de
clustering DBSCAN ?
Le clustering est une technique essentielle de l'apprentissage automatique et est largement utilisé
dans de nombreux domaines et industries (pensez à l'optimisation des trajets d'Uber, au système de
recommandation d'Amazon, à la segmentation des clients de Netflix, etc.) Cet article s'adresse à
tous ceux qui souhaitent ajouter un algorithme inestimable à leurs compétences d'apprentissage
automatique en herbe : le clustering DBSCAN !
Il s'agit d'une question pertinente. Nous disposons déjà d'algorithmes de clustering de base, alors
pourquoi devriez-vous consacrer votre temps et votre énergie à apprendre une autre méthode de
clustering ? C'est une question pertinente, alors laissez-moi y répondre avant de parler de ce qu'est
le clustering DBSCAN.
Tout d'abord, clarifions le rôle du clustering.
Le clustering est une technique d'apprentissage non supervisée dans laquelle nous essayons de
regrouper les points de données en fonction de caractéristiques spécifiques. Il existe plusieurs
algorithmes de clustering, les plus utilisés étant K-Means et Hierarchical. Certains des cas
d'utilisation des algorithmes de clustering
lgorithmes de clustering comprennent
Le clustering de documents
Moteur de recommandation
Segmentation d'images
Segmentation du marché
le regroupement des résultats de recherche
et la détection d'anomalies.
Tous ces problèmes utilisent le concept de clustering pour atteindre leur objectif final. Par
conséquent, il est crucial de comprendre le concept de clustering. Mais voici le problème avec ces
deux algorithmes de clustering.
K-Means et le clustering hiérarchique échouent tous deux dans la création de clusters de formes
arbitraires. Ils ne sont pas capables de former des clusters basés sur des densités variables. C'est
pourquoi nous avons besoin du clustering DBSCAN.
Essayons de le comprendre à l'aide d'un exemple. Ici, nous avons des points de données densément
présents sous la forme de cercles coancentriques :
DBSCAN ne requiert que deux paramètres : epsilon et minPoints. Epsilon est le rayon du cercle à
créer autour de chaque point de données pour vérifier la densité et minPoints est le nombre
minimum de points de données requis à l'intérieur de ce cercle pour que ce point de données soit
classé comame point central.
Dans les dimensions supérieures, le cercle devient une hypersphère, epsilon devient le rayon de
cette hypersphère, et minPoints est le nombre minimum de points de données requis à l'intérieur de
cette hypersphère.
DBSCAN crée un
cercle de rayon
epsilon autour de
chaque point de
données et les classe
en points centraux, points limites et bruit. Un point de données est un point central si le cercle qui
l'entoure contient au moins le nombre de points 'minPoints'. Si le nombre de points est inférieur à
minPoints, alors il est classé comme point de frontière, et s'il n'y a aucun autre point de données
autour d'un point de données dans un rayon d'epsilon, alors il est traité comme bruit.
La figure ci-dessus nous montre un cluster créé par DBCAN avec minPoints = 3. Ici, nous
dessinons un cercle de rayon égal epsilon autour de chaque point de données. Ces deux paramètres
aident à créer des clusters spatiaux.
Tous les points de données ayant au moins 3 points dans le cercle, y compris lui-même, sont
considérés comme des points centraux représentés par une couleur rouge. Tous les points de
données avec moins de 3 mais plus de 1 point dans le cercle, y compris lui-même, sont considérés
comme des points de frontière. Ils sont représentés par la couleur jaune. Enfin, les points de
données dont aucun point autre que lui-même n'est présent à l'intérieur du cercle sont considérés
comme du bruit et sont représentés par la couleur violette.
Pour localiser les points de données dans l'espace, DBSCAN utilise la distance euclidienne, bien
que d'autres méthodes puissent également être utilisées (comme la distance orthogonale pour les
données géographiques). Il n'a également besoin de parcourir l'ensemble des données qu'une seule
fois, alors que d'autres algorithmes doivent le faire plusieurs fois.
Atteignabilité et connectivité
Ce sont les deux concepts que vous devez comprendre avant d'aller plus loin. L'accessibilité indique
si un point de données est accessible à partir d'un autre point de données directement ou
indirectement, tandis que la connectivité indique si deux points de données appartiennent ou non au
même cluster.
appartiennent ou non au même cluster. En termes d'accessibilité et de connectivité, deux points dans
DBSCAN peuvent être désignés comme suit :
Un point X est directement accessible par densité à partir d'un point Y par rapport à epsilon,
minPoints si,
Introduction
Mastering unsupervised learning opens up a broad range of avenues for a data scientist. There is so
much scope in the vast expanse of unsupervised learning and yet a lot of beginners in machine
learning tend to shy away from it. In fact, I’m sure most newcomers will stick to basic clustering
algorithms like K-Means clustering and hierarchical clustering.
While there’s nothing wrong with that approach, it does limit what you can do when faced with
clustering projects. And why limit yourself when you can expand your learning, knowledge, and
skillset by learning the powerful DBSCAN clustering algorithm?
Clustering is an essential technique in machine learning and is used widely across domains and
industries (think about Uber’s route optimization, Amazon’s recommendation system, Netflix’s
customer segmentation, and so on). This article is for anyone who wants to add an invaluable
algorithm to their budding machine learning skillset – DBSCAN clustering!
Here, we’ll learn about the popular and powerful DBSCAN clustering algorithm and how you can
implement it in Python. There’s a lot to unpack so let’s get rolling!
If you’re new to machine learning and unsupervised learning, check out this popular resource:
• Introduction to Data Science
Table of Contents
• Why do we need DBSCAN Clustering?
• What Exactly is DBSCAN Clustering?
• Reachability and Connectivity
• Parameter Selection
• Implementing DBSCAN Clustering in Python
• Applying Clustering Algorithms
Why do we need DBSCAN Clustering?
This is a pertinent question. We already have basic clustering algorithms, so why should you spend
your time and energy learning about yet another clustering method? It’s a fair question so let me
answer that before I talk about what DBSCAN clustering is.
First, let’s clear up the role of clustering.
Clustering is an unsupervised learning technique where we try to group the data points based on
specific characteristics. There are various clustering algorithms with K-Means and Hierarchical
being the most used ones. Some of the use cases of clustering algorithms include:
• Document Clustering
• Recommendation Engine
• Image Segmentation
• Market Segmentation
• Search Result Grouping
• and Anomaly Detection.
All these problems use the concept of clustering to reach their end goal. Therefore, it is crucial to
understand the concept of clustering. But here’s the issue with these two clustering algorithms.
K-Means and Hierarchical Clustering both fail in creating clusters of arbitrary shapes. They are not
able to form clusters based on varying densities. That’s why we need DBSCAN clustering.
Let’s try to understand it with an example. Here we have data points densely present in the form of
concentric circles:
We can see three different dense clusters in the form of concentric circles with some noise here.
Now, let’s run K-Means and Hierarchical clustering algorithms and see how they cluster these data
points.
You might be wondering why there are four colors in the graph? As I said earlier, this data contains
noise too, therefore, I have taken noise as a different cluster which is represented by the purple
color. Sadly, both of them failed to cluster the data points. Also, they were not able to properly
detect the noise present in the dataset. Now, let’s take a look at the results from DBSCAN
clustering.
Awesome! DBSCAN is not just able to cluster the data points correctly, but it also perfectly detects
noise in the dataset.
It groups ‘densely grouped’ data points into a single cluster. It can identify clusters in large spatial
datasets by looking at the local density of the data points. The most exciting feature of DBSCAN
clustering is that it is robust to outliers. It also does not require the number of clusters to be told
beforehand, unlike K-Means, where we have to specify the number of centroids.
DBSCAN requires only two parameters: epsilon and minPoints. Epsilon is the radius of the circle
to be created around each data point to check the density and minPoints is the minimum number of
data points required inside that circle for that data point to be classified as a Core point.
In higher dimensions the circle becomes hypersphere, epsilon becomes the radius of that
hypersphere, and minPoints is the minimum number of data points required inside that hypersphere.
Sounds confusing? Let’s understand it with the help of an example.
Here, we have some data points represented by grey color. Let’s see how DBSCAN clusters these
data points.
DBSCAN creates a circle of epsilon radius around every data point and classifies them
into Core point, Border point, and Noise. A data point is a Core point if the circle around it
contains at least ‘minPoints’ number of points. If the number of points is less than minPoints, then it
is classified as Border Point, and if there are no other data points around any data point
within epsilon radius, then it treated as Noise.
The above figure shows us a cluster created by DBCAN with minPoints = 3. Here, we draw a circle
of equal radius epsilon around every data point. These two parameters help in creating spatial
clusters.
All the data points with at least 3 points in the circle including itself are considered as Core points
represented by red color. All the data points with less than 3 but greater than 1 point in the circle
including itself are considered as Border points. They are represented by yellow color. Finally, data
points with no point other than itself present inside the circle are considered as Noise represented by
the purple color.
For locating data points in space, DBSCAN uses Euclidean distance, although other methods can
also be used (like great circle distance for geographical data). It also needs to scan through the
entire dataset once, whereas in other algorithms we have to do it multiple times.
Here, both X and Y are density-reachable from O, therefore, we can say that X is density-connected
from Y.