机器学习(八):贝叶斯网络——福尔摩斯推理、草地喷水器推断
2023/5/26 1:22:19
本文主要是介绍机器学习(八):贝叶斯网络——福尔摩斯推理、草地喷水器推断,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
实验4 贝叶斯网络
一、 预备知识
二、 实验目的
-
掌握贝叶斯网络算法的原理及设计;
-
掌握利用贝叶斯网络算法解决推理分析。
三、 实验内容
福尔摩斯先生在办公室接到了他邻居华生的电话P(W=T)。华生告诉他:他的家里可能进了窃贼P(B=T),因为他家的警铃响了P(A=T)被告知有窃贼闯入,福尔摩斯迅速开车回家。在路上,他听广播家那里发生了地震。请问他应该回家抓贼还是迅速撤离该地区以躲避地震?
2.
1.计算草地是湿的情况下,下雨的概率?
2.草地是湿的情况下,自动喷水的概率?
四、 操作方法和实验步骤
问题 1:福尔摩斯推理
1.搭建模型
from pgmpy.models import BayesianNetwork from pgmpy.factors.discrete import TabularCPD from pgmpy.inference import VariableElimination model = BayesianNetwork([('B', 'A'), ('E', 'A'), ('A', 'W'), ('E', 'R')]) cpd_1 = TabularCPD(variable='B', variable_card=2, values=[[0.9], [0.1]]) cpd_2 = TabularCPD(variable='E', variable_card=2, values=[[0.99], [0.01]]) cpd_A = TabularCPD(variable='A', variable_card=2, values=[[0.99, 0.1, 0.1, 0.01], [0.01, 0.9, 0.9, 0.99]], evidence=['E', 'B'],#父节点 evidence_card=[2, 2])#警铃 cpd_W = TabularCPD(variable='W', variable_card=2, values=[[0.99, 0.35], [0.01, 0.65]], evidence=['A'],#父节点 evidence_card=[2])#华生致电福尔摩斯 cpd_R = TabularCPD(variable='R', variable_card=2, values=[[0.999, 0.01], [0.001, 0.99]], evidence=['E'],#父节点 evidence_card=[2])#广播播报地震 model.add_cpds(cpd_1, cpd_2, cpd_A, cpd_W, cpd_R) infer = VariableElimination(model) print(infer.query(variables=['B'],evidence={'A':1})) print(infer.query(variables=['E'],evidence={'A':1,'R':1})) print(infer.query(variables=['B'],evidence={'A':1,'R':1}))
2.计算概率
问题2:草地喷水器推理
1.搭建模型
model = BayesianNetwork([('R', 'S'), ('R', 'G'), ('S', 'G')]) cpd_1 = TabularCPD(variable='R', variable_card=2, values=[[0.8], [0.2]]) cpd_S = TabularCPD(variable='S', variable_card=2, values=[[0.6, 0.99], [0.4, 0.01]], evidence=['R'],#父节点 evidence_card=[2]) cpd_G = TabularCPD(variable='G', variable_card=2, values=[[1.0, 0.2, 0.1, 0.01], [0.0, 0.8, 0.9, 0.99]], evidence=['S', 'R'],#父节点 evidence_card=[2, 2])#警铃 model.add_cpds(cpd_1, cpd_S, cpd_G) infer = VariableElimination(model) print(infer.query(variables=['R'],evidence={'G':1})) print(infer.query(variables=['S'],evidence={'G':1}))
2.计算概率
五、实验结果和分析
问题1:福尔摩斯推理
(1)警铃A响了,那么窃贼入室B的概率是84.12%
(2)之后再路上听广播说发生了地震,那么发生地震的概率是98.92%,是窃贼入室的概率是11.75%
问题2:草地喷水器推理
(1)草地是湿的情况下,下雨的概率是35.77%
(2)草地是湿的情况下,自动喷水的概率64.67%
这篇关于机器学习(八):贝叶斯网络——福尔摩斯推理、草地喷水器推断的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南
- 2024-10-25机器学习开发的几大威胁及解决之道
- 2024-10-24以下是五个必备的MLOps (机器学习运维)工具,帮助提升你的生产效率 ??
- 2024-10-15如何选择最佳的机器学习部署策略:云 vs. 边缘
- 2024-10-12从软件工程师转行成为机器学习工程师
- 2024-09-262024年机器学习路线图:精通之路步步为营指南
- 2024-09-13机器学习教程:初学者指南
- 2024-08-07从入门到精通:全面解析机器学习基础与实践
- 2024-01-24手把手教你使用MDK仿真调试