Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sans Nom 1

Télécharger au format odt, pdf ou txt
Télécharger au format odt, pdf ou txt
Vous êtes sur la page 1sur 13

Vue d'ensemble

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 !

Traduit avec www.DeepL.com/Translator (version gratuite)

Pourquoi avons-nous besoin du 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.

Cela vous semble confus ? Essayons de le comprendre à l'aide d'un exemple.


Ici, nous avons quelques
points de données représentés
par une couleur grise. Voyons
comment DBSCAN regroupe
ces points de données.

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 pas d'autres points de
données autour d'un point de données dans un rayon d'epsilon, alors il est traité comme bruit.
Ici, nous avons
quelques points de
données représentés
par une couleur
grise. Voyons
comment DBSCAN
regroupe ces points
de données.

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 :

Directement atteignables par la densité


Atteignable par la densité
Connecté à la densité

Comprenons ce qu'ils sont.

Un point X est directement accessible par densité à partir d'un point Y par rapport à epsilon,
minPoints si,

X appartient au voisinage de Y, c'est-à-dire dist(X, Y) <= epsilon


Y est un point central
Overview
• DBSCAN clustering is an underrated yet super useful clustering algorithm for unsupervised
learning problems
• Learn how DBSCAN clustering works, why you should learn it, and how to implement
DBSCAN clustering in Python
 

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.
 

What Exactly is DBSCAN Clustering?


DBSCAN stands for Density-Based Spatial Clustering of Applications with Noise.

It was proposed by Martin Ester et al. in 1996. DBSCAN is a density-based clustering


algorithm that works on the assumption that clusters are dense regions in space
separated by regions of lower density.

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.
 

Reachability and Connectivity


These are the two concepts that you need to understand before moving further. Reachability states if
a data point can be accessed from another data point directly or indirectly, whereas Connectivity
states whether two data points belong to the same cluster or not. In terms of reachability and
connectivity, two points in DBSCAN can be referred to as:
• Directly Density-Reachable
• Density-Reachable
• Density-Connected
Let’s understand what they are.
A point X is directly density-reachable from point Y w.r.t epsilon, minPoints if,
1. X belongs to the neighborhood of Y, i.e, dist(X, Y) <= epsilon
2. Y is a core point

Here, X is directly density-reachable from Y, but vice versa is not valid.


A point X is density-reachable from point Y w.r.t epsilon, minPoints if there is a chain of points
p1, p2, p3, …, pn and p1=X and pn=Y such that pi+1 is directly density-reachable from pi.
Here, X is density-reachable from Y with X being directly density-reachable from P2, P2 from P3,
and P3 from Y. But, the inverse of this is not valid.
A point X is density-connected from point Y w.r.t epsilon and minPoints if there exists a point O
such that both X and Y are density-reachable from O w.r.t to epsilon and minPoints.

Here, both X and Y are density-reachable from O, therefore, we can say that X is density-connected
from Y.
 

Parameter Selection in DBSCAN Clustering


DBSCAN is very sensitive to the values of epsilon and minPoints. Therefore, it is very important to
understand how to select the values of epsilon and minPoints. A slight variation in these values can
significantly change the results produced by the DBSCAN algorithm.
The value of minPoints should be at least one greater than the number of dimensions of the dataset,
i.e., 
minPoints>=Dimensions+1.
It does not make sense to take minPoints as 1 because it will result in each point being a separate
cluster. Therefore, it must be at least 3. Generally, it is twice the dimensions. But domain knowledge
also decides its value.
he value of epsilon can be decided from the K-distance graph. The point of maximum curvature
(elbow) in this graph tells us about the value of epsilon. If the value of epsilon chosen is too small
then a higher number of clusters will be created, and more data points will be taken as noise.
Whereas, if chosen too big then various small clusters will merge into a big cluster, and we will lose
details.

Vous aimerez peut-être aussi