SparrowRecSys电影推荐系统项目(四)模型评估
一、模型评估方法:
1.离线评估:
定义:在将模型部署到线上环境之前,在离线环境下进行的评估。
Holdout检验、交叉检验、自助法
Holdout检验:将样本集随机划分为训练集和测试集,比如将样本集70%作为训练集,30%作为测试集。优点:简单使用。缺点:划分训练集和测试机具有随机性,导致评价结果也具有随机性。 交叉检验:将所有样本划分为k个大小相等的样本子集,依次遍历k个子集将当前遍历到的子集作为测试集,将其他k-1子集作为训练集,依次进行k次模型的训练和评估,最后将k次模型的的得分取平均值。优点:解决了Holdout检验随机性导致评估结果具有波动性。缺点:和Holdout检验一样适合样本规模较大的情况,样本规模较小则影响模型的训练效果。 自助法:对于总数为n的样本集合,进行n次有放回的采样,得到大小为n的训练集,在n次采样过程中有样本会被重复采样,有样本没有被抽到过,没有抽到的样本就被作为测试集。优点:扩充了小样本数据集的规模。缺点:改变了数据集原有的分布,可能让模型产生一定的偏差。 时间切割: 未来信息:在t时刻进行预测,t+1时刻就是未来信息 时间切割:按照某个时间点进行分割,时间点之前作为训练集,时间点之后作为测试集。在代码中可以使用where语句进行划分,大于某个时间戳在前,小于某个时间戳在后。
离线Replay:
时间切割避免了“信息穿越”,但是整个评估过程是静态的,比如用25天的数据作为训练集,5天后的数据作为测试集。如果生产环境模型是日更新的,5天后的评测过程就不准确,并没有在后5天的评测过程中做到日更模型。 Replay评估方法根据产生时间对测试样本由早到晚进行排序,再让模型根据样本时间先后进行预测,增量学习更新时间点之前的样本,更新模型后在继续评估更新点之后的样本。
二、评估指标
低阶评估指标
1.准确率
正负样本不均衡,比如样本数99%都是正样本,那我全部预测为正样本也可以得到99%的正确率。 推荐模型经常会被看做是点击/不点击问题,在实际场景中我们会生成一个推荐列表,那怎么评估模型预测的推荐列表的效果呢?使用精确率和召回率两个指标。
2.精确率和召回率
精确率指的是分类正确的正样本个数占分类器判定为正样本个数的比例 召回率指的是分类正确的正样本个数占真正的正样本个数的比例
推荐系统中不是通过阈值将预测样本看作为正样本和负样本,而是采用Top N排序结果的精确率和召回率衡量性能,具体来说就是将推荐的N个结果判定为模型的正样本,再去计算N个结果的精确率和召回率。 精确率和召回率是矛盾统一的指标,F1-score可以综合反映精确率和召回率的高低呢?
3.对数损失
二分类:
多分类: 采用logloss可以非常直观感受到模型损失函数的变化
4.均方根误差
准确率、精确率、召回率、logloss都是针对分类模型指定的指标。分类模型就是指预测某个样本属于哪个类别的模型,比如点击率预估模型。除此之外还有回归模型即预测一个连续值,比如预测某个用户对某个电影打多少分。
回归模型评估指标:RMSE n是样本的个数,真正推荐问题中n的值是变化的,因为用户可能通过不断的翻页、下滑拉去更多的推荐结果。
高阶评估指标
1.P-R曲线
纵轴为精确率,横轴为召回率
P-R曲线上的点代表“在某一阈值下,模型将大于该阈值的结果判定为正样本,将小于该阈值的结果判定为负样本”,一个点的召回率和精确率不能全面衡量模型性能,只有通过P-R曲线整体表现,才能对模型进行全面评估。 P-R曲线是一条曲线,没有数字直观,很难衡量模型的好坏,因此有了AUC指标衡量模型效果。AUC指的是P-R曲线下的面积大小,计算AUC值只需要沿着P-R曲线做切分。
2.ROC曲线
|