Ich versuche ein großes lineares Regressionsproblem mit einer dünnen Matrix zu lösen. Ich habe zwei Matrizen wie folgt erstellt:R Lösen von großen dünnen nicht-quadratischen Matrizen
> dim(A)
[1] 26573 32991
> dim(B)
[1] 26573 1
Wenn ich matrixmodels verwenden lm.fit.sparse, ich die folgende Fehlermeldung erhalten:
> 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
Was bedeutet erfordert eine große Matrix bedeuten? Wenn i B ändern, so dass es eine spärliche Matrix ist:
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"
und versuchen Sie es erneut zu lösen, erhalte ich einen anderen Fehler:
> X=MatrixModels:::lm.fit.sparse(A,B)
Error: is.numeric(y) is not TRUE
Kennt jemand die beste Weg, um dieses Problem zu lösen gehen?
Vielen Dank,
Ich habe die 'flare' Paket und verwendet gefunden: – Tammboy
Ich habe die 'flare' Paket gefunden und verwendet: 'Bibliothek (Flare) # SQRT Lasso out = slim (A, B, method = "lq", nlambda = 40, lambda.min.value = sqrt (log (200)/120)) 'aber ich habe keine Ahnung, was es macht? Weiß jemand, ob das stimmt? Es gab einen Fehler zurück: 'Fehler: Ich kann keinen Vektor der Größe 3.2 Gb zuweisen ' – Tammboy
Ich habe noch nie das' flare'-Paket benutzt, aber es scheint so, als ob Sie ein Speicherlimit erreichen. Siehe 'help (" Speicherlimits ")'. Wenn Ihr Problem spärlich ist (wie bei vielen Null-Einträgen Ihrer Matrix), dann überprüfen Sie das Paket 'glmnet'. Es scheint, dass es große Probleme behandeln kann - se [diesen Beitrag] (https://stats.stackexchange.com/questions/302893/how-does-glmnet-handle-larger-datasets). –