Problème allocation de mémoire avec AFM

990 views
Skip to first unread message

AJ_ING

unread,
Jul 31, 2013, 4:24:01 AM7/31/13
to factomin...@googlegroups.com
Bonjour,
 
J'ai lancé une AFM sous R via FactoMineR, j'ai toujours ce message d'erreur
 
 
Error: cannot allocate vector of size 16.6 Gb
In addition: Warning messages:
1: In matrix(0, n, length(levels(moda))) :
Reached total allocation of 6040Mb: see help(memory.size)
 
 
je suis sur Windows, j'ai cherché des package pour mémoire,  j'ai trouvé Bigmemory mais ça fonctionne pas sous Windows.
Comment je peux faire ? est ce que R est limité pour des bases énormes ?
 
Merci pour vos suggestion et aide.
 
Cordialement

Regis Hank

unread,
Jul 31, 2013, 5:22:26 AM7/31/13
to factomin...@googlegroups.com

Hélas R est beaucoup moins robuste pour ce qui est des bases de données volumineuses. Une des choses possible à faire est d augmenter la taille mémoire via memory.size. Cependant rien ne garantit que cela marchera... Des packages spécifiques comme ff peuvent permettre de contourner le problème mais peut être les objets de type ff ne sont pas compatible avec l'AFM.
Par ailleurs l usage d un OS 64 bits est préférable si vous travaillez sous windows pour ce genre de problèmes. Enfin sachez que l on peut swaper tout ou une partie du dataset sur le disque dur et soulager ainsi la mémoire cela est faisable via le package filehash.
Cordialement

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FactoMineR users.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse factominer-use...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
 
 

AJ_ING

unread,
Jul 31, 2013, 5:53:49 AM7/31/13
to factomin...@googlegroups.com
oui justement, avec memory.size  j'ai essayé ça n'a pas résolu mon problème,
je vais voir le package filehash,
mais les ff ou bigmemory ce n'est pas compatible qu'avec AFM ? ou avec système Windows ?
il me faut une solution pour ce problème, sinn je dois chercher d'autres outils datamining !!!
 
merci

Regis Hank

unread,
Jul 31, 2013, 8:17:01 AM7/31/13
to factomin...@googlegroups.com
Bonjour,

Essayez ceci avant toute chose,

memory.limit(size=4000)

memory.size(max=TRUE)

Le package ff, et les fonctions qui lui sont associés peuvent stocker des vecteurs de grande taille ainsi vous pouvez transformer votre dataset en un objet ff et cet objet ff qui sera donc votre dataset mais stocker sous la forme .ff il est peut être utiliser pour appliquer une AFM dessus mais je ne suis pas sûr.

Sinon pour ce qui est de votre OS, en résumé Windows en version 32 bits n'alloue pas toute la mémoire de votre RAM alors qu'avec un OS 64 bits ce problème ne se pose pas, donc sous windows si l'on a affaire à de gros volumes de données il vaut mieux avoir un OS 64 bits et se servir des librairies spécifiques aux données volumineuses.

Cordialement

jean

unread,
Aug 7, 2013, 4:50:48 AM8/7/13
to factomin...@googlegroups.com
Bonjour,

Avez-vous trouver une solution à votre problème?
La solution m'intéresse également..
 En fait dans mon cas l'ACP marche mais c'est la CAH (HCPC avec FactomineR) qui coince (impossible d'allouer vecteur de taille 2,9Mo). J'ai tout essayé, sous 64 bit, graph = false, kk = 8, consol = FALSE, ...). Cela plante toujours.

Comment utiliser le package ff? Une autre solution peut-être? 

Ma ligne de commande est la suivante :

tab<-read.csv("test.csv",header=TRUE,sep=";",dec=".",row.names=1)
scale(tab, center = TRUE, scale = TRUE)
res <- PCA (tab)
res.hcpc <- HCPC(res, graph = FALSE).

Merci d'avance si vous repassez par là ;)

AJ_ING

unread,
Aug 7, 2013, 6:22:23 AM8/7/13
to factomin...@googlegroups.com
Bonjour,
 
Oui aussi, ça plante pour CAH, je n'ai pas de solution définitif pour le moment.
pour les packages ff et bigmemory, ils résouent le problème puisque ils permettent d'allouer la mémoire sous R, mais il fonctionne que sur linux.
 
A suivre s'il y a des nouveautés
 
merci

Regis Hank

unread,
Aug 7, 2013, 7:52:43 AM8/7/13
to factomin...@googlegroups.com
Bonjour,

Il me semble que les packages ff et bigmemory fonctionne également sous windows.

Cordialement

jean

unread,
Aug 8, 2013, 6:40:32 AM8/8/13
to factomin...@googlegroups.com
Bonjour et merci pour vos réponses,

Jedécouvre le package ff, et j'avoue être un peu perdu dans l'aide de cran,
en essayant
ff<- ff(res.hcpc <- HCPC(res)),  où res mon ACP,
 j'ai toujours le même problème.

Auriez vous une ou deux astuces pour me guider ?
Utilisez vous un vmode particulier ?

Regis Hank

unread,
Aug 8, 2013, 7:06:37 AM8/8/13
to factomin...@googlegroups.com
Bonjour,

D'abord il vous faut transformer les variables de votre dataset en variable ff
Puis lancer votre ACP sur le nouveau dataset de type ff, et ensuite essayer de lancer une HCPC sur le résultat précédent.

Voici un  exemple sur l'usage de ff et comment se servir de ce package.

Cordialement

François Husson

unread,
Aug 13, 2013, 2:39:40 AM8/13/13
to factomin...@googlegroups.com
Bonjour,

Pour faire une classification sur de gros tableaux de données, il est possible d'utiliser l'argument kk dans la fonction HCPC. En mettant kk=200 par exemple, la classification sera effectuée en 2 temps : tout d'abord un partitionnement (par la méthode Kmeans)  en 200 classes est effectuée, ce qui diminue largement la taille du jeu de donnée et ensuite une CAH est effectuée à partir des 200 classes (le poids des classes étant bien sûr pris en compte dans la CAH). Cela permettra de voir le haut de l'arbre hiérarchique, ce qui est recherché (dans un gros jeu de données, il n'est pas possible de voir le bas de l'arbre).

Cela devrait régler les problèmes de mémoire évoqués pour la classification, mais pas les problèmes évoqués pour l'AFM.

FH

jean léaud

unread,
Aug 26, 2013, 6:25:02 AM8/26/13
to factomin...@googlegroups.com
Bonjour et merci beaucoup pour vos retours,

J'ai bien essayé un partitionnement en k-means mais je rencontre toujours le même problème (problème d'allocation vecteur).
Mon script est le suivant :
"tab<-read.csv("test.csv",header=TRUE,sep=";",dec=".",row.names=1)
scale(tab, center = TRUE, scale = TRUE)
res <- PCA (tab)res <- PCA (tab)
> res.hcpc <- HCPC(res, nb.clust = 8, CONSOL = TRUE, GRAPH = FALSE, kk=200)".
Peut-être ai-je une erreur d'écriture ou de compréhension ?
En parallèle j'ai essayé d'utiliser une mémoire RAM plus grande (un serveur externe de 34Go -je n'ai pas essayé  k-means), mais cela plante encore.


Je vais réessayer avec le package ff.


Jean




--
Vous recevez ce message car vous êtes abonné à un sujet dans le groupe Google Groupes "FactoMineR users".
Pour vous désabonner de ce sujet, visitez le site https://groups.google.com/d/topic/factominer-users/sO9q8Ub05qE/unsubscribe.
Pour vous désabonner de ce groupe et de tous ses sujets, envoyez un e-mail à l'adresse factominer-use...@googlegroups.com.

vorobichek

unread,
Oct 23, 2013, 6:28:41 AM10/23/13
to factomin...@googlegroups.com
Bonjour,

Moi aussi je rencontre le même problème en essayant de faire une HCPC à partir de MCA. Le vecteur est de taille 400 Mo et FactoMineR trouve que c'est trop gros.

Est-ce qu'il est possible que le code de FactoMineR restreint la taille du vecteur? Peut-on faire en sorte que R ne vérifie pas la taille de vecteur et continue de tourner HCPC? En faite j'ai une version 9.2 sur une vieux ordinateur. L'HCPC semble tourner, sauf que l'ancien ordinateur est vraiment vieux et par principe ne peut gérer une telle volume des données.
Reply all
Reply to author
Forward
0 new messages