Skip to content

[R-es] Remuestreo de Clusters

7 messages · Carlos J. Gil Bellosta, Olivier Nuñez, Jorge I Velez +1 more

#
Hola, ¿qué tal?

Hay algo que no entiendo dado que en cada iteración creas una nueva
partición del espacio (una nueva llamada a kmeans). Algo se me escapa
porque no veo qué relación guarda el cluster con la etiqueta "i" entre
cada una de las iteraciones...

Un saludo,

Carlos J. Gil Bellosta

El 24 de junio de 2009 17:50, Jorge Ivan
Velez<jorgeivanvelez en gmail.com> escribió:
#
Jorge,

podrías dar un ejemplo concreto en Filogenia.
No estoy seguro de entender la finalidad del bootstap que aparece en  
tu código.
Intuyo que un análisis cluster jerárquico podría ser adecuado en este  
tipo de problema.
Si es así el package pvclust debería serte de ayuda.
Un saludo. Olivier

-- ____________________________________

Olivier G. Nuñez
Email: onunez en iberstat.es
Tel : +34 663 03 69 09
Web: http://www.iberstat.es

____________________________________




El 24/06/2009, a las 17:50, Jorge Ivan Velez escribió:
#
Hola Jorge,

No conozco otro paquete de R que haga lo que necesitas. Random-forest usa
una
mescla de bootstrap y regression trees para construir no solo modelos de
clasificacion
sino tambien modelos de clusters. Quizas te interese usarlo en tu problema.

Te adjunto un paper sobre el tema que te puede ser util. En general el
problema que
tenes es que estas estimando una matriz de probabilidades de dimension (nxk)
y
los metodos de boostrap pueden dar resultados erraticos. Posiblemente tengas
que
agregar un segundo nivel de remuestreo para este problema de prediccion.

Pablo


----- Original Message -----
From: "Jorge Ivan Velez" <jorgeivanvelez en gmail.com>
To: "R-help-es" <r-help-es en r-project.org>
Sent: Wednesday, June 24, 2009 5:50 PM
Subject: [R-es] Remuestreo de Clusters


Buenos dias para todos,
Estoy trabajando en una aplicación que involucra análisis de clusters.
Básicamente el objetivo es determinar a qué cluster pertenece cada
observación de una matriz de datos "mydata" y luego generar muestras
aleatorias de los mismos datos para determinar la proporción de veces que
cada observación es clasificada en el cluster k.

Este tipo de análisis es muy común en aplicaciones de Phylogeny <
http://en.wikipedia.org/wiki/Phylogeny>

Suponiendo que el método de cluster a utilizar es fijo y que de alguna
manera se determinó que el número de clusters óptimo, conocen alguna
libreria en R que permita hacer lo que describo?

Este es un ejemplo en R en el que utilizo ksmeans y 7 clusters

# Data set
set.seed(123)
mydata <- matrix(rnorm(100*10), ncol=10)
colnames(mydata) <- paste('X', 1:10, sep="")
rownames(mydata) <- paste('s', 1:100, sep="")

# Función para determinar el cluster al que
# pertenece cada muestra s_i
foo <- function(X, k = 7){
      x <- X[sample(nrow(X)),]
      rx <- rownames(x)
      cluster <- kmeans(x, k)$cluster
      names(cluster) <- rx
      cluster[rownames(X)]
         }

# Repitiendo foo 1000 veces
N <- 1000
res <- replicate(N, foo(mydata))

# Dandole un nuevo formato a la salida de res
grupos <- t(apply(res, 1, function(x){
              x <- factor(x, levels = 1:7)
              table(x)
               }
      )
 ) /1000
head(grupos)

Al trabajar con datos completamente aleatorios, se espera que las
proporciones de los grupos sea similares. En este caso el valor cluster
donde la proporción es mayor puede ser obtenido como:

apply(grupos, 1, which.max)


Muchas gracias,

Jorge Ivan Velez





----------------------------------------------------------------------------
----


_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: bootstrap-trees.pdf
Type: application/pdf
Size: 301248 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20090625/96f15911/attachment-0001.pdf>
#
De nada Jorge!

En realidad me di cuenta de la complejidad de tu problema cuando
empeze a cambiar tu código para usar el paquete "boot".

Pablo

----- Original Message -----
From: "Jorge Ivan Velez" <jorgeivanvelez en gmail.com>
To: "Pablo Emilio Verde" <PabloEmilio.Verde en uni-duesseldorf.de>
Cc: "R-help-es" <r-help-es en r-project.org>
Sent: Thursday, June 25, 2009 9:30 PM
Subject: Re: [R-es] Remuestreo de Clusters


Muchas gracias Pablo por tu ayuda.
En definitiva lo que intenté hacer con el código que envié a la lista parece
más complejo de lo que inicialmente pensé, así que cambiaré mi estrategia.

Por ahora el artículo que me envías y tu sugerencia de explorar RandomForest
me son de gran ayuda.

Gute nacht,
Jorge


2009/6/25 Pablo Emilio Verde <PabloEmilio.Verde en uni-duesseldorf.de>
problema.
--
----------------------------------------------------------------------------
----


_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es