算法预测低概率事件概率的性能指标

机器算法验证 机器学习 物流
2022-03-26 06:59:30

我正在编写一个程序来预测在线广告的点击率。关于这个问题的两个重要说明:

  • 点击率非常低(例如 0.1%)

  • 点击率取决于几个参数(如广告大小、广告展示的国家/地区、用户是否较早看过此广告等)

当我采用统计/机器学习技术时,我想衡量我的技术在历史数据上的表现。我不能使用精度或准确性等指标,因为我预测的只是概率,而不是预测事件的发生或不发生。

在这种情况下,我应该如何衡量我的算法的性能?

4个回答

Lakret 建议的均方误差肯定会起作用,但是,我想提出一种方法来捕获添加的点击率的不确定性(确切地说,这是未知的,但只能从历史数据中估计)。

假设我们在验证集中添加了 10000 次展示和 10 次点击,即点击率的最大似然估计p0.001. 此外,我们预测点击率p^为此添加。

现在而不是比较预测p^用 p,我们检查是否p^在置信区间内p. 使用 Beta 分布又名贝叶斯方法来计算置信区间(当时称为可信区间),我们使用 R

alpha <- 0.05
qbeta(c(alpha/2,1-alpha/2),10+1,10000-10+1)
# which results in [1] 0.000549185 0.001838080

有关计算二项式置信区间的其他方法,请参见例如 R-package confint。

现在,单个添加的预测误差是......

  • 0,如果p^在 p 的置信区间内
  • 1,否则

从这里开始,可以计算二项式指标,例如精度或多个点击率预测的平均误差。在一种更复杂的方法中,可以将误差计算为到最近的置信区间界限(如果在置信区间之外)的距离,以使误差不那么离散。

由于您的实际数据是双变量的(点击/不点击),您也应该使您的预测离散(例如,如果预测概率大于某个值,则将其分配为 1)。然后,您可以使用精度或准确性等指标。

平均绝对误差均方误差可能会有所帮助。

为什么不简单地使用预测点击概率和点击事件(0 或 1)之间的相关系数?相关性越高,算法越好。