计算测试数据集中的二项式偏差(二项式对数似然)

机器算法验证 机器学习 可能性 随机森林 对数 对数损失
2022-04-07 10:28:05

我在预测概率P(Y=1)使用概率森林(rangerin R)。我想评估我的预测p^i通过计算平均二项式偏差(对数似然)在测试数据集中。我相信公式是:

mean deviance=itestset2[Yilnp^i+(1Yi)ln(1p^i)]
我如何处理我的森林预测恰好为 0 或 1 的事实?对于这些观察,由于对数,偏差没有定义。我应该忽略它们吗?或者我应该将这些值分别设置为 0.00001 和 0.99999 吗?

2个回答

我建议不要捏造这些预测值。这里的适当结果是,如果模型以概率 1 预测某件事,而那件事没有发生,那么它的偏差是无限的。类似地,如果模型以概率 0 预测一件事,并且那件事发生了,那么它的偏差是无限的。这就是你对结果做出如此强烈的预测并弄错的代价。

为了达到这个结果,你只需要处理形式上的歧义0×. 在这里,您将采用以下约定ln0=0×=0,给你:

Yilnp^i={0 if Yi=0,lnp^i if Yi=1.(1Yi)ln(1p^i)={ln(1p^i)if Yi=0,0if Yi=1.

您可以裁剪概率以保证它们永远不会是 0 或 1。例如,根据 sklearn 文档,设置一个名为 eps 的小值并使用 max(eps, min(1 - eps, p) 其中 p 是分类器的概率。 用于 logloss 的 sklearn 文档