最近的热播剧《天才基本法》中,提到了很多有趣的数学知识点,比如"亲和数""巴什博奕""孔明棋""七桥问题"等等,让很多观众直呼不明觉厉。其中,最让Mr.Tech感兴趣的是剧中男女主参加数学建模大赛时用到的贝叶斯网络。
▲女主使用贝叶斯网络进行算法建模,来预测嫌犯行动轨迹和抓捕时间方位。图片截图自电视剧《天才基本法》
贝叶斯网络是一种分类算法,被广泛地应用于医疗诊断、风控等业务场景中,并发挥着重要作用。关于"贝叶斯网络",你了解多少?今天,国内专业的数据智能服务商每日互动就和大家一起走进机器学习领域,共同学习这个神奇的算法模型。
一、走进贝叶斯网络
生活中,人们往往会从最终的结果反向推测其原因,从而更好地做风险规避,或提前创造充分条件以达成预期目标。不过事物之间的联系往往错综复杂,我们如何抽丝剥茧,清晰分析出事件和事件之间的相互依赖关系?是否有可能通过数学的方式来计算和衡量其中的因果作用,帮助我们追溯甚至预测事物的走向?
贝叶斯网络就是当下数据科学家和算法工程师用来解决此类问题的一种有效方式。
贝叶斯网络(bayesiannetwork)是描述随机变量(事件)之间关系的模型。例如,贝叶斯网络可以表示疾病和症状之间的概率关系。根据症状,该网络可以计算各种疾病存在的概率。
贝叶斯网络用有向无环图(DirectedAcyclicGraph,DAG)表示,其中每个节点代表一个随机变量,节点间的联系用有向箭头表示,箭头从"因节点"指向"被影响节点",用条件概率表达关系强度。
现实中,医生的诊断过程和贝叶斯网络的推理机制高度一致。如上图,如果患者咳嗽非常严重,甚至出现气急、呼吸不畅等症状,医生结合雾霾天气、患者的吸烟史等情况,初步判断患者可能得了肺炎。接下来医生会要求患者拍肺部的X光片,根据患者的X光片表现,做出更加科学的诊断结论。
目前,很多医疗辅助系统正是基于贝叶斯网络,将过往的医学诊断经验很好地沉淀下来,实现智能诊断,帮助医生大幅提升诊断效率。
接下来,我们再深入了解更深层次的问题:贝叶斯网络如何量化和计算事件之间的因果/条件依赖关系?
在上述案例中,雾霾、吸烟、过敏、病菌感染等都是导致患者得肺炎的风险因子。那么哪一个风险因子的影响作用最大?这就需要我们理解贝叶斯网络的底层数学思想--贝叶斯定理。
二、贝叶斯网络与贝叶斯定理
贝叶斯定理由英国著名数学家托马斯·贝叶斯提出,它是关于条件概率的定理,公式如下:
根据高中的概率论知识来理解贝叶斯公式:
P(A),P(B)表示事件A和事件B的独立发生概率。
P(A
B)是个条件概率,表示当事件B发生的情况下,事件A发生的概率。
P(B
A)也是个条件概率,表示当事件A发生的情况下,事件B发生的概率。
贝叶斯定理中有先验概率和后验概率之分。
先验概率:指根据以往经验和统计分析得到的概率。是在"结果"发生之前的概率,比如公式中的P(A)就是先验概率。先验概率一般作为"由因求果"问题中的"因"出现。
后验概率:是根据观察到的样本修正之后的概率值。指在结果发生之后,我们根据"结果"来计算和分析最有可能导致该结果的原因,即"执果寻因"中的"因"。公式中的P(A
B)就是后验概率。
接下来,我们将刚才提到的医疗诊断实例简化,来进一步理解贝叶斯定理。
假设(先验概率均为假设数据):
患者病菌感染的概率P(V)=5%
患者感冒的概率P(C)=30%
患者因为病菌感染而感冒的概率P(C
V)=40%
那么:
根据贝叶斯定理,感冒患者被病菌感染的后验概率P(V
C)=P(C
V)*P(V)/P(C)=40%*5%/30%≈66.67%
再复杂一些。
假设(先验概率均为假设数据):
患者发热的概率P(F)=6%
患者因为感冒而发热的概率P(F
C)=60%
那么:
患者因为病菌感染而发热的概率P(F
V)=P(C
V)*P(F
C)=24%
那么:
根据贝叶斯定理,发热患者被病菌感染的后验概率P(V
F)=P(F
V)*P(V)/P(F)=24%*5%/6%=20%
如上,贝叶斯网络其实就是基于贝叶斯定理对事物之间因果关系以及依赖关系进行量化,并使得因果或依赖关系的强弱可以被推理和计算。
在解决实际业务问题时,算法工程师们往往会通过对历史数据进行统计得到先验概率,然后使用贝叶斯网络进行推理,实现对机器故障原因、患者病因等的智能分析,以及对机器设备故障概率、患者患病风险等的预测。
只不过,在实际的机器学习过程中,算法工程师们需要计算的数据量非常庞大,所构建的贝叶斯网络更为复杂。
贝叶斯定理与人类大脑的推理过程非常相似,作为人工智能领域学习和推理的重要分支,贝叶斯定理一直备受