TP Apprentissage Non Supervisé - CAH et K-Means PDF

Summary

Ce document décrit les méthodes de classification ascendante hiérarchique (CAH) et K-Means pour l'apprentissage non supervisé, à l'aide d'exemples. Il présente les étapes conceptuelles de ces méthodes, ainsi que leur implémentation en R.

Full Transcript

Apprentissage Non Supervisée – CAH et K-Means : Travaux Pratiques Enseignant : SAWADOGO Florian Landry Rakis Classification ascendante Hiérarchique (CAH) En rappel, l’objectif de la CAH est de produire différents clusters d’observations homogènes (Chaque cluster est composé d’observations les...

Apprentissage Non Supervisée – CAH et K-Means : Travaux Pratiques Enseignant : SAWADOGO Florian Landry Rakis Classification ascendante Hiérarchique (CAH) En rappel, l’objectif de la CAH est de produire différents clusters d’observations homogènes (Chaque cluster est composé d’observations les plus similaires possible). De façon pratique, nous utiliserons les étapes suivantes : 1. Calcul de la dissimilarité par paire entre chaque observation de l’ensemble de données.  Tout d’abord, nous devons choisir une métrique de distance – comme la distance euclidienne – et utiliser cette métrique pour calculer la dissemblance entre chaque observation dans l’ensemble de données.  Pour un ensemble de données avec n observations, il y aura un total de n(n- 1)/2 dissemblances par paires. 2. Fusion des observations en grappes.  À chaque étape de l’algorithme, fusionnez les deux observations les plus similaires en un seul cluster.  Répétez cette procédure jusqu’à ce que toutes les observations soient membres d’un grand groupe. Le résultat final est un arbre, qui peut être tracé sous la forme d’un dendrogramme. 3. Déterminer la proximité de deux clusters :  Regroupement complet des liens : Trouvez la distance maximale entre les points appartenant à deux clusters différents.  Regroupement à liaison unique : Trouvez la distance minimale entre les points appartenant à deux clusters différents.  Regroupement moyen des liaisons : Trouvez toutes les distances par paires entre des points appartenant à deux groupes différents, puis calculez la moyenne.  Regroupement de liaison centroïde : Trouvez le centroïde de chaque cluster et calculez la distance entre les centroïdes de deux clusters différents.  Méthode de la variance minimale de Ward : Minimisez le total CAH dans R en 05 étapes Etape 1 : Les packages nécessaires Tout d’abord, nous allons charger deux packages qui contiennent plusieurs fonctions utiles pour le clustering hiérarchique dans R. library(factoextra) library(cluster) data (" USArrests ") Etape 2 : Chargez et préparer les données Pour ce TP, nous allons utiliser l’ensemble de données USArrests intégré à R, qui contient le nombre d’arrestations pour 100 000 habitants dans chaque État américain en 1973 pour meurtre, agression et viol, ainsi que le pourcentage de la population de chaque État vivant dans des zones urbaines, UrbanPop. Le code suivant montre comment procéder comme suit :  Charger le jeu de données USArrests  Supprimer toutes les lignes avec des valeurs manquantes  Mettez à l’échelle chaque variable de l’ensemble de données pour qu’elle ait une moyenne de 0 et un écart type de 1 (accorder le même poids à chaque variable). Etape 3 : Trouver la méthode de liaison à utiliser Pour effectuer un clustering hiérarchique dans R, nous pouvons utiliser la fonction agnes() du package cluster, qui utilise la syntaxe suivante : Agnès(Données, Méthode) où :  données : Nom du jeu de données.  méthode : Méthode à utiliser pour calculer la dissemblance entre les clusters. Comme nous ne savons pas à l’avance quelle méthode produira les meilleurs clusters, nous pouvons écrire une fonction courte pour effectuer un clustering hiérarchique en utilisant plusieurs méthodes différentes. Notez que cette fonction calcule le coefficient d’agglomération de chaque méthode, qui est une métrique qui mesure la force des clusters. Plus cette valeur est proche de 1, plus les clusters sont forts. Nous pouvons voir que la méthode de variance minimale de Ward produit le coefficient d’agglomération le plus élevé, nous l’utiliserons donc comme méthode pour notre clustering hiérarchique final : Chaque feuille au bas du dendrogramme représente une observation dans l’ensemble de données d’origine. Au fur et à mesure que nous remontons le dendrogramme à partir du bas, les observations qui sont similaires les unes aux autres sont fusionnées en une branche. Etape 4 : Déterminer le nombre optimal de clusters Pour déterminer le nombre de clusters dans lesquels les observations doivent être regroupées, nous pouvons utiliser une métrique connue sous le nom de statistique d’écart, qui compare la variation totale intra-cluster pour différentes valeurs de k avec leurs valeurs attendues pour une distribution sans clustering. Nous pouvons calculer la statistique d’écart pour chaque nombre de clusters à l’aide de la fonction clusGap() du package de cluster, ainsi qu’un graphique des statistiques de clusters par rapport à l’écart à l’aide de la fonction fviz_gap_stat() : Sur le graphique, nous pouvons voir que la statistique d’écart est la plus élevée à k = 4 clusters. Ainsi, nous choisirons de regrouper nos observations en 4 groupes distincts. Etape 5 : Appliquer des étiquettes de cluster à l’ensemble de données d’origine Pour ajouter des étiquettes de cluster à chaque observation de notre ensemble de données, nous pouvons utiliser la méthode cutree() pour découper le dendrogramme en 4 clusters : Nous pouvons ensuite ajouter les étiquettes de cluster de chaque état à l’ensemble de données d’origine : Enfin, nous pouvons utiliser la fonction aggregate() pour trouver la moyenne des variables dans chaque cluster : Nous interprétons ce résultat comme suit :  Le nombre moyen de meurtres pour 100 000 citoyens dans les États du groupe 1 est de 14,67.  Le nombre moyen d’agressions pour 100 000 citoyens parmi les États du groupe 1 est de 251,28.  Le pourcentage moyen de résidents vivant dans une zone urbaine parmi les États du groupe 1 est de 54,28 %.  Le nombre moyen de viols pour 100 000 citoyens dans les États du groupe 1 est de 21,68. K-Means En rappel, l’objectif des k-means est d’avoir des k groupes dans lesquels les observations à l’intérieur de chaque groupe sont assez similaires les unes aux autres tandis que les observations dans différents groupes sont très différentes les unes des autres. De façon pratique, nous utiliserons les étapes suivantes : 1. Choisissez une valeur pour K.  Tout d’abord, nous devons décider du nombre de clusters que nous souhaitons identifier dans les données. Souvent, il suffit de tester plusieurs valeurs différentes pour K et d’analyser les résultats pour voir quel nombre de clusters semble avoir le plus de sens pour un problème donné. 2. Attribuez au hasard chaque observation à un cluster initial, de 1 à K. 3. Effectuez la procédure suivante jusqu’à ce que les affectations de cluster cessent de changer.  Pour chacun des K clusters, calculez le centroïde du cluster. Il s’agit simplement du vecteur des moyennes de la caractéristique p pour les observations dans le kème amas.  Attribuez chaque observation au cluster dont le centroïde est le plus proche. Ici, le plus proche est défini à l’aide de la distance euclidienne. K-Means dans R en 04 étapes Etape 1 : Les packages nécessaires library(factoextra) library(cluster) data (" USArrests ") Etape 2 : Chargez et préparer les données Nous allons utiliser l’ensemble de données USArrests intégré à R. Le même procédé de préparation que celui de la CAH est appliqué :  Charger le jeu de données USArrests  Supprimer toutes les lignes avec des valeurs manquantes  Mettez à l’échelle chaque variable de l’ensemble de données pour qu’elle ait une moyenne de 0 et un écart type de 1 Etape 3 : Trouver le nombre optimal de clusters Pour effectuer le clustering k-means dans R, nous pouvons utiliser la fonction intégrée kmeans(), qui utilise la syntaxe suivante : kmeans(données, centres, nstart) où:  données: Nom du jeu de données.  Centres: Nombre de clusters, noté k.  nstart : Nombre de configurations initiales. Étant donné qu’il est possible que différents clusters de démarrage initiaux puissent conduire à des résultats différents, il est recommandé d’utiliser plusieurs configurations initiales différentes. L’algorithme k-moyennes trouvera les configurations initiales qui conduisent à la plus petite variation au sein du cluster. Comme nous ne savons pas à l’avance combien de clusters est optimal, nous allons créer deux graphiques différents qui peuvent nous aider à décider : 1. Nombre de grappes par rapport au total dans la somme des carrés Tout d’abord, nous allons utiliser la fonction fviz_nbclust() pour créer un graphique du nombre de clusters par rapport au total dans la somme des carrés : Généralement, lorsque nous créons ce type de graphique, nous recherchons un « coude » où la somme des carrés commence à « plier » ou à se stabiliser. Il s’agit généralement du nombre optimal de clusters. Pour ce graphique, il semble qu’il y ait un peu de coude ou de « courbure » à k = 4 grappes. 2. Statistique du nombre de clusters par rapport à l’écart Une autre façon de déterminer le nombre optimal de clusters consiste à utiliser une métrique connue sous le nom de statistique d’écart, qui compare la variation totale intra-cluster pour différentes valeurs de k avec leurs valeurs attendues pour une distribution sans clustering. Nous pouvons calculer la statistique d’écart pour chaque nombre de clusters à l’aide de la fonction clusGap() du package de cluster, ainsi qu’un graphique des statistiques de clusters par rapport à l’écart à l’aide de la fonction fviz_gap_stat() : Sur le graphique, nous pouvons voir que la statistique d’écart est la plus élevée à k = 4 clusters, ce qui correspond à la méthode du coude que nous avons utilisée précédemment. Étape 4 : Effectuer un clustering K-Means avec un K optimal Enfin, nous pouvons effectuer un clustering k-means sur l’ensemble de données en utilisant la valeur optimale pour k de 4 : D’après les résultats, nous pouvons voir que :  16 États ont été affectés au premier cluster  13 États ont été affectés au deuxième groupe  13 États ont été affectés au troisième groupe  8 États ont été affectés au quatrième groupe Nous pouvons visualiser les clusters sur un nuage de points qui affiche les deux premiers composants principaux sur les axes à l’aide de la fonction fivz_cluster() : Nous pouvons également utiliser la fonction aggregate() pour trouver la moyenne des variables dans chaque cluster : Nous interprétons ce résultat comme suit :  Le nombre moyen de meurtres pour 100 000 habitants dans les États du groupe 1 est de 3,6.  Le nombre moyen d’agressions pour 100 000 citoyens parmi les États du groupe 1 est de 78,5.  Le pourcentage moyen de résidents vivant dans une zone urbaine parmi les États du groupe 1 est de 52,1 %.  Le nombre moyen de viols pour 100 000 citoyens dans les États du groupe 1 est de 12,2. Et ainsi de suite. Nous pouvons également ajouter les affectations de cluster de chaque état à l’ensemble de données d’origine :

Use Quizgecko on...
Browser
Browser