2010-02-27 40 views

Respuesta

22

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.

+0

¿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. –

+0

@ 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

+0

... 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

16

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.

1

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.

Cuestiones relacionadas