Pourquoi utilisons-nous k-means au lieu d'autres algorithmes?

14

J'ai fait des recherches sur k-means et voici ce que j'ai obtenu: k-means est l'un des algorithmes les plus simples qui utilise une méthode d'apprentissage non supervisée pour résoudre les problèmes de clustering connus. Cela fonctionne très bien avec de grands ensembles de données.

Cependant, il existe également des inconvénients des K-Means qui sont:

  • Forte sensibilité aux valeurs aberrantes et au bruit
  • Ne fonctionne pas bien avec une forme de cluster non circulaire - le nombre de cluster et la valeur de départ initiale doivent être spécifiés au préalable
  • Faible capacité à passer l'optimum local.

Y a-t-il quelque chose de génial à propos de k-means, car il semble que les inconvénients dépassent les avantages de k-means.

S'il-te-plaît apprend-moi.

Crâne d'or avec motif
la source
3
Une bonne méthode ou un bon algorithme n'existe pas sans le contexte d'un problème dans lequel il est utilisé. Nous utilisons donc k-means parce qu'il y a des problèmes pour lesquels k-means est une solution optimale (;

Réponses:

8

D'autres algorithmes de clustering avec de meilleures fonctionnalités ont tendance à être plus chers. Dans ce cas, k-means devient une excellente solution pour le pré-clustering, réduisant l'espace en sous-espaces disjoints plus petits où d'autres algorithmes de clustering peuvent être appliqués.

zeferino
la source
Plus cher que dans le coût du programme? ou ?
Crâne d'or avec motif
5
Plus cher que lent et gourmand en mémoire.
Martin O'Leary
Oh je vois. Y a-t-il d'autres avantages autres que rapides, robustes et plus faciles à comprendre? Et de toute façon merci pour les réponses @ MartinO'Leary et @ zeferino
Gold Skull avec motif
6

K-means est le plus simple. Pour implémenter et exécuter. Il vous suffit de choisir "k" et de l'exécuter plusieurs fois.

La plupart des algorithmes plus intelligents (en particulier les bons) sont beaucoup plus difficiles à implémenter efficacement (vous verrez des facteurs de 100x dans les différences d'exécution) et ont beaucoup plus de paramètres à définir.

De plus , la plupart des gens n'ont pas besoin de clusters de qualité . Ils sont en fait satisfaits de tout ce qui fonctionne à distance pour eux. De plus, ils ne savent pas vraiment quoi faire lorsqu'ils ont des clusters plus complexes. K-means, qui modélise les clusters en utilisant le modèle le plus simple de tous les temps - un centroïde - est exactement ce dont ils ont besoin: une réduction massive des données en centroïdes .

A QUIT - Anony-Mousse
la source
0

K-means est comme l'algorithme de tri Exchange. Facile à comprendre, aide à entrer dans le sujet, mais ne doit jamais être utilisé pour quelque chose de réel, jamais. Dans le cas du tri Exchange, même le tri à bulles est préférable car il peut s'arrêter tôt si le tableau est partiellement trié. Dans le cas des K-moyennes, l'algorithme EM est le même algorithme mais suppose des distributions gaussiennes pour les grappes au lieu de l'hypothèse de distribution uniforme des K-moyennes. K-means est un cas limite de EM lorsque tous les clusters ont des matrices de covariance diagonale. La structure gaussienne signifie que les clusters se rétractent eux-mêmes aux données d'une manière très agréable. Cela contourne les objections sérieuses que vous avez correctement soulevées dans la question. Et EM n'est pas beaucoup plus cher que K-means, vraiment. (Je peux implémenter les deux dans une feuille de calcul Excel.) Mais pour les applications de clustering sérieuses,

Dr James M. Coggins
la source