What would be a valid similarity measure to quantify the (dis)similarity between two different datasets processed using the same trained version of a self-organizing map (trained on the combination of both datsets)?

What I mean is, each instance from the first dataset will be assigned to a specific node, giving rise to representation $R1$. Every instance from dataset 2 will also be assigned to a specific node, giving rise to representation $R2$. How do I quantify the dissimilarity between $R1$ and $R2$?

Would similarity measures for count data be appropriate, counting the number of datapoints assigned to a certain node of the map?

  • $\begingroup$ Are you training the map on both datasets? In other words, is your training set just a combination of the two individual datasets? $\endgroup$ – KirkD_CO Jan 20 '18 at 16:38
  • $\begingroup$ That's indeed the case $\endgroup$ – Archie Jan 20 '18 at 16:48

One way to approach this is similar to what you've proposed. Train the SOM with the combined datasets and then for each node compute the number of representatives of R1 and R2, or compute the proportion of R1/R2 in each node. If the datasets are very different in size, this won't work quite so well due to over representation of one group relative to the other, and you'll need to consider some way to normalize the proportion.

You can visualize the results in a number of ways, too. If you make a histogram of all of the node proportions, a U-shaped graph tells you that the two datasets are separated in the map, whereas an A-shaped graph tells you they are mixed. You can also plot the nodes in an X-Y plane (assuming you have a two dimensional SOM) and color each node by the proportion of R1 and R2.

Choosing the size of your map will be tricky, too. The smaller the dimensions of the map, the more likely you'll have overlaps unless the datasets are very, very different. A very large map will likely lead to separation of the datasets simply because there's more room to spread out the examples.

If you use a map with a very large number of nodes, you can start to define more definitive clusters and distances between clusters by looking at the distances between the nodes themselves. This is called a U-matrix and this Wikipedia page (https://en.wikipedia.org/wiki/Self-organizing_map) has a brief description along with links to more in-depth details.

| cite | improve this answer | |
  • $\begingroup$ Thanks for your answer. And how would you quantify then the similarity between R1 and R2 (or R1/R2)? $\endgroup$ – Archie Jan 22 '18 at 10:16
  • $\begingroup$ Add I said, on a per node basis, you can get % overlap and then look at the separation in a couple of ways graphically. To distill it down to one number, you could calculate average overlap, but that may be over simplifying it. $\endgroup$ – KirkD_CO Jan 22 '18 at 13:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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