- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贝叶斯网的 R 实现 ( Bayesian networks in R) (二)
bnlearn(1)
2013-06-14 21:33:22
1.bayesian networks 的一些基本概念
贝叶斯网 bayesian networks 是一种有向无环图模型 (DAG),可表示为 G=( ,A) 其中
是节点的集合,节点表示随机变量;A 是弧 (或称为边)的集合,弧的箭头表示随机变量之
间的概率相依性 有向无环图 DAG 定义了一个因子化的 中全体节点的联合概率分布,称
为全局概率分布;相对的,与每个随机变量关联的,为局部概率分布
因子化的形式由贝叶斯网的马尔科夫性质给出,对每个随机变量,其概率只依赖于其父代:
可以通过学习算法得到贝叶斯网的结构 学习算法首先是学习网络结构,然后在此基础上估
计局部分布函数的参数 尽管全局和局部分布的选择形式很多,最常用的还是下面的两种
分布: 多项分布 (离散数据) 多元正态分布 (连续分布)
得到网络结构,可以利用概率的条件相依,对相关专业问题进行推断
R 中有多个包可以实现贝叶斯网的创建、学习和推断,详见下面表格
前面我曾简单介绍过 gRain 包,本篇讨论最常用的 bnlearn 包
2.网络创建和操作 bnlearn 包自带数据集 marks,88 学生 5 门课的成绩 这个数据最早由
Mardia et al(1979)研究过
library(bnlearn)
## Warning: package bnlearn was built under R version 3.0.1
data(marks)
str(marks)
## data.frame: 88 obs. of 5 variables:
## $ MECH: num 77 63 75 55 63 53 51 59 62 64 ...
## $ ECT: num 82 78 73 72 63 61 67 70 60 72 ...
## $ ALG : num 67 80 71 63 65 72 65 68 58 60 ...
## $ ANL : num 67 70 66 70 70 64 65 62 62 62 ...
## $ STAT: num 81 81 81 68 63 73 68 56 70 45 ...
创建一个空网络,节点对应于 marks 的变量 然后通过指派一个两列的矩阵来添加边
生成一个无向图:
ug - empty.graph(names(marks))
arcs(ug, ignore.cycles = TRUE) = matrix(c(MECH, ECT, MECH, ALG, ECT,
MECH, ECT, ALG, ALG, MECH, ALG, ECT, ALG, ANL, ALG,
STAT, ANL, ALG, ANL, STAT, STAT, ALG, STAT, ANL), ncol = 2,
byrow = TRUE, dimnames = list(c(), c(from, to)))
ug
##
## Random/Generated Bayesian network
##
## model:
## [undirected graph]
## nodes: 5
## arcs: 6
## undirected arcs: 6
## directed arcs: 0
## average markov blanket size: 2.40
## average neighbourhood size: 2.40
## average branching factor: 0.00
##
## generation algorithm: Empty
这个 ug 对象属于 bn 类,这个类用于在 bnlearn 包中管理网络结构 这个对象包括三个方
面的信息:
(1)le
文档评论(0)