Differences between applying KMeans over PCA and applying PCA over KMeans Short question:

As stated in the title, I'm interested in the differences between applying KMeans over PCA-ed vectors and applying PCA over KMean-ed vectors. 

Long question:

Let's suppose we have a word embeddings dataset. Each word in the dataset is embeded in R300.

We want to perform an exploratory analysis of the dataset and for that we decide to apply KMeans, in order to group the words in 10 clusters (number of clusters arbitrarily chosen). 

After doing the process, we want to visualize the results in R3. We could tackle this problem with two strategies;

Strategy 1 - Perform KMeans over R300 vectors and PCA until R3:


Apply KMeans to the R300 embeddings.
Perform PCA to the R300 embeddings and get R3 vectors.
Plot the R3 vectors according to the clusters obtained via KMeans


Result: http://kmeanspca.000webhostapp.com/KMeans_PCA_R3.html

Strategy 2 - Perform PCA over R300 until R3 and then KMeans:


Perform PCA to the R300 embeddings and get R3 vectors.
Apply KMeans to the R3 embeddings.
Plot the R3 vectors according to the clusters obtained via KMeans


Result: http://kmeanspca.000webhostapp.com/PCA_KMeans_R3.html

Are there any differences in the obtained results? Any interpretation? 

In case both strategies are in fact the same. Why is that?
There is a difference. In your first strategy, the projection to the 3-dimensional space does not ensure that the clusters are not overlapping (whereas it does if you perform the projection first).

This is because some clusters are separate, but their separation surface is somehow orthogonal (or close to be) to the PCA.

If you increase the number of PCA, or decrease the number of clusters, the differences between both approaches should probably become negligible.