I have dataset of items and want to cluster them. However, I don't have a predefined distance function. Does it make sense to learn a classifier that can predict the similarity between any two items?

Dataset: A, B, C, ...

Unknown distance function: dfn(X, Y) => [0.0, 1.0]

Training dataset for classifier (let us say we only train for similar(1.0) or not(0.0)) A, B => 1.0 A, C => 0.0 A, D => 1.0 ...

After this, during the clustering operation, when I need a distance score for any two items x and y. Can I use classify(x, y) as the distance function?


1 Answer 1


A classifier is usually not well designed to produce a meaningful distance. The value returned is a confidence but the reason for low confidence doesn't necessarily mean the objects are similar.

Instead, have a look at distance learning literature. People have spend effort into coming up with clever ways of learning distances from training data.

  • $\begingroup$ Thanks for the answer. Would you be able to point me to a good starting point (A gentle introduction or Wikipedia article etc?). $\endgroup$ Commented Jan 15, 2015 at 16:23
  • $\begingroup$ I'm not using distance learning myself. $\endgroup$ Commented Jan 15, 2015 at 17:36
  • $\begingroup$ Other names for distance learning are: metric learning and similarity learning Both names in google will give you some of the relevant literature $\endgroup$ Commented Feb 24, 2015 at 11:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.