A Data Science Central Community
Originally posted here.
In this post will explain about User based Collaborative Filtering. This algorithm usually works by searching a large group of people and finding a smaller set with tastes similar to yours. It looks at other things they like and combines them to create a ranked list of suggestions.
This involves two steps:
Creating Similarity score for people helps us to identify similar people. We use Cosine based Similarity function to calculate the similarity between the users. Know more about cosine similarity here. In R we have a cosine function readily available:
The above explanation is written in the below R function:
rec_itm_for_user = function(userNo)
{ #calcualte column wise sum
col_sums= list()
rat_user = critics[userNo,2:7]
x=1
tot = list()
z=1
for(i in 1:ncol(rat_user)){
if(is.na(rat_user[1,i]))
{
col_sums[x] = sum(weight_mat[,i],na.rm=TRUE)
x=x+1
temp = as.data.frame(weight_mat[,i])
sum_temp=0
for(j in 1:nrow(temp))
{ if(!is.na(temp[j,1]))
{
sum_temp = sum_temp+user_sim[j,7]
}
}
tot[z] = sum_temp z=z+1
}
}
z=NULL
z=1
for(i in 1:ncol(rat_user)){
if(is.na(rat_user[1,i]))
{
rat_user[1,i] = col_sums[[z]]/tot[[z]] z=z+1
}
}
return(rat_user)
}
Calling the above function gives the below results:
Recommending movies for Chan will be in the order: Matrix (3.48), Titanic(2.81), Inception(2.35).
© 2021 TechTarget, Inc.
Powered by
Badges | Report an Issue | Privacy Policy | Terms of Service
Most Popular Content on DSC
To not miss this type of content in the future, subscribe to our newsletter.
Other popular resources
Archives: 2008-2014 | 2015-2016 | 2017-2019 | Book 1 | Book 2 | More
Most popular articles
You need to be a member of BigDataNews to add comments!
Join BigDataNews