私は大きなスパース行列線形回帰問題を解こうとしています。次のように私は2つの行列を作成しました:R大きなスパースの非正方行列を解く
> dim(A)
[1] 26573 32991
> dim(B)
[1] 26573 1
私はmatrixmodels lm.fit.sparseを使用している場合は、私は次のエラーを取得する:
> 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
何をすると背の高いマトリックスが意味する必要が?それは疎行列だように、私はBを変更した場合:
[1] "dgCMatrix"
attr(,"package")
[1] "Matrix"
と再び解決しようと、私は別のエラーを取得:
> X=MatrixModels:::lm.fit.sparse(A,B)
Error: is.numeric(y) is not TRUE
誰もがこの問題を解決するについて行くための最善の方法を知っていますか?
多くのお礼ありがとうございます。
私は「フレア」パッケージを発見し、使用している: – Tammboy
私は「フレア」パッケージを発見し、使用している: 'ライブラリ(フレア) #SQRTなげなわ アウト=スリム(A、B、方法=「LQ」、 nlambda = 40、λmin.value= sqrt(log(200)/ 120)) 'しかし、私はそれが何をしているのか分かりません。これが正しいかどうか誰にも分かりますか? 'エラー:サイズ3.2のベクトルを割り当てることができませんでした。Gb' – Tammboy
' flare'パッケージは一度も使用していませんが、メモリ制限を超えたようです。 'help("メモリ制限 ")'を参照してください。あなたの問題がまばらである場合(あなたの行列の多くのゼロエントリのように)、 'glmnet'パッケージをチェックしてください。それは大きな問題を処理することができるようです - この投稿(https://stats.stackexchange.com/questions/302893/how-does-glmnet-handle-larger-datasets)。 –