预测模型结果校准——Bining
- 文献[2]中,将训练集中样本按估计值降序排序,均分成k等分;对于落在某个bin里的新样本,属于某个class的概率等于这个bin中这个class的实例所占的比例。[1]
- 文献[3]中,
(1) 将logistic regression模型的输出结果划分成n个等长的bin,使得
,定义了第i个bin的区间范围。对于第i个bin的校准值通过下式获得:
即计算落在区间中的转化样本占落在此区间中的总样本的比例,即可得到
(2) 对于一个落在中的新的测试样本,通过使用两个端点的统计值平滑得出最终预估值。即
(3) 由于某些bin样本过少导致的预测值的非单调性,再使用Isotonic Regression对端点统计值做后处理。
更简明的应用流程如下[4]:
应用流程:
上述流程最终产出校准用的映射表,在线上加载这个映射表实时应用,比如在线上预估出的CTR值为x,查校准用的映射表,判断x所在的桶,取得映射后的校准值y。在训练校准模型的流程中,有2点是有讲究的:第2步N的设置和第4步如何判定算出的真实点击率是可信的,这2点都需要结合实际情况来分析。
在样本充足的情况下,bin的个数越多逼近效果越好;因此在不断增大k的过程中,会出现收益的转折点;对于区间划分的方式,可以尝试一下按值和按样本数两种方式相结合,也可以尝试对一些样本充足的bin进行递归分桶,知道达到某一条件停止分裂(比如样本数不足或者不满足单调性时停止)。
参考文献:
[1] <模型预测结果校准>https://sensirly.github.io/prediction-model-calibration/
[2] Calibration of Machine Learning Models
[3] Estimating conversion rate in display advertising from past erformance data
[4] vividfree的博客<使用 Isotonic Regression 校准分类器>
http://vividfree.github.io/机器学习/2015/12/21/classifier-calibration-with-isotonic-regression.