泓州之家
首发于泓州之家
从0开始机器学习-为什么要做A/B Test

从0开始机器学习-为什么要做A/B Test

Q1:在对模型进行充分的离线评估之后,为什么还要进行在线A/B测试?

A1:离线评估和在线A/B测试在以下三方面有较大区别。

(1)离线评估无法完全消除模型过拟合的影响。离线效果评估常常受到过拟合问题的影响。而过拟合问题的影响无法在离线评估中消除,所以离线评估结果无法完全替代线上评估结果。

(2)离线评估无法完全还原线上的工程环境。线上的工程环境包括数据延迟、数据缺失、标签缺失等情况。因此,离线评估的结果是理想工程环境下的最好结果。

(3)线上系统的某些商业指标在离线评估中无法计算。 离线模型评估的指标包括准确率,召回率和ROC曲线等。线上系统更关注的一些商业指标,例如,进线率,申诉通过率这些指标无法在离线评估中给出。

Q2:如何进行线上A/B测试?

A2: 进行用户分桶,即将用户分成实验组和对照组,对实验组的用户施以新模型,对对照组的用户施以旧模型,在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中,在分桶过程中所选取的user_id需要是一个随机数,这样才能保证桶中的样本是无偏的。

Q3:如何划分实验组和对照组?

例子:D公司的算法工程师们最近针对系统中的“全职司机用户”研发了一套全新的判责模型A,而目前正在使用的针对全体司机用户的推荐模型是B。在正式上线之前,工程师们希望通过A/B测试来验证新判责模型的效果。

请指出哪种 “实验组/对照组” 划分方法是准确的?

(1)实验组:城市C1的全职司机用户;对照组:城市C2(城市C1/C2在订单规模/CPO进线数据上有相似性,下同)的全体司机用户。

(2)实验组:城市C1的全职司机用户;对照组:城市C2(城市C1/C2在订单规模/CPO进线数据上有相似性,下同)的全职司机用户。

(3)实验组:城市C1的全体司机用户;对照组:城市C2(城市C1/C2在订单规模/CPO进线数据上有相似性,下同)的全职司机用户。

(4)实验组:城市C1的全体司机用户;对照组:城市C2(城市C1/C2在订单规模/CPO进线数据上有相似性,下同)的全体司机用户。

正确的做法是(2)将所有全职司机用户根据城市划分为试验组和对照组,分别施以模型A和B,才能验证模型A的效果。

编辑于 2019-04-04

文章被以下专栏收录