Cesar Vanegas Castro
2017-Jan-16 15:32 UTC
[R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits
Buenos dias, desde hace algunos dias estoy realizando un trabajo,mi computadora es una DELL, windows 10 64 bits, 8G de RAM y disco de estado solido, estoy procesando 29000 filas y 23 columnas, mi codigo es este: nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, #max.nc = 10, method = "complete", index ="all") . y mi error es este: Error: cannot allocate vector of size 2.0 Gb Gracias [[alternative HTML version deleted]]
Carlos Ortega
2017-Jan-16 15:56 UTC
[R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits
Hola, ¿Has comprobado si antes de lanzar esta función tienes espacio en RAM suficiente?. Puedes poner antes de lanzarlo: - gc() - para activar el garbage collector. - Y podrías pre-dimensionar ("allocate") un vector de 2Gb con el mismo nombre de la variable "nb" para que "NbClust" cuando genere su salida ya encuentre un espacio reservado en esa variable. Y te convendría arrancar el equipo antes de lanzar este script y lanzarlo desde RGui no desde RStudio que se come otros 200Mb de RAM fácil... Y no abrir nada más que R... Gracias, Carlos Ortega www.qualityexcellence.es El 16 de enero de 2017, 16:32, Cesar Vanegas Castro < Ing.CesarVanegas en hotmail.com> escribió:> Buenos dias, desde hace algunos dias estoy realizando un trabajo,mi > computadora es una DELL, windows 10 64 bits, 8G de RAM y disco de estado > solido, estoy procesando 29000 filas y 23 columnas, mi codigo es este: > > nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, > #max.nc = 10, method = "complete", index ="all") > . > > y mi error es este: > > Error: cannot allocate vector of size 2.0 Gb > > > Gracias > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2017-Jan-16 16:02 UTC
[R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits
Hola, ¿qué tal? Si R crea la matriz de distancias necesitarás, como poco, 29*29*8 MB de RAM. Puede ser mucho para tu equipo. Trata de correr el código usando subconjuntos de datos (1%, 5%, 10%, etc.) para ver desde fuera cuánta RAM estás consumiendo. Salud, Carlos J. Gil Bellosta http://www.datanalytics.com El día 16 de enero de 2017, 16:32, Cesar Vanegas Castro <Ing.CesarVanegas en hotmail.com> escribió:> Buenos dias, desde hace algunos dias estoy realizando un trabajo,mi computadora es una DELL, windows 10 64 bits, 8G de RAM y disco de estado solido, estoy procesando 29000 filas y 23 columnas, mi codigo es este: > > nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, > #max.nc = 10, method = "complete", index ="all") > . > > y mi error es este: > > Error: cannot allocate vector of size 2.0 Gb > > > Gracias > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Cesar Vanegas Castro
2017-Jan-16 17:21 UTC
[R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits
Cordial Saludo. Muchas gracias por las respuestas En realidad no tengo mucha experiencia con este error, y tampoco con R, estoy intentando aplicar las soluciones que me proponen, pero creo que no lo estoy haciendo bien, podrian porfavor ser un poco mas especificios, muchas gracias. -en el caso de la respuesta de vegeta8504, intente modificando el codigo con el vector asi. nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, max.nc = 10, method = "complete", index =c("kl", "ch", "hartigan", "ccc", "scott", "marriot", "trcovw", "tracew", "friedman", "rubin", "cindex", "db", "silhouette", "duda", "pseudot2", "beale", "ratkowsky", "ball", "ptbiserial", "gap", "frey", "mcclain", "gamma", "gplus", "tau", "dunn", "hubert", "sdindex", "dindex", "sdbw")), pero me genera el mismo error. -el que me propone Carlos J. Gil Bellosta, en realidad no se como aplicarlo y el que me propone Carlos Ortega , la parte del gc(), misdatos son estos used (Mb) gc trigger (Mb) max used (Mb) Ncells 3780595 202 6861544 366.5 6861544 366.5 Vcells 23985417 183 767099548 5852.6 836729210 6383.8 pero no se que mas hacer de ahi. * gc() - para activar el garbage collector. * Y podrías pre-dimensionar ("allocate") un vector de 2Gb con el mismo nombre de la variable "nb" para que "NbClust" cuando genere su salida ya encuentre un espacio reservado en esa variable. Gracias por su ayuda cesar ________________________________ De: vegeta8504 . <vegeta8504 en gmail.com> Enviado: lunes, 16 de enero de 2017 11:26 a. m. Para: Carlos J. Gil Bellosta Cc: r-help-es en r-project.org; Cesar Vanegas Castro Asunto: Re: [R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits Lo que pasa es que utilizas "all" en index y te corre todos los métodos y hay métodos para datos binarios no binarios y creo que para otros tipos de datos. Dependiendo de tus datos debes utilizar los métodos que te sirvan para tú problema. Esto lo ves en la ayuda, yo pegué los nombres de los métodos desde la ayuda y lo escribí en R en forma de vector y así descarté los que no me servian. Saludos El 16/01/2017 13:02, "Carlos J. Gil Bellosta" <cgb en datanalytics.com<mailto:cgb en datanalytics.com>> escribió: Hola, ¿qué tal? Si R crea la matriz de distancias necesitarás, como poco, 29*29*8 MB de RAM. Puede ser mucho para tu equipo. Trata de correr el código usando subconjuntos de datos (1%, 5%, 10%, etc.) para ver desde fuera cuánta RAM estás consumiendo. Salud, Carlos J. Gil Bellosta http://www.datanalytics.com El día 16 de enero de 2017, 16:32, Cesar Vanegas Castro <Ing.CesarVanegas en hotmail.com<mailto:Ing.CesarVanegas en hotmail.com>> escribió:> Buenos dias, desde hace algunos dias estoy realizando un trabajo,mi computadora es una DELL, windows 10 64 bits, 8G de RAM y disco de estado solido, estoy procesando 29000 filas y 23 columnas, mi codigo es este: > > nb <- NbClust(datos.scaled, distance = "euclidean", min.nc<http://min.nc> = 2, > #max.nc<http://max.nc> = 10, method = "complete", index ="all") > . > > y mi error es este: > > Error: cannot allocate vector of size 2.0 Gb > > > Gracias > > > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org<mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es_______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
Carlos Ortega
2017-Jan-16 21:49 UTC
[R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits
Hola, Sí puedes hacer esto: A) De lo que te propone Carlos Gil. Hacer un muestro de tus datos, empezando con poca cantidad de datos y generar tu NBClust. Cómo hago un muestreo, te pongo un ejemplo con un 10% de los datos: #---------- perc_mu <- 0.1 rows_mu <- sample(1:nrow(datos_iniciales), round(0.1 * nrow(datos_iniciales,0)), replace = FALSE) datos_muestra <- datos_iniciales[ rows_mu , ] datos_scaled <- dist(datos_muestra) nb <- NBClust...... #---------- Si con el 10% funciona, lo vuelves a ejecutar con "perc_mu <- *0.5*"... y vas subiendo hasta que obtengas el error. B) Lo que te propongo yo: 1. Apago el ordenador. 2. Arranco el ordenador. 3. Abro RGui (no RStudio) y no abro ninguna aplicación más en el ordenador. 4. Ejecuto el código tal y cual lo tienes. 5. Si en el punto anterior obtengo error (que seguramente lo obtenga) ejecuto "gc()" dentro de R, que lo que hará es limpiar todos los datos que tengas en memoria. O vaya, lo mejor sal de RGui y vuelve a entrar. 6. y prueba con este código #-------------- nb <- vector(rep(0, 420485500)) ... tu código... #-------------- Con la línea primera lo que hago es llenar nb del mismo número de ceros que te va a llenar tu cálculo de distancias sobre tu matriz de "29000 x 23". De esta forma, se reserva este espacio para "nb". Cuando haces luego el cálculo con "NBClust()" la salida no tendrá que buscar espacio en RAM si no que la volcará sobre el espacio que ya tiene "nb". He probado este código en mi máquina (Mac con 8Gb de RAM): #---------- n_row <- 29000 n_col <- 23 my_mat <- matrix(rnorm(n_row * n_col), nrow = n_row , ncol = n_col) my_mat_dis <- dist(my_mat) #---------- Y el espacio que ocupa cada objeto es: - "my_mat" ocupa 5.1 Mb. - y "my_mat_dis" ocupa 3.1Gb (son 420485500 elementos). Por eso me parece extraño que en tu caso no puedas manejar estos objetos. ¿Estás usando una versión de R de 32 ó 64 bits?... Como tu Windows lo permite, al instalar R, te instalará las dos. Repite todo este código que hemos comentado con el R-64bit (tendrás un acceso directo en tu escritorio). Saludos, Carlos Ortega www.qualityexcellence.es El 16 de enero de 2017, 18:21, Cesar Vanegas Castro < Ing.CesarVanegas en hotmail.com> escribió:> Cordial Saludo. > > > Muchas gracias por las respuestas > > > En realidad no tengo mucha experiencia con este error, y tampoco con R, > estoy intentando aplicar las soluciones que me proponen, pero creo que no > lo estoy haciendo bien, podrian porfavor ser un poco mas especificios, > muchas gracias. > > > -en el caso de la respuesta de vegeta8504, intente modificando el codigo > con el vector asi. > nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, > max.nc = 10, method = "complete", index =c("kl", "ch", > "hartigan", "ccc", "scott", "marriot", "trcovw", "tracew", "friedman", > "rubin", "cindex", "db", "silhouette", "duda", "pseudot2", "beale", > "ratkowsky", "ball", "ptbiserial", "gap", "frey", "mcclain", "gamma", > "gplus", "tau", "dunn", "hubert", "sdindex", "dindex", "sdbw")), pero me > genera el mismo error. > > -el que me propone Carlos J. Gil Bellosta, en realidad no se como > aplicarlo > > y el que me propone Carlos Ortega , la parte del gc(), misdatos son estos > > used (Mb) gc trigger (Mb) max used (Mb) > Ncells 3780595 202 6861544 366.5 6861544 366.5 > Vcells 23985417 183 767099548 5852.6 836729210 6383.8 > > > pero no se que mas hacer de ahi. > > > - gc() - para activar el garbage collector. > - Y podrías pre-dimensionar ("allocate") un vector de 2Gb con el mismo > nombre de la variable "nb" para que "NbClust" cuando genere su salida ya > encuentre un espacio reservado en esa variable. > > > Gracias por su ayuda > > cesar > > > > > > ------------------------------ > *De:* vegeta8504 . <vegeta8504 en gmail.com> > *Enviado:* lunes, 16 de enero de 2017 11:26 a. m. > *Para:* Carlos J. Gil Bellosta > *Cc:* r-help-es en r-project.org; Cesar Vanegas Castro > *Asunto:* Re: [R-es] Error K-MEDIAS, paquete NbClust windows 10, 64 bits > > > Lo que pasa es que utilizas "all" en index y te corre todos los métodos y > hay métodos para datos binarios no binarios y creo que para otros tipos de > datos. Dependiendo de tus datos debes utilizar los métodos que te sirvan > para tú problema. Esto lo ves en la ayuda, yo pegué los nombres de los > métodos desde la ayuda y lo escribí en R en forma de vector y así descarté > los que no me servian. Saludos > El 16/01/2017 13:02, "Carlos J. Gil Bellosta" <cgb en datanalytics.com> > escribió: > >> Hola, ¿qué tal? >> >> Si R crea la matriz de distancias necesitarás, como poco, 29*29*8 MB >> de RAM. Puede ser mucho para tu equipo. Trata de correr el código >> usando subconjuntos de datos (1%, 5%, 10%, etc.) para ver desde fuera >> cuánta RAM estás consumiendo. >> >> Salud, >> >> Carlos J. Gil Bellosta >> http://www.datanalytics.com >> >> El día 16 de enero de 2017, 16:32, Cesar Vanegas Castro >> <Ing.CesarVanegas en hotmail.com> escribió: >> > Buenos dias, desde hace algunos dias estoy realizando un trabajo,mi >> computadora es una DELL, windows 10 64 bits, 8G de RAM y disco de estado >> solido, estoy procesando 29000 filas y 23 columnas, mi codigo es este: >> > >> > nb <- NbClust(datos.scaled, distance = "euclidean", min.nc = 2, >> > #max.nc = 10, method = "complete", index ="all") >> > . >> > >> > y mi error es este: >> > >> > Error: cannot allocate vector of size 2.0 Gb >> > >> > >> > Gracias >> > >> > >> > >> > [[alternative HTML version deleted]] >> > >> > _______________________________________________ >> > R-help-es mailing list >> > R-help-es en r-project.org >> > https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Apparently Analagous Threads
- self defined distance matrix in NbClust
- choosing the correct number of clusters usinf NbClust
- choosing the correct number of clusters using NbClust
- Index Values in NbClust
- Error in if (is.na(n) || n > 65536L) stop("size cannot be NA nor exceed 65536") : missing value where TRUE/FALSE needed