5 votos

¿Cómo representar la probabilidad de que un punto pertenezca a un clúster?

Quiero hacer un gráfico de dispersión con un conjunto de datos bidimensional. Supongamos que sólo tengo 3 clusters. Entonces, podría asignar a cada cluster un color de estos: rojo, verde y azul. Si se hace una asignación suave, entonces cada punto de datos tendría una cierta probabilidad de pertenecer a cada cluster. Esto se puede aclarar visualmente trazando cada punto en el gráfico de dispersión con un valor RGB de $[p_1,p_2,p_3]$ , donde $p_i$ es la probabilidad de que ese punto pertenezca al cluster $i$ .

Esto funciona para 2 o 3 clases. ¿Pero qué pasa si tengo más de 3? ¿Hay alguna manera de representar estas probabilidades de una manera intuitiva, preservando la posición de cada muestra en el espacio 2D? Estoy usando R para hacer los gráficos, si eso da alguna información útil.

0 votos

Como el espacio de la percepción del color es tridimensional, y se sabe que el color es relativamente pobre en la representación de propiedades cuantitativas en primer lugar, esta cuestión parece un callejón sin salida. Parece más bien que se busca algún método eficaz para visualizar las probabilidades estimadas de pertenencia a más de tres clases. ¿Por qué no formular entonces una versión de la pregunta que sea más directamente relevante para su objetivo? ¿Hay alguna razón por la que esté empeñado en intentar utilizar el color?

1 votos

@whuber Tienes toda la razón, no sé por qué me quedé con los colores. Efectivamente busco cualquier tipo de representación que ayude a visualizar estas probabilidades.

1 votos

¿Qué tal un gráfico de barras apiladas?

8voto

mkt Puntos 688

En general, se trata de un problema difícil, sobre todo si se tiene en cuenta la restricción de conservar las posiciones relativas en el espacio 2D.

En ausencia de esa restricción, recomendaría un gráfico de barras apiladas. Con barras finas y un conjunto de datos ordenados, los colores pueden utilizarse fácilmente para indicar la probabilidad de pertenecer a diferentes grupos para un número bastante considerable de puntos. Este tipo de gráficos son habituales en la genética de poblaciones y pueden transmitir una gran cantidad de información útil, como en este ejemplo .

Si nos atenemos a la restricción de conservar las posiciones relativas en 2 dimensiones, se me ocurre una solución que podría funcionar para conjuntos de datos de tamaño modesto con un número reducido de clusters. En estos casos, se puede representar cada punto como una pequeña tarta; los segmentos de la tarta denotan la probabilidad de pertenecer a cada clúster.

Este es un ejemplo de trabajo con 3 clusters

# Loading required libraries
library(e1071)
library(ggplot2)
library(scatterpie)

# Generating data frame
dat <- data.frame(a = c(rnorm(50, mean = 10, sd = 3), 
                        rnorm(50, mean = 20, sd = 3),
                        rnorm(50, mean = 30, sd = 3)),
                  b = c(rnorm(50, mean = 10, sd = 5), 
                        rnorm(50, mean = 20, sd = 3),
                        rnorm(50, mean = 30, sd = 3)))

# Identifying clusters and calculating cluster probabilities using 
#  fuzzy c-means clustering
clustdat <- cmeans(dat, centers = 3)

# Adding cluster information to dataset
dat$clusters <- as.factor(clustdat$cluster)
dat$A <- clustdat$membership[,1]
dat$B <- clustdat$membership[,2]
dat$C <- clustdat$membership[,3]

# Plotting
ggplot() + geom_scatterpie(aes(a, b, group = clusters), 
                           data = dat, cols = LETTERS[1:3])

enter image description here Tenga en cuenta que esto también puede ser útil con >2 dimensiones, combinando esto con algún tipo de técnica de reducción de dimensión (para el trazado - la agrupación se puede hacer en el espacio multidimensional).

0voto

Amadiere Puntos 5606

Quizá no sea necesario codificar exactamente la distribución.

Defina un color para "mixto", por ejemplo, gris.

A continuación, interpolar entre su paleta de racimos y el gris en función de la diferencia entre $p_\max$ y la segunda mayor probabilidad.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X