贝叶斯推断把新证据与已有概率结合,更新对状态的判断。智能体随后是否行动,还取决于动作成本和决策规则。下面用自造设备故障告警算后验;这些概率是演示输入,不是任何真实设备的可靠性统计。
先分清四个量
令 F 为设备故障,+ 为传感器告警。假设先验 P(F)=0.1,故障时告警 P(+|F)=0.8,正常时误报 P(+|非F)=0.1。告警总概率为 0.8×0.1+0.1×0.9=0.17;看到告警后的故障概率是 0.08/0.17=8/17,约 47.06%。

80% 是故障条件下的告警概率,不是告警后有故障的概率。两者交换会忽略先验和误报。当正常设备数量较多,少量误报也可能构成大量告警。贝叶斯公式支持这种条件转换,但输入概率需要来自明确的数据口径。
实现一次更新和连续两次更新
保存 belief.py,用 Python 3 运行 python belief.py。连续两次告警的更新额外假设:在给定设备是否故障后,两次观测条件独立,而且期间故障状态不变。重复读取同一条告警日志不满足这个假设。
from math import isclose
def update(prior, sensitivity=0.8, false_alarm=0.1):
if not all(0 <= x <= 1 for x in (prior, sensitivity, false_alarm)):
raise ValueError("probabilities must be in [0, 1]")
evidence = sensitivity*prior + false_alarm*(1-prior)
if evidence == 0:
raise ValueError("evidence has zero probability")
return sensitivity*prior/evidence
first = update(0.1)
second = update(first)
print(round(first, 6), round(second, 6))
assert isclose(first, 8/17)
assert isclose(second, 64/73)
第一次结果约 0.470588,第二次约 0.876712。第二次大幅提高概率只在上述独立性和状态不变假设下有效。若同一传感器连续误报高度相关,应建模相关性或改用独立证据,不能机械地越更新越确信。
概率更新与执行动作分开
可以先输出“故障后验为多少、使用了哪些证据、哪些假设成立”,再按规则决定继续观察或安排人工检查。47% 不自动意味着立即停机;停机成本、漏检成本和动作权限要在真实业务中确定,本例不设置生产设备操作指令。
复核输入数据时要记录先验的统计人群、传感器灵敏度、误报率、样本时间和是否存在数据漂移。如果用新的设备型号,就不能无验证沿用旧概率。输出异常先检查分母与条件概率方向,再查连续证据是否重复。
本文没有真实故障数据,也不是朴素贝叶斯文本分类训练。它只验证二元信念更新的数学闭环;面对多状态、随时间变化的设备,需另行建立状态转移和观测模型,不能把这里的两项公式直接当完整诊断系统。
资料与核对依据
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33009.html