聚会的人来来去去:如何使用贝叶斯知道谁在场或谁在场?

问题描述 投票:0回答:0

故事/问题

想象有

N
派对客人和守卫唯一一扇门的保镖。派对开始前,所有客人都在外面(这是肯定的)。然而,一旦聚会开始,人们就来来去去。每次发生此类事件时,保镖都会为每位潜在客人记录下可能是他或她的可能性。人们可以将此分数称为保镖的分类置信度。对于每个事件,这是一个
N
候选人的列表,加起来为一个。总而言之,
T
事件一直观察到第二天早上。

不幸的是,当晚一些贵重物品被盗。为了缩小嫌疑人的范围,主持人查看了保镖的笔记。然而,他很快就发现了相互矛盾的数据,因此也不可靠:比如根据数据,同一个人连续两次进入高机密地点,我们知道这是不可能的。因此,他尝试通过清除矛盾数据来提高分类质量。

我被困在哪里/我尝试了什么

首先,我通过制定一个线性程序解决了这个问题,并在 Python 中解决了这个问题。然而,随着客人数量的增加,这很快在计算上变得不可行。因此想用贝叶斯定理来计算客人出现的概率。

由于我们事先知道客人是否出席并反复更新信息,我觉得贝叶斯方法是解决这个问题的自然方法。

尽管这种方法对我来说似乎很直观,但我遇到了一些问题:

(1) 100%确定第一状态的问题

100% 确定一个人在外面

t=0
似乎“打破”了贝叶斯公式。设
A
为A人,
data
为保镖可用的信息。

如果先验

P(A present)
为 0 或 1,则公式分别崩溃为 0 或 1。我错了吗?

(2) 使用所有可用信息的问题

我没有找到一种方法,不仅可以使用时间步长

t
之前发生的数据,还可以使用稍后收集的信息。例如。给定三个候选人,保镖有信心地进行三个观察 ct:

cout->in1=(0.5, 0.4, 0.1)T,

cout->in2=(0.4, 0.4, 0.2)T,

cout->in3=(0.9, 0.05, 0.05)T.

仅使用

t
之前可用的信息,最合理的解决方案是:
(A entered, B entered, C entered)
in。但是,使用所有可用信息,这是一个更好的解决方案:
(B entered, C entered, A entered)
.

(3) 噪声观测问题。

我之前考虑使用伯努利分布,但是,我观察的不是二元事件,而是置信度。

既然我卡住了,我期待你帮助贝叶斯推理并最终找到小偷。

bayesian bayesian-networks
© www.soinside.com 2019 - 2024. All rights reserved.