1
$\begingroup$

I need to apply PCA on a rather big set of data, but my machine is not able to handle the workload. So I was considering to split randomly my original set into 4 subsets, apply PCA independently on each subset and finally join the 4 subsets to have the original one with the PCA.

For my understanding PCA looks for correlated variables so they can be combined into one, which somehow will represent the values of the original variables. So I believe this operation happens on a row level. However, I guess the algorithm needs to analyse all the set as a whole to determine the correlation between features, since correlation among features row by row may differ, and some rows may even have NaN values.

So I would like to know if this approach with the subsets is correct, or if I may end up with one subset which after PAC combined features a and b and another subset which combined b and c.

$\endgroup$
1
$\begingroup$

You can use mini batch PCA. One formulation is available in sklearn.

Alternatively, you can run PCA on a carefully selected subset of your data. It's very time consuming and I'm not sure it's possible, and its feasibility is task specific.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.