Quelle est la différence entre k-means et le clustering hiérarchique?


Réponse 1:

Il existe un certain nombre de différences importantes entre k-means et le clustering hiérarchique, allant de la façon dont les algorithmes sont mis en œuvre à la façon dont vous pouvez interpréter les résultats.

L'algorithme k-means est paramétré par la valeur k, qui est le nombre de clusters que vous souhaitez créer. Comme l'illustre l'animation ci-dessous, l'algorithme commence par créer k centroïdes. Il effectue ensuite une itération entre une étape d'affectation (où chaque échantillon est affecté à son centroïde le plus proche) et une étape de mise à jour (où chaque centroïde est mis à jour pour devenir la moyenne de tous les échantillons qui lui sont affectés. Cette itération se poursuit jusqu'à ce que certains critères d'arrêt soient par exemple, si aucun échantillon n'est réaffecté à un autre centre de gravité.

L'algorithme k-means fait un certain nombre d'hypothèses sur les données, qui sont démontrées dans cet exemple scikit-learn: démonstration des hypothèses k-means. L'hypothèse la plus notable est que les données sont «sphériques», voir comment comprendre les inconvénients des K-means pour une discussion détaillée.

Le regroupement hiérarchique aggloméré, au lieu de cela, construit des clusters de manière incrémentielle, produisant un dendogramme. Comme le montre l'image ci-dessous, l'algorithme commence par affecter chaque échantillon à son propre cluster (niveau supérieur). À chaque étape, les deux clusters les plus similaires sont fusionnés; l'algorithme continue jusqu'à ce que tous les clusters aient été fusionnés. Contrairement à k-means, vous n'avez pas besoin de spécifier un paramètre k: une fois le dendogramme produit, vous pouvez parcourir les couches de l'arborescence pour voir quel nombre de clusters est le plus logique pour votre application particulière.


Réponse 2:

La différence la plus importante est la hiérarchie. En fait, il existe deux approches différentes qui tombent sous ce nom: de haut en bas et de bas en haut.

Dans le clustering hiérarchique descendant, nous divisons les données en 2 clusters (en utilisant k-means avec

k=2k=2

, par exemple). Ensuite, pour chaque cluster, nous pouvons répéter ce processus, jusqu'à ce que tous les clusters soient trop petits ou trop similaires pour que le clustering ait du sens, ou jusqu'à ce que nous atteignions un nombre prédéfini de clusters.

Dans le clustering hiérarchique ascendant, nous commençons avec chaque élément de données ayant son propre cluster. Nous recherchons ensuite les deux éléments les plus similaires et les combinons dans un cluster plus large. Nous continuons à répéter jusqu'à ce que tous les clusters qu'il nous reste soient trop différents pour être rassemblés, ou jusqu'à ce que nous atteignions un nombre prédéfini de clusters.

Dans le clustering k-means, nous essayons d'identifier la meilleure façon de diviser les données en

kk

définit simultanément. Une bonne approche consiste à

kk

les éléments de l'ensemble de données en tant que représentants de cluster initiaux, affectez tous les éléments au cluster dont le représentant est le plus proche, puis calculez la moyenne du cluster en tant que nouveau représentant, jusqu'à ce qu'il converge (tous les clusters restent les mêmes).


Réponse 3:

La différence la plus importante est la hiérarchie. En fait, il existe deux approches différentes qui tombent sous ce nom: de haut en bas et de bas en haut.

Dans le clustering hiérarchique descendant, nous divisons les données en 2 clusters (en utilisant k-means avec

k=2k=2

, par exemple). Ensuite, pour chaque cluster, nous pouvons répéter ce processus, jusqu'à ce que tous les clusters soient trop petits ou trop similaires pour que le clustering ait du sens, ou jusqu'à ce que nous atteignions un nombre prédéfini de clusters.

Dans le clustering hiérarchique ascendant, nous commençons avec chaque élément de données ayant son propre cluster. Nous recherchons ensuite les deux éléments les plus similaires et les combinons dans un cluster plus large. Nous continuons à répéter jusqu'à ce que tous les clusters qu'il nous reste soient trop différents pour être rassemblés, ou jusqu'à ce que nous atteignions un nombre prédéfini de clusters.

Dans le clustering k-means, nous essayons d'identifier la meilleure façon de diviser les données en

kk

définit simultanément. Une bonne approche consiste à

kk

les éléments de l'ensemble de données en tant que représentants de cluster initiaux, affectez tous les éléments au cluster dont le représentant est le plus proche, puis calculez la moyenne du cluster en tant que nouveau représentant, jusqu'à ce qu'il converge (tous les clusters restent les mêmes).