I am new to recommender systems and am trying to find similar users of base users for user-based collaborative filtering.

When I calculated the similarity score between two users (based on their ratings with Pearson algorithm [or Resnick's weighted Pearson algorithm]) I get a similarity score from -1 to 1.

Is it a good idea to normalize these values to 0 to 1 (-1 would become 0 and 1 would be 1) to make it comparable to other algorithms?

In fact, I tried to build recommendations with a negative similarity score of a user, the calculated/predicted rating could be negative as well which makes no sense.

Should I normalize/scale "-1 to 1" to "0 to 1" or cut off all users with similarity scores below 0?

(maybe the question also could be: "Which users should be taken as a mentor to recommend new items on a similarity score from -1 to 1? Or should I take the top n users with highest similarity score?")


1 Answer 1


One thing you can do is to separate the contributions of:

  • a) who have a positive correlation with you
  • b) who have a negative correlation with you

Then you can:

  1. Predict the rating using only users in a) $\to$ those will have positive correlation, this positive weights. Call this $\hat{r}_a$
  2. Predict the rating using only users in b) $\to$ in this case, consider the weights as positive (even in they are negative correlation). Call this $\hat{r}_b$
  3. The final predicted rating is $\hat{r} = \frac{\hat{r}_a - \hat{r}_b}{2}$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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