Memory based
get user-item matrix and calculate cosine similarity between $u_k, u_a$
$$sim^{cos}(u_k,u_a)=frac{u_kcdot u_a}{||u_k|| ||u_a||}$$
calculate in python, each row of train_data_matrix represent a user
from sklearn.metrics.pairwise import pairwise_distances user_similarity = pairwise_distances(train_data_matrix, metric="cosine") item_similarity = pairwise_distances(train_data_matrix.T, metric="cosine")
to predict user $k$ rating item $m$
$$hat{x}_{k,m}=ar{x}_k+frac{sum_{i} sim^{cos}(u_k,u_i)(x_{i,m}-ar{x}_i)}{sum_{i} |sim^{cos}(u_k,u_i)|}$$
def predict(ratings, similarity, type="user"): if type == "user": mean_user_rating = ratings.mean(axis=1) # axis=1 calculate the mean of every row ratings_diff = (ratings - mean_user_rating[:, np.newaxis]) # np.newaxis create a new axis, changing to 2-d array pred = mean_user_rating[:, np.newaxis] + similarity.dot(ratings_diff) / np.array([np.abs(similarity).sum(axis=1)]).T elif type == "item": pred = ratings.dot(similarity) / np.array([np.abs(similarity).sum(axis=1)]) return pred
Reference
https://cambridgespark.com/co...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/19698.html
摘要:用户过去的偏好很可能展示或者反应未来的兴趣偏好。数据集我们选用,下载地址数据集算法理论算法框架如图,输入是的评分矩阵,该矩阵非常稀疏。所以预测分两步进行计算项目之间的相似性和根据相似性进行预测评分。 【参考文献】:Sarwar B M . Item-based collaborative filtering recommendation algorithms[C]// Internat...
摘要:默认值为返回值,一个对象,包含了原生用户原生项目真实评分预测评分可能对后面预测有用的一些其他的详细信息在给定的测试集上测试算法,即估计给定测试集中的所有评分。 这里的格式并没有做过多的处理,可参考于OneNote笔记链接 由于OneNote取消了单页分享,如果需要请留下邮箱,我会邮件发送pdf版本,后续再解决这个问题 推荐算法库surprise安装 pip install surp...
摘要:经过一段时间的说句搜集,当具备一定的数据量时,你就可以用通过机器学习算法来执行一些有用的分析并产生一些有价值的推荐了。 翻译自 Google Cloud Platform 原文标题:Using Machine Learning on Compute Engine to Make Product Recommendations 原文地址:https://cloud.google.com/...
阅读 3539·2021-09-10 10:51
阅读 2510·2021-09-07 10:26
阅读 2485·2021-09-03 10:41
阅读 812·2019-08-30 15:56
阅读 2899·2019-08-30 14:16
阅读 3489·2019-08-30 13:53
阅读 2105·2019-08-26 13:48
阅读 1914·2019-08-26 13:37