Does anyone know about multidimensional similarity space? I am working on mixed data set (numerical and categorical), I want to create multidimensional similarity space, contains pairs of similarity measures (Numerical similarity, Categorical similarity), I have divided my data set into parts, numerical subset, categorical subset, I applied euclidean distance on numerical part.

Then I calculate the similarity based on :S(X,Y)= 1 - D(X,Y). For categorical part I used simple matching, two similarity matrices are created now, I would like to present them as pairs in space. I am going to extend my work to include another type of data set.


Since this is a general issue and you didn't give many details regarding your data, I'll present a very simplistic toy example which you'll hopefully be able to extend to your data.

Suppose I represent people using two attributes: Their age and their hair color. I am lazy so my data-set only includes three examples:

Sarah = (30, "Black")
Hannah = (26, "Blonde")
Michaela = (35, "Black")

My goal is to create a pair-wise distance matrix that will represent all the similarities in the data. It will be a $3\times 3$ symmetric matrix, with the $ij$-th entry being a measure of how dissimilar are examples $i$ and $j$. So all entries on the diagonal will be 0.

The attributes are different: age is continuous and hair-color is categorical. I need to choose a different "similarity" measure for each one. In my case:

  • Age: Squared distance.
  • Hair color: 0-1 loss. See here for a detailed survey of more "advanced" similarity measures for categorical data, choose one which will be appropriate in your case.

Finally, I need some way of "combining" between the two attributes. Essentially, I need to chose a weight vector, $(w_1, w_2)$, s.t $w_1 + w_2 =1$. You can think of $w_1$ as a measure of importance of the age attribute in determining similarity between two individuals. In my case, I think it's more important than hair-color, so I'll choose $w_1$ to be equal to $0.8$ and $w_2 = 0.2$.

Now I can bring everything together to form the combined distance matrix. Let's do one calculation for example:

d(Sarah, Hannah) = 0.8 * d_1(30,26) + 0.2*d_2("Black", "Blonde") = 0.8*16 + 0.2 *1 

Note that it's actually equivalent to calculating two separate distance matrices (one for the age attribute, and the other for the hair-color), and then calculating the weighed sum of them according to the weights $w$.

As a final note, a good practice - which I didn't do in my calculation above - is to normalize the two matrices before summing them, in order to bring their units into similar scales (in my case, 0.8*16 "dominates" the 0.2*1 factor).


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.