I have high-dimensional space (around 20 features) and I want to calculate similarity based on the angle of observation, not the magnitude. I have a nice function that can compute euclidean distance fast, so I wanted to use it instead of some worse performant function to compute cosine similarities. But as there's direct relationship between euclidean distance and cosine similarity as explained enter link description here here I think I'm fine as long as I normalise each observations to have length 1. So I did.
But since it is high-dimensional space I feel I could benefit from using PCA. Before PCA, scaling features is advisable as they have ranges and, therefore, variances. But after scaling features I don't have the observations of length 1 anymore, so euclidean distance is not "equivalent" to cosine similarity anymore.
My understanding is that since performing PCA and choosing n principal components changes our features space I should normalise observations in the new feature space and not the old one, because I am calculating similarities on the new feature space. But it still feels like kind of a chicken-or-egg situation.
Am I right about normalising observations in new feature space obtained from PCA? Or should we normalise the observations before PCA? If so, why?