all of them seems to work with original data, but not with the already produced coordinates.
I don't understand this sentence. The don't work with the original data, but with the original data?
Anyway, I believe you are trying to do external evaluation, but you are looking at internal evaluation methods.
Internal evaluation uses the coordinates (or usually the distances) of objects to compute e.g. variances and cluster separation. External evaluation on the other hand compares the resulting clustering with a reference solution (i.e. existing class labels)
Both have their benefits and drawbacks.
- With internal evaluation you do see overfitting. One method (e.g. k-means) may just naturally optimize for a criterion similar to the one you use for evaluation, whereas another algorithm (e.g. DBSCAN) does not optimize for any such statistical criterion at all. Results will be biased to methods such as k-means by design; internal evaluation should not be used with different algorithms, but is best used to compare multiple runs of the same algorithm (e.g. running k-means multiple times).
- Internal evaluation is sensitive to preprocessing.
At the same time, internal evaluation doesn't need class labels, so you can evaluate without having existing classes.
External evaluation obviously can only be used when you have labeled data.
- External evaluation allows for arbitrarily shaped clusters, and is not susceptible to methods overfitting on the evaluation statistic.
- External evaluation has problems on the motivation side: if you already had labels, why would you use clustering in the first place? Just use the labels!
- External evaluation actually punishes algorithms that discover interesting sub- or superstructures of the labels. Any deviation from the labels is considered bad, even if it were interesting to a human user...
- External evaluation cannot handle hierarchical clustering results, as e.g. obtained from hierarchical clustering or OPTICS.
As for external evaluation, I recommend looking at the "pair counting" evaluation methods. Maybe choose the adjusted rand index (ARI) there.
Oh, and make sure to remove labels and shuffle your data before running clustering. I've seen people run clustering with the binary class label as extra attribute... guess what happened...