I'm new in recommender systems and I try to find similar users of a base users for user-based collaborative filtering. When I calculated the similarity score now between two users (based on there 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 this values to 0 to 1 (-1 would become 0 and 1 would be 1) to make it comparable to other algorithms?

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

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

(maybe the question also could be: "Which users should be taken as 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?")


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, privacy policy and cookie policy

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