Quelle est la complexité temporelle des k-means?
Je passais par le k-means page Wikipedia. Basé sur l'algorithme, je pense que la complexité est O(n*k*i)
(n
= total des éléments, k
= nombre de cluster itération)
Si quelqu'un peut m'expliquer cette déclaration de Wikipédia et comment est-ce NP-difficile?
Si
k
etd
(la dimension) sont fixes, le problème peut être exactement résolu dans le tempsO(ndk+1 log n)
, oùn
est le nombre d'entités à être regroupés.
OriginalL'auteur parallel | 2013-09-05
Vous devez vous connecter pour publier un commentaire.
Cela dépend de ce que vous appelez k-moyens.
Le problème de trouver l'optimum global de la k-means de la fonction objectif
est NP-dur, où
Si
est le clusteri
(et il y ak
clusters),xj
est led
dimensions de point dans le groupeSi
etμi
est le centre de gravité (moyenne des points) de clusterSi
.Toutefois, l'exécution d'un nombre fixe
t
d'itérations de la algorithme standard ne prend queO(t*k*n*d)
, pourn
(d
dimensions) points, oùk
est le nombre de centroïdes (ou clusters). Cette pratique, implémentations de faire (souvent avec de l'aléatoire redémarre entre les itérations).L'algorithme n'est qu'une approximation d'un optimum local de la fonction ci-dessus, et ainsi de faire tous les k-moyens algorithmes que j'ai vu.
OriginalL'auteur Fred Foo
Le problème est NP-Dur, car il y a une autre bien connue NP-difficile problème qui peut être réduit à (planaire) k-means problème. Avoir un regard sur le papier Le Planaire k-means Problème est NP-dur (Mahajan et coll.) pour plus d'info.
OriginalL'auteur Dheeraj M Pai
Dans cette réponse, notez que
i
utilisé dans les k-means l'objectif de la formule eti
utilisés dans l'analyse de la complexité du temps des k-means (qui est, le nombre d'itérations nécessaires jusqu'à ce que la convergence) sont différentes.OriginalL'auteur masec