0

好的,所以这里有一个类似于我的问题的问题(我将在下面详细说明真正的问题,但我认为这个类比会更容易理解)。

我有一个奇怪的双面硬币,每 1,001 次投掷中只有 1 次正面(随机)出现(其余为反面)。换句话说,每看到 1,000 个尾巴,就会有 1 个正面。

我有一种特殊的疾病,每看到 1,000 个尾巴,我只注意到 1 个,但我注意到每个头,所以在我看来,注意到头或尾的概率是 0.5。当然,我知道这种疾病及其影响,所以我可以弥补它。

现在有人给了我一枚新硬币,我注意到注意到正面的概率现在是 0.6。鉴于我的疾病没有改变(我仍然只注意到每 1,000 个尾巴中有 1 个),我如何计算这枚新硬币产生的实际正面与反面的比率?


好的,那么真正的问题是什么?好吧,我有一堆数据,包括输入和输出,分别是 1 和 0。我想教一个有监督的机器学习算法来预测给定输入的预期输出(0到1之间的浮点数)。问题是 1 非常罕见,这会破坏内部数学,因为它非常容易受到舍入误差的影响——即使是高精度浮点数学。

因此,我通过随机省略大部分 0 训练样本来对数据进行归一化,以使 1 和 0 的比率看起来大致相等。当然,这意味着现在机器学习算法的输出不再是预测概率,即。它现在将预测 0.5,而不是按应有的预测 0.001。

我需要一种方法将机器学习算法的输出转换回原始训练集中的概率。

作者注(2015-10-07):后来发现这种技术俗称“下采样”

4

1 回答 1

2

您正在计算以下

calculatedRatio = heads / (heads + tails / 1000)

你需要

realRatio = heads / (heads + tails)

解决两个方程的尾部产生以下方程。

tails = 1000 / calculatedRatio - 1000
tails = 1 / realRatio - 1

将两者结合产生以下结果。

1000 / calculateRatio - 1000 = 1 / realRatio - 1

最后求解 realRatio。

realRatio = 1 / (1000 / calculatedRatio - 999)

似乎是正确的。计算比率 0.5 产生实际比率 1/1001,0.6 产生 3 / 2003。

于 2009-04-05T22:47:44.920 回答