¿Puede comparar diferentes métodos de agrupación en un conjunto de datos sin verdad básica mediante validación cruzada?

12

Actualmente, estoy tratando de analizar un conjunto de datos de documentos de texto que no tiene ninguna verdad fundamental. Me dijeron que puede usar la validación cruzada k-fold para comparar diferentes métodos de agrupación. Sin embargo, los ejemplos que he visto en el pasado utilizan una verdad fundamental. ¿Hay alguna forma de utilizar los medios k-fold en este conjunto de datos para verificar mis resultados?

mtber75
fuente

Respuestas:

12

La única aplicación de validación cruzada para la agrupación que conozco es esta:

  1. Divida la muestra en un conjunto de entrenamiento de 4 partes y un conjunto de prueba de 1 parte.

  2. Aplica tu método de agrupamiento al conjunto de entrenamiento.

  3. Aplicarlo también al conjunto de prueba.

  4. Use los resultados del Paso 2 para asignar cada observación en el conjunto de pruebas a un conjunto de conjuntos de entrenamiento (por ejemplo, el centroide más cercano para k-medias).

  5. En el conjunto de pruebas, cuente para cada grupo del Paso 3 el número de pares de observaciones en ese grupo donde cada par también está en el mismo grupo de acuerdo con el Paso 4 (evitando así el problema de identificación de grupo señalado por @cbeleites). Divide por el número de pares en cada grupo para dar una proporción. La proporción más baja en todos los grupos es la medida de cuán bueno es el método para predecir la membresía de grupo para nuevas muestras.

  6. Repita desde el Paso 1 con diferentes partes en los conjuntos de entrenamiento y prueba para hacerlo 5 veces.

Tibshirani y Walther (2005), "Validación de clúster por fuerza de predicción", Journal of Computational and Graphical Statistics , 14 , 3.

Scortchi - Restablece a Monica
fuente
¿Puedes explicar qué es un par de observaciones (y por qué estamos usando un par de observaciones en primer lugar)? Además, ¿cómo podemos definir qué es un "mismo grupo" en el conjunto de entrenamiento en comparación con el conjunto de prueba? Leí el artículo, pero no se me ocurrió la idea.
Tanguy
1
@Tanguy: considera todos los pares; si las observaciones son A, B y C, los pares son {A, B}, {A, C} y {B, C} -, y no intenta definir " el mismo grupo "en los conjuntos de trenes y pruebas, que contienen diferentes observaciones. En su lugar, compara las dos soluciones de agrupamiento aplicadas al conjunto de prueba (una generada a partir del conjunto de entrenamiento y otra a partir del conjunto de prueba en sí) observando con qué frecuencia están de acuerdo en unir o separar a los miembros de cada par.
Scortchi - Restablece a Monica
ok, entonces las dos matrices de pares de observaciones, una en el conjunto de trenes, una en el conjunto de prueba, ¿se comparan con una medida de similitud?
Tanguy
@Tanguy: No, solo considera pares de observaciones en el conjunto de prueba.
Scortchi - Restablece a Monica
lo siento, no fui lo suficientemente claro. Se deben tomar todos los pares de observaciones del conjunto de prueba, a partir del cual se puede construir una matriz llena de 0 y 1 (0 si el par de observaciones no se encuentran en el mismo grupo, 1 si lo hacen). Se calculan dos matrices ya que observamos un par de observaciones para los grupos obtenidos del conjunto de entrenamiento y del conjunto de prueba. La similitud de esas dos matrices se mide con alguna métrica. ¿Estoy en lo correcto?
Tanguy
7

Estoy tratando de entender cómo aplicaría la validación cruzada al método de agrupación, como el k-means, ya que los nuevos datos que vienen cambiarán el centroide e incluso las distribuciones de agrupación en su existente.

Con respecto a la validación no supervisada en el agrupamiento, es posible que deba cuantificar la estabilidad de sus algoritmos con un número de clúster diferente en los datos muestreados nuevamente.

La idea básica de la estabilidad de la agrupación se puede mostrar en la siguiente figura:

ingrese la descripción de la imagen aquí

Puede observar que con el número de agrupación de 2 o 5, hay al menos dos resultados de agrupación diferentes (vea las líneas de guiones de división en las figuras), pero con el número de agrupación de 4, el resultado es relativamente estable.

Estabilidad de agrupamiento: una descripción general de Ulrike von Luxburg podría ser útil.

lennon310
fuente
7

El remuestreo, tal como se hace durante la validación cruzada (repetida), genera conjuntos de datos "nuevos" que varían del conjunto de datos original al eliminar algunos casos.k

Para facilitar la explicación y la claridad, arrancaría el agrupamiento.

En general, puede usar dichos agrupamientos muestreados para medir la estabilidad de su solución: ¿apenas cambia o cambia por completo?

A pesar de que no tiene una verdad básica, puede comparar el agrupamiento que resulta de diferentes ejecuciones del mismo método (remuestreo) o los resultados de diferentes algoritmos de agrupamiento, por ejemplo, tabulando:

km1 <- kmeans (iris [, 1:4], 3)
km2 <- kmeans (iris [, 1:4], 3)
table (km1$cluster, km2$cluster)

#      1  2  3
#   1 96  0  0
#   2  0  0 33
#   3  0 21  0

Como los grupos son nominales, su orden puede cambiar arbitrariamente. Pero eso significa que puede cambiar el orden para que los grupos correspondan. Luego, los elementos diagonales * cuentan los casos asignados al mismo clúster y los elementos fuera de diagonal muestran de qué manera cambiaron las asignaciones:

table (km1$cluster, km2$cluster)[c (1, 3, 2), ]

#      1  2  3
#   1 96  0  0
#   3  0 21  0
#   2  0  0 33

Diría que el remuestreo es bueno para establecer qué tan estable es su agrupación dentro de cada método. Sin eso, no tiene mucho sentido comparar los resultados con otros métodos.

* funciona también con matrices no cuadradas si resultan diferentes números de grupos. Luego me alinearía para que los elementos tenga el significado de la diagonal anterior. Las filas / columnas adicionales luego muestran de qué grupos el nuevo grupo obtuvo sus casos.yo,yo


No estás mezclando k-fold cross validation y k-means clustering, ¿verdad?

cbeleites descontentos con SX
fuente
0

Hay una publicación reciente sobre un método de validación cruzada para determinar el número de clústeres aquí .

y alguien está intentando implementar con sci-kit, aprende aquí .

7 72re

Mateo Gunther
fuente