我正在使用Python编写推荐系统的程序。我正在尝试实现一个函数,该函数采用列表的前两个元素,并返回与前两个元素相关联的第三个元素。让我详细说明。
我这样的数据:
train_data = [ [0, 0, 5],
[0, 1, 4],
[0, 2, 2],
...
[900, 900, 2] ]
基本上是一个列表列表,每个元素都由[user_id, item_id, rating]
组成。
有没有办法提供前两个元素并返回评分值?
例如:return_third(0, 0) = 5
。
任何反馈都值得赞赏。谢谢。
编辑
我要专门进行的操作是创建一个函数,该函数计算用户i
对项目j
的预测之间的损失。
用户总数为900,项目总数为1000,所以我为每个用户及其相应的评分创建的数据矩阵为900 x 1000
。
我想根据train_data
中的预测和实际评级来计算损失。
每个user_id
和item_id
对将只有一个等级。缺少一些值,但这是我感到一个单独的问题。
答案 0 :(得分:5)
听起来像您可以制作一个字典,其中键是子列表的前两个元素的元组,而值是第三个元素:
d = {(user_id, item_id): rating for user_id, item_id, rating in train_data}
print(d[0, 0]) # 5
这只会返回您在列表中定义的值。