在评估推荐算法的优劣时,主要有两种评测指标,一种是top-N推荐当中的分类指标,例如准确率、召回率、覆盖率等。一种是预测评分指标,如MAE、RMSE、MSE。
这两种指标进行评估时,代码的逻辑是不同的。
分类指标
步骤:
① 从训练集中拿出一个user。
② 拿出该user正反馈的一个item。
③ 在物品相似度矩阵中,按照相似度大小排序,取最相似度的前K个item。如果这K个item中有该user已经打分的,则删除。
④ 构建字典rank{item:weight},存储相似物品及其排序权重。排序权重计算方式为两个物品之间的相似度*用户对正反馈物品的具体评分。
⑤ 重复②③④步,直到用户user的所有正反馈物品被取完,得到一个rank字典。
⑥ 对rank里面的物品,按着weight进行排序,取前N个推荐给用户user。(即TOP-N推荐)
⑦ 根据测试集中该用户打分的物品和我们推荐的N个物品,就可以根据公式,进行准确率、召回率的计算了。
预测评分指标
① 拿出测试集当中的某条数据,包括{user,item,rating}。
② 计算用户user已打分的物品的分数的加权和,即为预测评分。权重就是两个之间的物品相似度。
③ 根据预测评分和实际评分rating的差值,按照公式计算MAE等指标。