У меня около 1000 векторов x_i размерности 50000, но они очень разреженные; каждый имеет только около 50-100 ненулевых элементов. Я хочу сделать PCA в этом наборе данных (в MATLAB), чтобы уменьшить ненужную чрезвычайную размерность данных.
К сожалению, я не знаю, как это сделать без промежуточной полной матрицы из-за необходимости вычитать средства из всех примеров. И, конечно же, матрица размером 1000x50000 слишком велика, чтобы вписаться в память (по какой-то причине, когда я пытаюсь ее повредить). Matlab, встроенный в princomp
, разбивает мой компьютер, когда я пытаюсь его использовать.
Итак, мой вопрос: есть ли способ сделать PCA для этих данных, не требуя массивной не разреженной матрицы в качестве промежуточного шага?