# 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. Mar 29, 2019 at 13:00
• @LucasFarias what can I do about that? Mar 30, 2019 at 9:56