Been comparing clustering algorithms kcluster, PCA, and TSNE for a while now. I would suggest TSNE its a great algorithm that beats PCA on one research benchmark in a specific real dataset like a twitter feed same with MNIST dataset.
Summary of process: First, t-SNE constructs a probability distribution over pairs of high-dimensional objects in such a way that similar objects have a high probability of being picked, whilst dissimilar points have an extremely small probability of being picked. Second, t-SNE defines a similar probability distribution over the points in the low-dimensional map, and it minimizes the Kullback–Leibler divergence between the two distributions with respect to the locations of the points in the map. Note that whilst the original algorithm uses the Euclidean distance between objects as the base of its similarity metric, this should be changed as appropriate.
Comparison to KCluster: The difference between kcluster and tsne is that you don't have to set on how many cluster it should have in the hyper parameter its allocated automatically. the only down side of this is its slow as it computes everything.
Here's a web demo: https://cs.stanford.edu/people/karpathy/tsnejs/