对每个测试对 (u, i)
,按以下优先级产生预测:
(u,i)
的真实评分,直接返回该分数。u
有其他历史评分,则返回其历史评分均值。最后将结果四舍五入为两位小数(正数域可用 floor(x*100+0.5)/100
实现“真正四舍五入”),并截断到 [1.00, 5.00],以两位小数的字符串输出(含末尾 0)。
请在仅使用 numpy/pandas 的前提下,实现一个 Deterministic User−Mean Baseline 用于评分预测。
对给定 (user,item) 测试对,输出预测评分(保留 2 位小数)。
算法要求简单却体现推荐系统常见的缺失值填补/冷启动逻辑。
预测规则
1.若用户 u 在训练集中已评价 item i
2.否则若用户 u 有其他历史评分
3.否则(冷启动用户)
4.结果四舍五入保留 2 位小数,以字符串形式输出,限定区间 [1.00,5.00]
备注:训练集中不会出现重复的 (user,item) ,评分均在 1−5 间。
输入格式
{
"train":[[user_id,item_id,rating],...],
"test":[[user_id,item_id],...]
}
user_ id, item_ id 为整数
rating 为浮点 (1−5)
无缺失值、无额外字段
单行 JSON 数组:[“3.00",“3.00”,“3.50”]
顺序与输入 test 完全一致
每个值为两位小数,含尾部 0 ,以字符串形式出书。
1.为了确保通过测试用例,仅允许使用 Numpy 与 Pandas 库实现
2.测试集不用于更新该推荐系统
输入
{"train":[[1,1,5],[1,2,3],[2,1,4],[2,2,2]],"test":[[1,2],[2,3],[3,1]]}
输出
["3.00","3.00","3.50"]