Каков наилучший способ вычисления разложения по сингулярным числам (SVD) очень большой положительной матрицы (65M x 3,4M), где данные чрезвычайно редки?
Менее 0,1% матрицы не равно нулю. Мне нужен способ, который:
- впишется в память (я знаю, что онлайн методы существуют)
- будет рассчитан в разумные сроки: 3,4 дня
- будет достаточно точным, однако точность не является моей главной задачей, и я хотел бы иметь возможность контролировать, сколько ресурсов я вложил в него.
Было бы здорово иметь библиотеку Haskell, Python, C # и т. Д., Которая реализует это. Я не использую mathlab или R, но при необходимости я могу пойти с R.