Estoy tratando de ver si el rendimiento de ambos se puede comparar en función de las funciones objetivo en las que trabajan?¿Cuál es la diferencia entre "k means" y "fuzzy c means" funciones objetivo?
Respuesta
BTW, el algoritmo de agrupamiento Fuzzy-C-Means (FCM) también se conoce como Soft K-Means.
Las funciones del objetivo son virtualmente idénticas, la única diferencia es la introducción de un vector que expresa el porcentaje de pertenencia de un punto dado a cada uno de los conglomerados. Este vector está sometido a un exponente de "rigidez" destinado a dar más importancia a las conexiones más fuertes (y, a la inversa, a minimizar el peso de las más débiles); Incidentalmente, cuando el factor de rigidez tiende hacia el infinito, el vector resultante se convierte en una matriz binaria, lo que hace que el modelo de FCM sea idéntico al de los K-Means.
Creo que a excepción de un posible problema con los clústeres que no tienen ningún punto asignado, es posible emular el algoritmo de K-Means con el del FCM simulando un factor de rigidez infinita (= introduciendo una función que cambia el mayor valor en el vector a 1, y borra los otros valores, en lugar de la exponenciación del vector). Esta es, por supuesto, una forma muy ineficiente de ejecutar un K-Means, porque el algoritmo tiene que realizar tantas operaciones como con un FCM verdadero (solo con valores 1 y 0, lo que simplifica la aritmética, pero no la complejidad)
con respecto a rendimiento, la FCM, por tanto, necesita realizar k (es decir, número de grupos) multiplicaciones para cada punto, para cada dimensión (sin contar también la exponenciación para tomar en cuenta la rigidez). Esto, más la sobrecarga necesaria para computar y administrar el vector de proximidad, explica por qué FCM es bastante más lento que los K-Means simples.
Pero FCM/Soft-K-Means es menos "estúpido" que Hard-K-Means cuando se trata por ejemplo de clústeres alargados (cuando los puntos por lo demás consistentes en otras dimensiones tienden a dispersarse a lo largo de una dimensión particular o dos), y es por eso que aún está presente ;-)
Además, simplemente pensé en esto, pero no lo he pensado "matemáticamente", FCM puede converger más rápido que los K-Means duros, algo que compensa el mayor requisito computacional de FCM.
¿Por qué debería converger FCM más rápido? En realidad, no converge en absoluto, debe detenerse en un cierto umbral, cuando las asignaciones relativas ya no cambian "lo suficiente"; al igual que la agrupación GMM-EM. –
@ Anony-Mousse: tanto FCM como K-Means _converge_, en el sentido matemático, que es mucho lo que describes con 'cuando las asignaciones relativas ya no cambian '' lo suficiente ''. En otras palabras, la solución de agrupamiento proporcionada por sucesivas las iteraciones de estos algoritmos cambian mucho, al principio, de una iteración a la siguiente, pero finalmente los cambios se vuelven cada vez más pequeños a medida que la función se acerca a su límite. Es seguro dejar de iterar después de alcanzar un umbral de cambio práctico porque la función es convergente: iterar más no producirá un resultado significativamente diferente ... – mjv
... Lo que aún tengo que probar y estudiar, es si el FCM realmente converge K-Means más rápidos que los duros. En otras palabras, si se requieren menos iteraciones con FCM (que con K-Means simples) para alcanzar la solución "estable" deseada. – mjv
K-Means clustering y Fuzzy-C Means Clustering son muy similares en los enfoques. La principal diferencia es que, en el clúster Fuzzy-C Means, cada punto tiene una ponderación asociada a un clúster particular, por lo que un punto no se encuentra "en un clúster" tanto como tiene una asociación débil o fuerte con el clúster, que está determinada por la distancia inversa al centro del clúster.
Fuzzy-C significa que tenderá a funcionar más lento que K significa, ya que en realidad está haciendo más trabajo. Cada punto se evalúa con cada grupo, y se realizan más operaciones en cada evaluación. K-Means solo necesita hacer un cálculo de distancia, mientras que fuzzy c significa que necesita hacer una ponderación de distancia inversa completa.
personas ha escrito técnicamente y cada respuesta está bien escrita. Pero lo que quiero decir es lo mismo en lenguaje sencillo. K significa agrupar en clúster todo el conjunto de datos en K número de clúster donde los datos deben pertenecer a un solo clúster. Los c-means borrosos crean k números de clusters y luego asignan cada dato a cada cluster, pero será un factor que definirá qué tan fuertemente los datos pertenecen a ese cluster.
- 1. ¿Deberíamos usar k-means ++ en lugar de k-means?
- 2. Matlab: K-means clustering
- 3. Algoritmo Python k-means
- 4. WEKA K-Means Clustering
- 5. Online k-means clustering
- 6. ¿Cómo funciona exactamente k-means ++?
- 7. ¿Hay un algoritmo Fuzzy C-Means disponible para Python?
- 8. k-means implementación de clustering en Javascript?
- 9. Bisectriz k-means algoritmo de agrupamiento explicación
- 10. En SAS, ¿cuál es la diferencia entre Proc Means y Proc Summary?
- 11. ¿Colorea la plotmatrix de ggplot por k-means clusters?
- 12. objetivo c diferencia entre funciones y métodos
- 13. ¿Puedo usar el algoritmo K-means en una cadena?
- 14. Objetivo-C: ¿Cuál es la diferencia entre forKey y forKeyPath?
- 15. k-means: los mismos clústeres para cada ejecución
- 16. ¿Cuál es la diferencia entre C++, objetivo-c y objetivo-C++?
- 17. ¿Dónde encontrar un software/herramienta de código abierto K-medoid (no k-means) confiable?
- 18. ¿Cuál es la diferencia entre estas funciones?
- 19. ¿cuál es la diferencia entre el objetivo y el proyecto?
- 20. Cómo mantener la identificación de entrada de datos en Mahout K-means clustering
- 21. Cuál es la diferencia entre las funciones VarIsEmpty y VarIsEmptyParam
- 22. Cuál es la diferencia entre memset y memcpy en C
- 23. ¿Cuál es la diferencia entre Managed C++ y C++/CLI?
- 24. ¿Cuál es la diferencia entre C y C incrustado?
- 25. ¿Cuál es la diferencia entre Visual C++ y C++?
- 26. ¿Cuál es la diferencia entre C++ administrado y C#?
- 27. ¿Cómo realizar k-means clustering en mahout con datos vectoriales almacenados como CSV?
- 28. Variación del algoritmo K-means con el mismo tamaño de clúster
- 29. ¿Cuál es la diferencia entre estas funciones jQuery ready?
- 30. ¿Cuál es la diferencia entre estas dos funciones/enfoques?
¡Vamos! No cierre ... la agrupación de la programación de SI está relacionada, al mismo nivel que dicen algoritmos de clasificación o preguntas sobre la gramática formal. – mjv