# Accuracy metric for Clustering

I have a model that outputs a latent N-dimensional embedding for all data points, trained in a way that clusters data-points from the same class together, while being separated from other clusters belonging to other different classes.

The N-dimensional embedding is projected down to 2D using UMAP. At each epoch, I wish to test the clustering capability of the model on these 2D projections for use as validation accuracy. I have the labels for each class.

How should I proceed?

You can compute "Silhouette Coefficient" for your aim. Its values mean:

1: Means clusters are well apart from each other and clearly distinguished.

0: Means clusters are indifferent, or we can say that the distance between clusters is not significant.

-1: Means clusters are assigned in the wrong way.

Also other measures such as purity and mutual information can be possible by computing an external criterion that evaluates how well the clustering matches the gold standard classes.''.

I shall suggest one more popular metric for this. Davies Bouldin Score (https://scikit-learn.org/stable/modules/generated/sklearn.metrics.davies_bouldin_score.html#sklearn.metrics.davies_bouldin_score).

You can also take a look at the clustering metrics in scikit documentation (https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics).