J'essaie de résoudre un grand problème de régression linéaire à matrice clairsemée. J'ai créé deux matrices comme suit:R Résoudre de grandes matrices creuses non-carrées
> dim(A)
[1] 26573 32991
> dim(B)
[1] 26573 1
Si j'utilise matrixmodels lm.fit.sparse, je reçois l'erreur suivante:
> X=MatrixModels:::lm.fit.sparse(A,B)
Error in .solve.dgC.qr(if ([email protected] %in% c("dtCMatrix", "dgCMatrix")) x else as(x, : dgCMatrix_qrsol(<26573 x 32991>-matrix) requires a 'tall' rectangular matrix
Qu'est-ce que nécessite une matrice haute signifie? Si je change B pour que ce soit une matrice creuse:
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"
et essayer de résoudre à nouveau, je reçois une autre erreur:
> X=MatrixModels:::lm.fit.sparse(A,B)
Error: is.numeric(y) is not TRUE
Est-ce que quelqu'un sait la meilleure façon de s'y prendre pour résoudre ce problème?
Un grand merci,
J'ai trouvé le paquet 'flare' et utilisé: – Tammboy
J'ai trouvé le paquet 'flare' et utilisé: 'bibliothèque (flare) # RACINE Lasso out = mince (A, B, method = "lq", nlambda = 40, lambda.min.value = sqrt (log (200)/120)) 'mais je n'ai aucune idée de ce qu'il fait? Est-ce que quelqu'un sait si c'est correct? Il a retourné une erreur: 'Erreur: impossible d'allouer un vecteur de taille 3.2 Gb' – Tammboy
Je n'ai jamais utilisé le paquet' flare' mais il semble que vous ayez atteint une limite de mémoire. Voir 'help (" Memory-limits ")'. Si votre problème est faible (comme dans de nombreuses entrées nulles de votre matrice), vérifiez le paquet 'glmnet'. Il semble qu'il peut gérer de gros problèmes - se [cet article] (https://stats.stackexchange.com/questions/302893/how-does-glmnet-handle-larger-datasets). –