I have a problem deciding which similarity function to use.
I want to find the similarity between the users based on their requirements about computer performance metrics normalized to 1. Each user rated some computers with a rating between 1 and 5. I want to use the similarities as weights to the ratings in order to get a score for every computer.
My vectors are:
vectorA = [0.8, 0.75, 0.9] vectorB = [0.85, 0.77, 0.83] and vectorC = [0.82, 0.72, 0.86].
Using Cosine Similarity, I have the following similarities:
Similarity(A,B) = 0.99806 Similarity(A,C) = 0.99948 Similarity(B,C) = 0.99908
The problem is that the three similarities are almost 1. So I can't use these results as weights to the ratings. It would be like taking the average of the ratings.
I have thought of using Euclidean distance similarity 1/(1+EuclideanDistance), but I don't know if this is right.
What do you propose? Thank you!