说明
基于用户对物品交互的相似度进行top N推荐。
代码
分为协同函数和主函数两个部分,数据集来源这里。链接:https://pan.baidu.com/s/1sQsHUgL__kwWAghe7TvMZA 提取码:18bz
# coding: utf-8 -*-
import math
import pandas as pd
class UserCf:
'''
这个 协同的方法还是比较 靠谱的,主要依靠 用户的协同,和上一个基于商品的协同可以做搭配。 这里主要找类似的人的看的情况做推荐使用。
'''
def __init__(self):
self.file_path = '../data/ratings.csv'
self._init_frame()
def _init_frame(self):
self.frame = pd.read_csv(self.file_path)
@staticmethod
def _cosine_sim(target_movies, movies):
'''
simple method for calculate cosine distance. 计算两个用户的 看过电影组合的 相似度情况。 共现情况等
e.g: x = [1 0 1 1 0], y = [0 1 1 0 1]
cosine = (x1*y1+x2*y2+...) / [sqrt(x1^2+x2^2+...)+sqrt(y1^2+y2^2+...)]