PCA has to build the covariance matrix and find its eigenvectors before it can shrink anything. A much cheaper alternative is a random projection: multiply every point by a matrix of random numbers and keep the result. It makes no attempt to find the best directions, yet distances between points often come out nearly unchanged.
Here is a small version. Two customers are described by 6 features each:
A matrix was filled with random numbers, drawn from a bell curve centred at 0 with spread 1:
Each point is squeezed from 6 dimensions down to 3 by
The factor , one over the square root of the number of rows, keeps lengths on the same scale on average.
How well did this projection keep the distance between the two customers? Compute
using ordinary Euclidean distance, and round to 3 decimal places.