算法_贝叶斯网络学习_bayesian networks

发布时间 2023-07-17 17:05:23作者: 辰令

基本概念

 条件概率 联合概率 边缘概率
  链式法则 随机变量的独立性 条件独立性
  贝叶斯规则、贝叶斯概率推理和贝叶斯网络模型。
stochastic,主要用作形容词,主要意思为“随机的;猜测的”

R语言包

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析
   lme4广义线性混合模型(GLMM)和线性混合模型(LMM) 
gRain包 R包gRain可以用来建立贝叶斯网,表示在模型中概率的传播 
pcalg包做贝叶斯网络结构的学习	

无人驾驶行为决策研究--Intelligent connected vehicles (ICVs)
   Bayesian networks (BNs), 
   artificial neural networks (ANNs), 
   and support vector machines (SVMs)
   在人工智能决策中,贝叶斯定理可以用来计算事件的概率,并作为基础来做出决策
 结构学习算法(结构和参数都是从数据中学习的)。
 参数学习算法(结构由用户提供,参数从数据中学习)

贝叶斯网

 bayesian networks是一种有向无环图模型(DAG),可表示为G=(V,A)。
  其中V是节点的集合,节点表示随机变量;
     A是弧(或称为边)的集合,弧的箭头表示随机变量之间的概率相依性。
     有向无环图DAG定义了一个因子化的V中全体节点的联合概率分布,称为全局概率分布;
     相对的,与每个随机变量关联的,为局部概率分布。
 学习网络结构,然后在此基础上估计局部分布函数的参数
  causal model -- 因果模式

贝叶斯网学习

 BN学习包含结构学习和参数学习--参数学习建立在结构已知的基础上--因此网络的结构学习是关键
     贝叶斯网络结构构造方法
	     专家领域经验结构手工构造
		 通过数据分析构造:推理算法分精确推理和近似推理
 1、确定随机变量间的拓扑关系,形成DAG。
 2、训练贝叶斯网络参数——估计出各节点的条件概率表。这一步也就是要完成条件概率表的构造

网络结构学习

    分连(diverging connection) 顺连(serial connection) 汇连(converging connection)
	  tail-to-tail(共同原因)
	  head-to-tail(因果迹)  tail-to-head(证据迹)
	  head-to-head(共同作用)  
	
    结构学习算法可分为三类:基于约束的算法、基于得分的算法以及混合算法。
       Structure learning algorithms: 
	   constraint-based (PC Stable, Grow-Shrink, IAMB, Fast-IAMB, Inter-IAMB, IAMB-FDR, MMPC, Semi-Interleaved HITON-PC, HPC), 
       score-based (hill climbing and tabu search)  爬山法(hc) 禁忌搜索(tabu)
       hybrid (MMHC, H2PC, RSMAX2).	  MMPC (max-min hill climbing) 算法
	进行本质上的路径分析和研究弧的强度   

网络参数学习方式

参数学习:在给定网络结构时,确定网络参数,即参数估计问题:
      Parameter learning methods: maximum likelihood, Bayesian, hierarchical and Expectation-Maximization parameter estimators.
	  极大似然估计--贝叶斯后验估计

推断问题

 在已知部分变量时,计算其他变量的条件概率分布
  k-fold交叉验证;	hold-out 交叉验证 

数据

预处理和探索性数据分析
   .rds和.rda(.Rdata的简称 )文件都可用于以R本机格式存储R对象。
     2.Rdata 可以保存多个对象,RDS仅处理单个R对象

网络理解

创建一个空网络,节点对应于marks的变量。然后通过指派一个两列的矩阵来添加边。	 
  bnlearn包中管理网络结构。 这个对象包括三个方面的信息:
    (1)learning:结构的学习
	(2)node 节点
	(3)arc 边
 ##可以从邻接矩阵(adjacency matrix)来生成有向图dg。	
 ##手工修改一个已经存在的网络,利用加边(set.arc)、去边(drop.arc)、颠倒(rev.arc)这几个操作,也可以得到一个需要的网
##  节点的邻居(nbr)和Markov毯(mb) (1)节点的拓扑顺序  (3)某个给定节点的子代(child)和父代(parents)和子代的其它父代(o.par)	
平均的网络(avg.diff)

绘制网络

 2.绘制网络
   bnlearn包有两种对bn对象绘制网络结构的方法,
    一种是利用graph包和Rgraphviz包提供的接口给出的一些绘图函数,比如graphviz.plot。
	再一种方法是利用plot函	

参考

 https://cran.r-project.org/web/packages/bnlearn/	
 https://www.bnlearn.com/documentation/man/index.html	
 https://cran.r-project.org/web/packages/bnlearn/bnlearn.pdf	
 Bayesian Networks with Examples in R	 M. Scutari and J.-B. Denis (2021).Texts in Statistical Science, Chapman & Hall/CRC, 2nd edition.
 https://www.bnlearn.com/documentation/topics.html
 https://mp.weixin.qq.com/s/Vg8lyxaDtVLVlhWQ0djk1Q
 https://www.mdpi.com/2079-9292/12/6/1370
 https://bookdown.org/robertness/causalml/docs/tutorial-probabilistic-modeling-with-bayesian-networks-and-bnlearn.html
 https://www.modb.pro/db/634802