Tôi biết có các gói trong R để lưu trữ ma trận thưa thớt một cách hiệu quả. Có cách nào để lưu trữ ma trận hạng thấp hiệu quả không? Ví dụ:Lưu trữ ma trận lớn nhưng cấp thấp hiệu quả
A <- matrix(rnorm(1e6), nrow=1e5, ncol=1e1)
B <- A %*% t(A)
Hiện tại, B
quá lớn để lưu trữ trong bộ nhớ nhưng có xếp hạng thấp. Có cách nào để xây dựng và lưu trữ B
một cách hiệu quả, chẳng hạn như một số phương pháp đọc cơ bản (rowSums
, colSums
, v.v.) được thực hiện khi đang chạy, để giao dịch cho CPU hoặc bộ nhớ?
Câu hỏi thú vị- ứng dụng nào sẽ có? (Ví dụ, ma trận bậc thấp thường xuất hiện ở đâu?) –
@DavidRobinson: Các ma trận được sử dụng, như xấp xỉ các ma trận dày đặc lớn (quá lớn để tính toán, hoặc thậm chí lưu trữ), trong một số [thuật toán tối ưu hóa] (http://en.wikipedia.org/wiki/Limited-memory_BFGS). –
Nếu bạn sẵn sàng ước tính B, bạn có thể sử dụng ước lượng gần đúng không, ví dụ: sử dụng SVD và giữ nguyên thứ nguyên đầu tiên của SVD? Không chắc chắn đây là những gì bạn muốn, nhưng có thể đáng xem xét. –