1
$\begingroup$

I have a data set consisting out of approximately 1000 3D vector fields. Each vector field is a collection of approx. 100 3D vectors in 3D space. So overall I have an array with dimensions (1000,100,6).

Each vector field shows as the main pattern a global rotation. But by subtracting this average rotation instead of noise, I saw that there is a higher order "mode" which is leading to different angular velocities on two opposite sides of the data. See the attached picture:

picture

I suspect that there are more of these "modes" in the data (more swirls) and I would like to extract them from it. I guess this is a task for Principal Component Analysis or an autoencoder. Then the principal components should also be vector fields that, when added together, reproduce my data.

Is there a way to apply PCA or autoencoders to my data set? I only saw applications of them to scalar data like images (where the third dimension has length 1). I don't know how to handle vectors and their positions in neural networks (only using channels in convolutional networks.)

$\endgroup$

1 Answer 1

1
$\begingroup$

If you want to apply PCA, the easiest way to do this would simply be to unravel the 3rd dimension so that your array becomes (1000, 600). Then you should be able to apply the normal PCA tools in whatever coding language you are using. The only trick would then be to reshape your PCs back to the original shape once you have performed PCA.

$\endgroup$
1
  • $\begingroup$ Thanks for the answer! I'll try that. $\endgroup$
    – Tom B
    Mar 13, 2020 at 13:47

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.