Necesito usar variables binarias (valores 0 y 1) en k-means. Pero k-means solo funciona con variables continuas. Sé que algunas personas todavía usan estas variables binarias en k-means ignorando el hecho de que k-means solo está diseñado para variables continuas. Esto es inaceptable para mí.
Preguntas:
- Entonces, ¿cuál es la forma estadística / matemáticamente correcta de usar variables binarias en k-means / cluster jerárquico?
- ¿Cómo implementar la solución en SAS / R?
r
clustering
binary-data
k-means
mixed-type-data
GeorgeOfTheRF
fuente
fuente
Respuestas:
Tiene razón en que la agrupación de k-means no debe hacerse con datos de tipos mixtos. Dado que k-means es esencialmente un algoritmo de búsqueda simple para encontrar una partición que minimice las distancias euclidianas cuadradas dentro del clúster entre las observaciones agrupadas y el centroide del clúster, solo debe usarse con datos donde las distancias euclidianas cuadradas serían significativas.
En este punto, puede usar cualquier método de agrupación que pueda operar sobre una matriz de distancia en lugar de necesitar la matriz de datos original. (Tenga en cuenta que k-means necesita lo último). Las opciones más populares son la partición alrededor de medoides (PAM, que es esencialmente lo mismo que k-means, pero utiliza la observación más central en lugar del centroide), varios enfoques de agrupamiento jerárquico (por ejemplo , mediana, enlace único y enlace completo; con la agrupación jerárquica necesitará decidir dónde ' cortar el árbol ' para obtener las asignaciones finales del grupo) y DBSCAN, que permite formas de grupo mucho más flexibles.
Aquí hay una
R
demostración simple (nb, en realidad hay 3 grupos, pero la mayoría de los datos parecen 2 grupos apropiados):Podemos comenzar buscando en diferentes números de clústeres con PAM:
Esos resultados se pueden comparar con los resultados de la agrupación jerárquica:
El método mediano sugiere 2 (posiblemente 3) grupos, el único solo admite 2, pero el método completo podría sugerir 2, 3 o 4 a mi ojo.
Finalmente, podemos probar DBSCAN. Esto requiere especificar dos parámetros: eps, la 'distancia de alcance' (qué tan cerca deben estar vinculadas dos observaciones) y minPts (el número mínimo de puntos que deben conectarse entre sí antes de que esté dispuesto a llamarlos un 'racimo'). Una regla general para minPts es usar una más que el número de dimensiones (en nuestro caso 3 + 1 = 4), pero no se recomienda tener un número que sea demasiado pequeño. El valor predeterminado para
dbscan
es 5; nos quedaremos con eso. Una forma de pensar en la distancia de alcance es ver qué porcentaje de las distancias son menores que cualquier valor dado. Podemos hacerlo examinando la distribución de las distancias:Las distancias mismas parecen agruparse en grupos visualmente discernibles de "más cerca" y "más lejos". Un valor de .3 parece distinguir más claramente entre los dos grupos de distancias. Para explorar la sensibilidad de la salida a diferentes opciones de eps, también podemos probar .2 y .4:
El uso
eps=.3
proporciona una solución muy limpia, que (al menos cualitativamente) está de acuerdo con lo que vimos de otros métodos anteriores.Dado que no hay un grupo 1 significativo , debemos tener cuidado de tratar de hacer coincidir qué observaciones se llaman 'grupo 1' de diferentes grupos. En cambio, podemos formar tablas y si la mayoría de las observaciones llamadas 'grupo 1' en un ajuste se llaman 'grupo 2' en otro, veríamos que los resultados siguen siendo sustancialmente similares. En nuestro caso, los diferentes agrupamientos son en su mayoría muy estables y colocan las mismas observaciones en los mismos grupos cada vez; solo el agrupamiento jerárquico de enlace completo difiere:
Por supuesto, no hay garantía de que ningún análisis de clúster recupere los verdaderos clústeres latentes en sus datos. La ausencia de las verdaderas etiquetas de clúster (que estarían disponibles en, por ejemplo, una situación de regresión logística) significa que una enorme cantidad de información no está disponible. Incluso con conjuntos de datos muy grandes, los clústeres pueden no estar suficientemente bien separados para ser perfectamente recuperables. En nuestro caso, dado que conocemos la verdadera membresía del clúster, podemos comparar eso con la salida para ver qué tan bien funcionó. Como señalé anteriormente, en realidad hay 3 grupos latentes, pero los datos dan la apariencia de 2 grupos:
fuente
median method suggests 2 (possibly 3) clusters, the single only supports 2, but the complete method could suggest 2, 3 or 4
... ¿cómo llegas a esto? usando una altura de 0.3?Mire este documento de Finch, http://www.jds-online.com/files/JDS-192.pdf . Describe por qué la aplicación de métodos continuos a datos binarios puede agrupar los datos de manera incorrecta y, lo que es más importante, cuáles son algunas opciones en funciones de distancia apropiadas. No responde cómo agrupar con k-means, sino cómo agrupar correctamente los datos binarios utilizando métricas no euclidianas y un método jerárquico como Ward.
fuente