So, let's assume we have many unsupervised learning algorithms.

We would like to compare them.

So, how can we do that?

Or even for one algorithm,

if I apply the algorithm to different applications,

which application is more suitable for this algorithm?

So, we have to answer these questions.

Now, the simplest case is this.

I already know I have two clusters.

The red one, red cross should be in one cluster,

and the blue plus should belong to another.

So, we have ground truth,

but that defeats the purpose.

If we already know the two clusters,

why should we apply any clustering algorithm?

Only under certain circumstances,

we really want to verify if this clustering is suitable or not.

For example, I have some data sets.

I know I have ground truth,

but these data sets are similar to those data sets I'm not familiar with.

So, I can always try my clustering algorithms on the data sets I have ground truth.

Only in this case, it's useful.

So, to evaluate is not easy.

Why? Because in this case,

I have five crosses and a one plus,

but I cannot have two pluses and four crosses.

So, many combinations, which one's the best?