def SampleSelect(data, Popularity, ratio): ''' :param User:用户课程评分数据集 :param Popularity:字典形式,物品流行度 :param ratio:负样本比例(负样本:正样本) :return:字典形式,用户采样物品。用户id:{物品id:1,..,物品id:0},1代表正样本,0代表负样本 ''' Sample = dict() popular_items = [i[0] for i in sorted(Popularity.items(), key=lambda x: x[1], reverse=True)] # 热门商品降序排列 user_list = set(data['userId']) for user in user_list: PositiveSample = list(data[data['userId'] == user]['courseId']) N = len(PositiveSample)*ratio SelectSample = popular_items[:(N + len(PositiveSample))] NegativeSamlpe = [i for i in SelectSample if i not in PositiveSample][:N] #得到采样负样本 positive_di = dict.fromkeys(PositiveSample, 1) #正样本标记为1 negative_di = dict.fromkeys(NegativeSamlpe, 0) #负样本标记为0 positive_di.update(negative_di) Sample.setdefault(user, positive_di) #把正负样本写进字典 return Sample
时间: 2023-06-10 10:04:55 浏览: 118
这段代码中定义了一个函数SampleSelect,它的参数包括一个用户课程评分数据集、一个字典形式的物品流行度和一个负样本比例。该函数的作用是根据用户评分数据集和物品流行度,输出一个字典形式的用户采样物品,其中每个用户对应一个字典,字典中包含其采样的物品。采样的物品分为正样本和负样本,比例由参数ratio确定。函数中使用了sorted函数和lambda表达式,根据物品流行度对物品进行排序。
相关问题
def data3(): while True: fileName = input("请输入要打开的文件名tmdb_5000_movies_budgt_popularity.csv:") try: # 读取数据集 df = pd.read_csv(fileName) df = df[df["original_language"] == "en"] df.to_csv("tmdb_5000_movies_budgt_popularity_en.txt", sep=",") print('任务3执行成功!') break except: print('任务3执行失败!') break
这段代码是一个Python函数,名为data3。它会不断地询问用户输入一个文件名,并尝试读取该文件。如果文件读取成功了,它会筛选出其中原始语言为英语的记录,并将这些记录保存到一个名为"tmdb_5000_movies_budgt_popularity_en.txt"的文件中。最后,它会输出"任务3执行成功!"。如果文件读取失败了,它会输出"任务3执行失败!"。
def create_popularity_recommendation(train_data,user_id,item_id): train_data_grouped = train_data.groupby([item_id]).agg({user_id:'count'}).reset_index() train_data_grouped.rename(columns = {user_id:'score'},inplace=True) train_data_sort = train_data_grouped.sort_values(['score',item_id], ascending = [0,1]) train_data_sort['Rank'] = train_data_sort['score'].rank(ascending=0, method='first') popularity_recommentation = train_data_sort.head(20) return popularity_recommentation
这是一个基于流行度的推荐算法函数,使用给定的训练数据(train_data)和用户ID(user_id)、物品ID(item_id),返回一份表示最受欢迎的推荐(popularity recommendation)的数据表。首先,将训练数据按照物品ID分组,计算每个物品ID对应的用户数量并按照数量进行降序排列,然后根据排名生成推荐结果,最后返回前20个结果。
阅读全文