¿Cómo puedo probar si mi agrupación de datos binarios es significativa?

12

Estoy haciendo un análisis del carrito de la compra. Mi conjunto de datos es un conjunto de vectores de transacción, con los artículos que se compran.

Al aplicar k-means en las transacciones, siempre obtendré algún resultado. Una matriz aleatoria probablemente también muestre algunos grupos.

¿Hay alguna manera de probar si la agrupación que encuentro es significativa, o si puede ser una coincidencia? Si es así, ¿cómo puedo hacerlo?

Peter Smit
fuente

Respuestas:

14

Con respecto al análisis del carrito de compras, creo que el objetivo principal es individualizar las combinaciones más frecuentes de productos comprados por los clientes. La association rulesrepresentan la metodología más natural aquí (de hecho lo fueron desarrollados para este propósito). El análisis de las combinaciones de productos comprados por los clientes, y la cantidad de veces que se repiten estas combinaciones, lleva a una regla del tipo 'si la condición, entonces resulta' con una medida de interés correspondiente. También puede considerar Log-linear modelspara investigar las asociaciones entre las variables consideradas.

Ahora, en cuanto a la agrupación, aquí hay información que puede ser útil:

A primera vista Variable clustering. La agrupación de variables se utiliza para evaluar la colinealidad, la redundancia y para separar las variables en agrupaciones que se pueden puntuar como una sola variable, lo que resulta en la reducción de datos. Busque la varclusfunción (paquete Hmisc en R)

Evaluación de la estabilidad en clúster: función clusterboot{R package fpc}

Estadísticas basadas en la distancia para la validación del clúster: función cluster.stats{R package fpc}

Como ha mencionado mbq, use los anchos de silueta para evaluar la mejor cantidad de grupos. Mira este . En cuanto a los anchos de silueta, vea también la función optsil .

Estime el número de clústeres en un conjunto de datos a través de la estadística de brecha

Para calcular los índices de disimilitud y las medidas de distancia, consulte dsvdis y vegdist

El algoritmo de agrupación EM puede decidir cuántos grupos crear mediante validación cruzada (si no puede especificar a priori cuántos grupos generar). Aunque se garantiza que el algoritmo EM converge a un máximo, este es un máximo local y puede no ser necesariamente el mismo que el máximo global. Para tener una mejor oportunidad de obtener el máximo global, todo el procedimiento debe repetirse varias veces, con diferentes conjeturas iniciales para los valores de los parámetros. La cifra de log-verosimilitud general se puede utilizar para comparar las diferentes configuraciones finales obtenidas: simplemente elija el mayor de los máximos locales . Puede encontrar una implementación del clúster EM en el proyecto de código abierto WEKA

Este también es un enlace interesante.

También buscar aquí paraFinding the Right Number of Clusters in k-Means and EM Clustering: v-Fold Cross-Validation

Finalmente, puede explorar los resultados de agrupación usando clusterfly

George Dontas
fuente
8

Este es un método que usa Monte Carlo para mostrar si un resultado es correcto.

Nuestra hipótesis nula H_0 es que nuestro conjunto de datos no tiene una agrupación interesante. Nuestra hipótesis alternativa H_1 es que nuestro conjunto de datos contiene una agrupación interesante.

Por la presente, consideramos interesante como, más interesante que la estructura de agrupamiento de un conjunto de datos aleatorio con los mismos márgenes de fila y columna. Por supuesto, se podrían elegir otras restricciones, pero perder las restricciones hará que nuestro resultado sea demasiado general, y restringir las restricciones fijará la agrupación en mucho, por lo que nuestro resultado será insignificante automáticamente. Los márgenes, como veremos, son una buena opción debido a los métodos existentes para aleatorizar con ellos.

Definamos como nuestro estadístico de prueba el error de agrupamiento (distancia cuadrática dentro del grupo), T desde from_0. El valor de nuestro conjunto de datos original es t .

No sabemos nada sobre esta distribución, excepto que podemos extraer muestras de ella. Lo que lo convierte en un buen candidato para Monte Carlo.

Ahora sacamos n (iid) muestras aleatorias de Π_0 y calculamos la p empírica valor con la fórmula p_emp = 1 / (n + 1) * (Σ_i = 1-n I (t_i> = t) + 1)

El muestreo aleatorio se puede hacer mediante aleatorización de intercambio. En palabras simples, se busca un cuadrado con dos esquinas opuestas un 1 y en las otras dos esquinas un 0. Luego se invierten las esquinas. Esto mantiene los márgenes de columna y fila. El procedimiento se repite suficientes veces hasta que el conjunto de datos se aleatoriza lo suficiente (esto requerirá algunos experimentos). Se puede encontrar más información sobre esto en Evaluación de resultados de minería de datos a través de la aleatorización de intercambio de Gionis et. Alabama.

Un método para hacerlo es definir la distribución de sus datos y tomar el error de agrupación como prueba estadística t.

Por ejemplo, si consideramos que todos los conjuntos de datos con los mismos márgenes de fila y columna son nuestra distribución de datos, entonces podemos tomar n matrices aleatorias Xi de esta distribución y calcular el error de agrupación para ellos. Entonces podemos calcular el valor p emperical por la fórmula

Peter Smit
fuente
4

Hay algo como la silueta , que en cierta medida define la estadística que determina la calidad del clúster (por ejemplo, se utiliza para optimizar k). Ahora, un posible Monte Carlo iría de la siguiente manera: se generan muchos conjuntos de datos aleatorios similares a los originales (por ejemplo, barajando valores entre filas en cada columna), se agrupan y se obtiene una distribución de la silueta media que luego se puede usar para probar la importancia de silueta en datos reales. Aún administro que nunca he probado esta idea.


fuente
1
Esto me recuerda a un póster que vi en la conferencia Human Brain Mapping 2010. Tom Nichols usó bootstrap paramétrico para evaluar la estabilidad de la correlación y la silueta cophenetic en la agrupación jerárquica, pero vea su póster: j.mp/9yXObA .
chl
@chl Gracias; de hecho, recientemente he visto algo similar en mi laboratorio; el resultado fue que los grupos no son significativos: - /
Estoy de acuerdo en que esto suena como bootstrapping.
Vass
(FYI: interpretación del valor de la silueta ). Además, tenga en cuenta que el valor de la silueta no está definido para el grupo k = 1, por lo que no podemos comparar la hipótesis k = 1 (es decir, el conjunto de datos no está agrupado) frente a k> 1 (el conjunto de datos está agrupado) utilizando el valor de la silueta.
Franck Dernoncourt