Machine learning 如何在实时流中计算出概率分布?

Machine learning 如何在实时流中计算出概率分布?,machine-learning,real-time,probability,Machine Learning,Real Time,Probability,我得到了一个0到1之间的(非常快的)实时数据流,需要将它们排序到“bucket”中 假设有一个0.6来了,我的水桶每个都覆盖了0.25的面积。这意味着0.6将进入第三个桶。然而,当有很多数字在0.6左右出现时,它们都将进入第三个桶,这是不好的 我想改变四个桶所覆盖的区域,这样每个桶被击中的概率相等。例如,最好将铲斗一个盖子设置为0-0.5,第二个盖子设置为0.5-0.6,第三个盖子设置为0.6-0.65,最后一个盖子设置为0.65-1 问题是,我无法存储这些值—只存储哪些存储桶被命中的频率。有没

我得到了一个0到1之间的(非常快的)实时数据流,需要将它们排序到“bucket”中

假设有一个0.6来了,我的水桶每个都覆盖了0.25的面积。这意味着0.6将进入第三个桶。然而,当有很多数字在0.6左右出现时,它们都将进入第三个桶,这是不好的

我想改变四个桶所覆盖的区域,这样每个桶被击中的概率相等。例如,最好将铲斗一个盖子设置为0-0.5,第二个盖子设置为0.5-0.6,第三个盖子设置为0.6-0.65,最后一个盖子设置为0.65-1

问题是,我无法存储这些值—只存储哪些存储桶被命中的频率。有没有一个有效的更新公式


提前非常感谢

如果您没有存储这些值,那么在某个时间点,您所拥有的只是

有多少值落在x和y之间

为了使您的箱子/桶之间的概率相等,这些值非常关键。 让我们从这个实时流开始,假设它最初是以0.12 0.37 0.62和0.87开始的 每个垃圾箱中有一个垃圾箱

对于值0.24,0.49,0.74,0.99,每个箱子将再次得到1

对于值0.01,0.26,0.51,0.76,每个箱子将再次得到1

每个箱子里都会有3个。现在,如果0.6开始进来,进来大约6次,在9点做第三个箱子,而其余的是3个。说现在你必须更新你的边界。如果现在移动垃圾箱边界,则每个垃圾箱的概率将不正确

您不能根据垃圾箱的数量或平均数量移动垃圾箱。我的示例值可以以任何顺序出现,因此在不知道所有以前的值的情况下,甚至不可能在第一个值出现后移动垃圾箱


了解其他人对此的想法会很有趣。

如果您没有存储这些值,那么在某个时间点,您所拥有的只是

有多少值落在x和y之间

为了使您的箱子/桶之间的概率相等,这些值非常关键。 让我们从这个实时流开始,假设它最初是以0.12 0.37 0.62和0.87开始的 每个垃圾箱中有一个垃圾箱

对于值0.24,0.49,0.74,0.99,每个箱子将再次得到1

对于值0.01,0.26,0.51,0.76,每个箱子将再次得到1

每个箱子里都会有3个。现在,如果0.6开始进来,进来大约6次,在9点做第三个箱子,而其余的是3个。说现在你必须更新你的边界。如果现在移动垃圾箱边界,则每个垃圾箱的概率将不正确

您不能根据垃圾箱的数量或平均数量移动垃圾箱。我的示例值可以以任何顺序出现,因此在不知道所有以前的值的情况下,甚至不可能在第一个值出现后移动垃圾箱


想知道其他人是如何看待这一点的,我很感兴趣。

我想你应该保持一种水桶树

这听起来像是一份工作,或者是一种变体

我知道哈夫曼编码有一种流式变体。我对算术没有把握。但看起来至少可以定期定义新模型,并将旧值复制到新模型中


由于没有旧值,您可能不得不猜测边界,而不是计算边界。例如,您可以在0.6下定义100个新的bucket,然后折叠未使用的bucket。

我认为您希望保留一种bucket树

这听起来像是一份工作,或者是一种变体

我知道哈夫曼编码有一种流式变体。我对算术没有把握。但看起来至少可以定期定义新模型,并将旧值复制到新模型中


由于没有旧值,您可能不得不猜测边界,而不是计算边界。例如,您可以在0.6下定义100个新的存储桶,然后折叠未使用的存储桶。

我想您需要一个等宽直方图的流式算法。下面是一份调查报告,让您开始:输入点的数量有限制吗?桶是否重置或删除旧点?目标是精确的直方图还是简单的负载平衡?我认为您需要一个等宽直方图的流式算法。下面是一份调查报告,让您开始:输入点的数量有限制吗?桶是否重置或丢弃旧点?目标是准确的柱状图还是简单的负载平衡?