# Set similarity as weight to ratings

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!

• The entries in you vectors are really close to each other, any measure will result in close similarities, you'll likely have to go for the marginal differences. – Lucas Farias Mar 29 at 13:00
• @LucasFarias what can I do about that? – christouandr7 Mar 30 at 9:56