今天看了itemCF的代码
有很多看不懂的地方,改天留着请教其他人
`# coding = utf-8
基于项目的协同过滤推荐算法实现
import random
import time
import math
from operator import itemgetter
class ItemBasedCF():
# 初始化参数
def init(self,k):
# 找到相似的20部电影,为目标用户推荐10部电影
self.n_sim_movie = k
self.n_rec_movie = 10
# 将数据集划分为训练集和测试集
self.trainSet = {}
self.testSet = {}
# 用户相似度矩阵
self.movie_sim_matrix = {}
self.movie_popular = {}
self.movie_count = 0
print('Similar movie number = %d' % self.n_sim_movie)
print('Recommneded movie number = %d' % self.n_rec_movie)
# 读文件得到“用户-电影”数据
def get_dataset(self, filename, pivot=0.8):
trainSet_len = 0
testSet_len = 0
for line in self.load_file(filename):
user, movie, rating, timestamp = line.split(',')
if(random.rand