Clustering dans l’apprentissage automatique | Algorithmes, applications et plus


  1. Qu’est-ce qu’un cluster ?
  2. Qu’est-ce que le clustering ?
  3. Pourquoi le clustering ?
  4. Types de méthodes/algorithmes de clustering
  5. Algorithmes de clustering courants
  6. Applications du regroupement

Apprentissage automatique Les problèmes traitent une grande quantité de données et dépendent fortement des algorithmes utilisés pour entraîner le modèle. Il existe différentes approches et algorithmes pour former un modèle d’apprentissage automatique basé sur le problème à résoudre. L’apprentissage supervisé et non supervisé sont les deux plus importantes de ces approches. Un problème réel important de commercialisation d’un produit ou d’un service auprès d’un public cible spécifique peut être facilement résolu à l’aide d’une forme d’apprentissage non supervisé connue sous le nom de clustering. Cet article explique les algorithmes de clustering ainsi que des problèmes et des exemples réels. Commençons par comprendre ce qu’est le clustering.

Qu’est-ce qu’un cluster ?

Le mot cluster est dérivé d’un vieux mot anglais, « clyster », qui signifie un tas. Un cluster est un groupe de choses ou de personnes similaires positionnées ou se produisant à proximité les unes des autres. Habituellement, tous les points d’un cluster présentent des caractéristiques similaires ; par conséquent, l’apprentissage automatique pourrait être utilisé pour identifier les traits et séparer ces groupes. Cela constitue la base de nombreuses applications d’apprentissage automatique qui résolvent les problèmes de données dans tous les secteurs.

Qu’est-ce que le clustering ?

Comme son nom l’indique, le clustering consiste à diviser des points de données en plusieurs clusters de valeurs similaires. En d’autres termes, l’objectif du clustering est de séparer les groupes ayant des caractéristiques similaires et de les regrouper en différents clusters. C’est idéalement la mise en œuvre de la capacité cognitive humaine dans des machines leur permettant de reconnaître différents objets et de les différencier en fonction de leurs propriétés naturelles. Contrairement aux humains, il est très difficile pour une machine d’identifier une pomme ou une orange à moins d’être correctement entraînée sur un énorme ensemble de données pertinentes. Des algorithmes d’apprentissage non supervisés réalisent cette formation, en particulier le clustering.

Simply put, clusters are the collection of data points that have similar values or attributes and clustering algorithms are the methods to group similar data points into different clusters based on their values or attributes. 

Par exemple, les points de données regroupés peuvent être considérés comme un groupe ou un cluster. Par conséquent, le diagramme ci-dessous comporte deux clusters (différenciés par la couleur pour la représentation).

algorithmes de clustering dans Machine Learning

Pourquoi le clustering ?

Lorsque vous travaillez avec de grands ensembles de données, un moyen efficace de les analyser consiste à commencer par diviser les données en groupes logiques, appelés clusters. De cette façon, vous pouvez extraire de la valeur d’un grand ensemble de données non structurées. Il vous aide à parcourir les données pour extraire certains modèles ou structures avant d’approfondir l’analyse des données pour des résultats spécifiques.

L’organisation des données en clusters permet d’identifier la structure sous-jacente des données et de trouver des applications dans tous les secteurs. Par exemple, le regroupement pourrait être utilisé pour classer les maladies dans le domaine des sciences médicales et peut également être utilisé dans la classification des clients dans la recherche marketing.

Dans certaines applications, le partitionnement des données est l’objectif final. D’autre part, le regroupement est également une condition préalable à la préparation d’autres intelligence artificielle ou apprentissage automatique problèmes. Il s’agit d’une technique efficace pour la découverte de connaissances dans les données sous la forme de modèles récurrents, de règles sous-jacentes, etc. Essayez d’en savoir plus sur le clustering dans ce cours gratuit : Segmentation de la clientèle à l’aide du clustering

Types de méthodes/algorithmes de clustering

Compte tenu de la nature subjective des tâches de clustering, il existe différents algorithmes adaptés à différents types de problèmes de clustering. Chaque problème a un ensemble différent de règles qui définissent la similarité entre deux points de données, il nécessite donc un algorithme qui correspond le mieux à l’objectif du clustering. Aujourd’hui, il existe plus d’une centaine d’algorithmes d’apprentissage automatique connus pour le clustering.

Quelques types d’algorithmes de clustering

Comme leur nom l’indique, les modèles de connectivité ont tendance à classer les points de données en fonction de leur proximité des points de données. Il est basé sur la notion que les points de données plus proches les uns des autres présentent des caractéristiques plus similaires par rapport à ceux placés plus loin. L’algorithme prend en charge une hiérarchie étendue de clusters qui peuvent fusionner les uns avec les autres à certains points. Elle ne se limite pas à un seul partitionnement du jeu de données.

Le choix de la fonction de distance est subjectif et peut varier avec chaque application de regroupement. Il existe également deux approches différentes pour résoudre un problème de clustering avec des modèles de connectivité. Premièrement, tous les points de données sont classés en groupes séparés, puis agrégés à mesure que la distance diminue. La deuxième approche consiste à classer l’ensemble de données dans un seul cluster, puis à le partitionner en plusieurs clusters à mesure que la distance augmente. Même si le modèle est facilement interprétable, il manque d’évolutivité pour traiter des ensembles de données plus volumineux.

Les modèles de distribution sont basés sur la probabilité que tous les points de données d’un cluster appartiennent à la même distribution, c’est-à-dire une distribution normale ou une distribution gaussienne. Le léger inconvénient est que le modèle est très susceptible de souffrir de surajustement. Un exemple bien connu de ce modèle est l’algorithme de maximisation des attentes.

Ces modèles recherchent dans l’espace de données des densités variées de points de données et isolent les différentes régions de densité. Il attribue ensuite les points de données dans la même région en tant que clusters. DBSCAN et OPTICS sont les deux exemples les plus courants de modèles de densité.

Les modèles centroïdes sont des algorithmes de clustering itératifs où la similarité entre les points de données est dérivée en fonction de leur proximité avec le centroïde du cluster. Le centre de gravité (centre du cluster) est formé pour garantir que la distance des points de données est minimale par rapport au centre. La solution à de tels problèmes de regroupement est généralement approchée sur plusieurs essais. Un exemple de modèles centroïdes est l’algorithme K-means.

Algorithmes de clustering courants

Clustering K-Means

K-Means est de loin l’algorithme de clustering le plus populaire, étant donné qu’il est très facile à comprendre et à appliquer à un large éventail de sciences des données et problèmes d’apprentissage automatique. Voici comment vous pouvez appliquer l’algorithme K-Means à votre problème de clustering.

La première étape consiste à sélectionner au hasard un certain nombre de grappes, chacune étant représentée par une variable « k ». Ensuite, chaque cluster se voit attribuer un centroïde, c’est-à-dire le centre de ce cluster particulier. Il est important de définir les centroïdes aussi éloignés que possible les uns des autres pour réduire la variation. Une fois tous les centroïdes définis, chaque point de données est affecté au cluster dont le centroïde est le plus proche.

Une fois que tous les points de données sont attribués aux clusters respectifs, le centroïde est à nouveau attribué pour chaque cluster. Encore une fois, tous les points de données sont réorganisés en groupes spécifiques en fonction de leur distance par rapport aux centroïdes nouvellement définis. Ce processus est répété jusqu’à ce que les centroïdes arrêtent de bouger de leurs positions.

L’algorithme K-Means fait des merveilles pour regrouper de nouvelles données. Certaines des applications pratiques de cet algorithme concernent les mesures de capteurs, la détection audio et la segmentation d’images.

Jetons un coup d’œil à l’implémentation R de K Means Clustering.

K signifie regroupement avec ‘R’

  • Avoir un coup d’œil sur les premiers enregistrements de l’ensemble de données à l’aide de la fonction head()
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
  • Suppression de la colonne catégorielle « Espèces » car les k-moyennes ne peuvent être appliquées que sur des colonnes numériques
iris.new<- iris[,c(1,2,3,4)]

head(iris.new)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1          5.1         3.5          1.4         0.2
## 2          4.9         3.0          1.4         0.2
## 3          4.7         3.2          1.3         0.2
## 4          4.6         3.1          1.5         0.2
## 5          5.0         3.6          1.4         0.2
## 6          5.4         3.9          1.7         0.4
  • Réaliser un scree-plot pour identifier le nombre idéal de clusters
totWss=rep(0,5)
for(k in 1:5){
  set.seed(100)
  clust=kmeans(x=iris.new, centers=k, nstart=5)
  totWss[k]=clust$tot.withinss
}
plot(c(1:5), totWss, type="b", xlab="Number of Clusters",
    ylab="sum of 'Within groups sum of squares'") 
algorithmes de clustering dans Machine Learning
  • Visualiser le regroupement
library(cluster) 
library(fpc) 

## Warning: package 'fpc' was built under R version 3.6.2

clus <- kmeans(iris.new, centers=3)

plotcluster(iris.new, clus$cluster)
algorithmes de clustering dans Machine Learning
clusplot(iris.new, clus$cluster, color=TRUE,shade = T)
algorithmes de clustering dans Machine Learning
  • Ajout des clusters à l’ensemble de données d’origine
iris.new<-cbind(iris.new,cluster=clus$cluster) 

head(iris.new)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width cluster
## 1          5.1         3.5          1.4         0.2       1
## 2          4.9         3.0          1.4         0.2       1
## 3          4.7         3.2          1.3         0.2       1
## 4          4.6         3.1          1.5         0.2       1
## 5          5.0         3.6          1.4         0.2       1
## 6          5.4         3.9          1.7         0.4       1

Regroupement spatial basé sur la densité d’applications avec bruit (DBSCAN)

DBSCAN est l’algorithme de clustering basé sur la densité le plus courant et il est largement utilisé. L’algorithme choisit un point de départ arbitraire et le voisinage de ce point est extrait à l’aide d’une distance epsilon ‘ε’. Tous les points situés à l’intérieur de la distance epsilon sont les points de voisinage. Si ces points sont en nombre suffisant, le processus de clustering démarre et nous obtenons notre premier cluster. S’il n’y a pas assez de points de données voisins, le premier point est étiqueté bruit.

Pour chaque point de ce premier groupe, les points de données voisins (celui qui est à l’intérieur de la distance epsilon avec le point respectif) sont également ajoutés au même groupe. Le processus est répété pour chaque point du cluster jusqu’à ce qu’il n’y ait plus de points de données pouvant être ajoutés.

Une fois que nous en avons fini avec le cluster actuel, un point non visité est pris comme premier point de données du cluster suivant, et tous les points voisins sont classés dans ce cluster. Ce processus est répété jusqu’à ce que tous les points soient marqués « visités ».

DBSCAN présente certains avantages par rapport aux autres algorithmes de clustering :

  1. Il ne nécessite pas un nombre prédéfini de clusters
  2. Identifie les valeurs aberrantes comme du bruit
  3. Capacité à trouver facilement des clusters de forme et de taille arbitraires

Implémentation de DBSCAN avec Python

from sklearn import datasets
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

iris = datasets.load_iris()
x = iris.data[:, :4]  # we only take the first two features.
DBSC = DBSCAN()
cluster_D = DBSC.fit_predict(x)
print(cluster_D)
plt.scatter(x[:,0],x[:,1],c=cluster_D,cmap='rainbow')
[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0
  0  0  1  1  1  1  1  1  1 -1  1  1 -1  1  1  1  1  1  1  1 -1  1  1  1
  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 -1  1  1  1  1  1 -1  1  1
  1  1 -1  1  1  1  1  1  1 -1 -1  1 -1 -1  1  1  1  1  1  1  1 -1 -1  1
  1  1 -1  1  1  1  1  1  1  1  1 -1  1  1 -1 -1  1  1  1  1  1  1  1  1
  1  1  1  1  1  1]
<matplotlib.collections.PathCollection at 0x7f38b0c48160>
graphique

Classification hiérarchique

Classification hiérarchique est catégorisé en clusters diviseurs et agglomératifs. Fondamentalement, ces algorithmes ont des clusters triés dans un ordre basé sur la hiérarchie des observations de similarité des données.

Le clustering de division, ou l’approche descendante, regroupe tous les points de données dans un seul cluster. Ensuite, il le divise en deux groupes présentant le moins de similitudes entre eux. Le processus est répété et les clusters sont divisés jusqu’à ce qu’il n’y ait plus de possibilité de le faire.

Le clustering agglomératif, ou l’approche ascendante, attribue à chaque point de données un cluster et agrège les clusters les plus similaires. Cela signifie essentiellement rassembler des données similaires dans un cluster.

Sur les deux approches, le clustering de division est plus précis. Mais ensuite, cela dépend à nouveau du type de problème et de la nature de l’ensemble de données disponible pour décider de l’approche à appliquer à un problème de clustering spécifique dans Machine Learning.

Implémentation du clustering hiérarchique avec Python

#Import libraries
from sklearn import datasets
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering

#import the dataset
iris = datasets.load_iris()
x = iris.data[:, :4]  # we only take the first two features.
hier_clustering = AgglomerativeClustering(3)
clusters_h = hier_clustering.fit_predict(x)
print(clusters_h )
plt.scatter(x[:,0],x[:,1],c=clusters_h ,cmap='rainbow')
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 2 2 2 2 0 2 2 2 2
 2 2 0 0 2 2 2 2 0 2 0 2 0 2 2 0 0 2 2 2 2 2 0 0 2 2 2 0 2 2 2 0 2 2 2 0 2
 2 0]
<matplotlib.collections.PathCollection at 0x7f38b0bcbb00>
graphique

Applications du regroupement

Le clustering a des applications variées dans tous les secteurs et constitue une solution efficace à une pléthore de problèmes d’apprentissage automatique.

  • Il est utilisé dans les études de marché pour caractériser et découvrir une clientèle et un public pertinents.
  • Classer différentes espèces de plantes et d’animaux à l’aide de techniques de reconnaissance d’images
  • Il aide à dériver des taxonomies végétales et animales et classe les gènes ayant des fonctionnalités similaires pour mieux comprendre les structures inhérentes aux populations.
  • Il est applicable dans l’urbanisme pour identifier des groupes de maisons et d’autres installations en fonction de leur type, de leur valeur et de leurs coordonnées géographiques.
  • Il identifie également les zones d’utilisation des terres similaires et les classe comme agricoles, commerciales, industrielles, résidentielles, etc.
  • Classe les documents sur le Web pour la découverte d’informations
  • S’applique bien en tant que fonction d’exploration de données pour mieux comprendre la distribution des données et observer les caractéristiques des différents clusters
  • Identifie les fraudes au crédit et à l’assurance lorsqu’elles sont utilisées dans des applications de détection de valeurs aberrantes
  • Utile pour identifier les zones à haut risque en étudiant les zones touchées par les tremblements de terre (applicable également à d’autres risques naturels)
  • Une application simple pourrait être dans les bibliothèques pour regrouper les livres en fonction des sujets, du genre et d’autres caractéristiques
  • Une application importante consiste à identifier les cellules cancéreuses en les classant par rapport aux cellules saines
  • Les moteurs de recherche fournissent des résultats de recherche basés sur l’objet similaire le plus proche d’une requête de recherche en utilisant des techniques de clustering
  • Les réseaux sans fil utilisent divers algorithmes de clustering pour améliorer la consommation d’énergie et optimiser la transmission des données
  • Les hashtags sur les réseaux sociaux utilisent également des techniques de regroupement pour classer tous les messages avec le même hashtag sous un seul flux

Dans cet article, nous avons discuté de différents algorithmes de clustering dans Machine Learning. Bien qu’il y ait tellement plus dans l’apprentissage non supervisé et l’apprentissage automatique dans son ensemble, cet article attire spécifiquement l’attention sur les algorithmes de clustering dans l’apprentissage automatique et leurs applications. Si vous souhaitez en savoir plus sur les concepts d’apprentissage automatique, rendez-vous sur notre Blog. De plus, si vous souhaitez poursuivre une carrière dans l’apprentissage automatique, améliorez vos compétences avec Great Learning Programme PG en Machine Learning.