tutorial method means kmeans elbow ejemplo clustering r cluster-analysis k-means

method - kmeans: pasos de la etapa de transferencia rápida superaron el máximo



kmeans() r (3)

Acabo de tener el mismo problema.

Consulte la documentación de kmeans en R vía ?kmeans :

El algoritmo de Hartigan-Wong generalmente hace un mejor trabajo que cualquiera de los dos, pero a menudo se recomienda probar varios inicios aleatorios (''nstart''> 1). En raras ocasiones, cuando algunos de los puntos (filas de ''x'') están extremadamente cerca, es posible que el algoritmo no converja en la etapa de "Transferencia rápida" , lo que indica una advertencia (y devuelve ''ifault = 4''). Un ligero redondeo de los datos puede ser aconsejable en ese caso.

En estos casos, es posible que deba cambiar a los algoritmos de Lloyd o MacQueen.

Lo desagradable de R aquí es que continúa con una advertencia que puede pasar desapercibida. Para mis propósitos de referencia, considero que se trata de una ejecución fallida y, por lo tanto, uso:

if (kms$ifault==4) { stop("Failed in Quick-Transfer"); }

Dependiendo de su caso de uso, es posible que desee hacer algo como

if (kms$ifault==4) { kms = kmeans(X, kms$centers, algorithm="MacQueen"); }

en cambio, para continuar con un algoritmo diferente.

Si está comparando K-medias, tenga en cuenta que R usa iter.max=10 por defecto. Puede tomar mucho más de 10 iteraciones para converger.

Estoy ejecutando k-means clustering en R en un conjunto de datos con 636,688 filas y 7 columnas usando el paquete de stats estándar: kmeans(dataset, centers = 100, nstart = 25, iter.max = 20) .

Recibo el siguiente error: los Quick-TRANSfer stage steps exceeded maximum (= 31834400) , y aunque se puede ver el código en http://svn.r-project.org/R/trunk/src/library/stats/R/kmeans.R - No estoy seguro de lo que va mal. Asumo que mi problema tiene que ver con el tamaño de mi conjunto de datos, pero agradecería que alguien pudiera aclarar de una vez por todas lo que puedo hacer para mitigar el problema.


Comentario de @jlhoward:

Tratar

kmeans(dataset, algorithm="Lloyd", ..)