clustering - Partitionnement de données | classification non supervisée

clustering-tutoriel-python

Si tu viens de commencer ton parcours de data scientist. Tu a probablement du apprendre qu'il existait deux grand type d'apprentissage : l'apprentissage supervisé et l'apprentissage non supervisé. Par ailleurs j'en suis certain, tu sais déjà ce que sont la classification et la régression. Si ce n'est pas le cas jette un oeil à ces page : classification supervisée , régression . 

Maintenant que tu connais tout ça, je vais t'aider à apprendre le clustering ou partitionnement de données en français. 

A la fin de cet article, tu sauras  :

Qu'est ce que c'est le clustering

Les différentes application du clutering

Les différentes méthodes et algorithmes de clustering existantes

Les différentes mesure de similarité existante

Exemple avec le déroulement de l'algorithme des K-moyennes (K-means : en anglais)



C'est quoi le clustering ?

Le clustering est une méthode d'apprentissage non supervisée. C'est à dire une méthode qui apprend à partir de données non étiquetté contrairement à l'apprentissage supervisée ou la classe est nécessaire pour l'apprentissage. Ce type d'apprentissage à pour but de séparer les données différentes et  regrouper les données qui sont similaires dans des groupes qu'on appellera "cluster", ce qui est un anglicisme car "cluster" signifie groupe en français.  Le dérouler classique de la résolution d'un problème de clustering est le suivant :

1-Préparation des données 

2-Construction des mesures de similarité

3-Test et choix de l'algorithme de clustering

4-Interprétation des résultat et ajustement

schéma comparant données sans clustering et données avec clustering




Comment résoudre un problème de clustering  ?

Préparer les données -> Normalise and scale

construire des mesures de similarité -> comment définir que deux exemples sont similaire

mesure de similarité manuel 

mesure de similarité supervisée -> entrainer un réseau de neurones profon afin d'encoder les données

lancer l'algorithme de clustering

Interpréter les résultat et ajuster



Différents type de méthode de clustering 

Ils existe différentes manière de faire du clustering parmi celles-ci, on retrouve 4 grand groupes de méthode qui sont : 

Les méthodes basée sur l'utilisation de noyaux

Ces méthode utilise des noyaux afin de défénir les cluster. Une données appartient à un cluster si la similarité existante entre elle et le noyau du cluster est plus haute que celles existant avec les autres noyaux.

Qu'elques exemples d'algorithmes : 

K-moyennes 

K-médianes 


Les méthode basé sur des modèles

Ces méthode utilise des distribution de données (Gaussienne, etc...)  afin de créer les clusters dans lesquelles seront les données.

Quelques exemples d'algorithmes :

Les mixtures de Gaussiennes (Gaussian-mixture).

COBWEB

Self Organized Map (SOM)


Les méthode Basé sur la densité "Density"

Les méthodes basé sur la densité utilise le fait que dans l'espace, les données similaire sont toute regroupe au même endroit formant ainsi dans l'espace de points de hautes densité. Ces zone sont séparer par des espaces de faible de densité ou zéro ou très peu de données s'y trouve. Les données se situant dans ces zones de faible densité sont généralement considéré comme du bruit ou des cas particulier.


Quelques exemples d'algorithmes :

K-moyennes "K-means"

Expérance-Maximisation "Expectation-Maximisation"

Mean-shift

DBSCAN

OPTICS Ordering Points To Identify the Clustering Structure.


Les méthodes basées sur la hiérarchie des données "Hierachical"

Agglomerative 

A l'initialisation Chaque donnés est considéré comme un cluster, a chaque itération les clusters similaires sont fusionnées jusqu'a ce qu'il reste un certain nombre de cluster fixé par l'utilisateur ou un cluster unique. La clé de la réussite de cette algorithme est le calcul de la proximité entre les cluster. Un dendogramme est alors obtenu

divisive

C'est l'exat opposé d'algormérative. Au départ, toutes les données forment un cluster puis ce cluster est sucessivement divisé en séparant des clusters formé les données ne leur ressemblant pas.

Comment est calculée la similarité entre les clusters :

min 

max

moyenne intra cluster 

moyenne extra cluster

méthode de ward


Quelques exemples d'algorithmes :

BIRCH

CURE

Les méthodes alternatives : 

Ces méthodes sont peu connues est principalement utilisé dans la recherche :

Méthodes basées sur la théorie quantique, les graphes les ensemble, la logique flou (Fuzzy logique), les grille, la théorie des graphe etc...

Vous pouvez en savoir plus en lisant cette publication :

A Comprehensive Survey of Clustering Algorithms


Quelques exemples d'algorithmes :




Il existe différents algorithme de clustering 

K-moyennes "k-means" en anglais

expérance-maximisation "expectation-maximisation"

mean-shift

DBSCAN

spectral clustering

....

Les différentes mesure de similarité existantes :

Soit A =[a1,a2,...,ak] et B=[b1,b2,.....,bn], 2 exemple d'un jeu de données. Ils est possible de mesurer la distances entre ces deux exemples des différentes manières suivantes :

Distance euclidienne


cosinus distance


produit scalaire


Chebyshev distance


Manhattan distance


Minkowski distance

Exemple avec le déroulé de l'algorithme des K-moyennes K-means


Source : 

https://www.geeksforgeeks.org/clustering-in-machine-learning/

https://towardsdatascience.com/understanding-the-concept-of-hierarchical-clustering-technique-c6e8243758ec

https://developers.google.com/machine-learning/clustering

https://link.springer.com/content/pdf/10.1007/s40745-015-0040-1.pdf



Écrivez quelque chose ...  

   

.