楼主: wqp694712729
3261 4

[程序分享] 用R语言做贝叶斯网络 [推广有奖]

  • 0关注
  • 1粉丝

高中生

15%

还不是VIP/贵宾

-

威望
0
论坛币
99 个
通用积分
12.1315
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
159 点
帖子
8
精华
0
在线时间
28 小时
注册时间
2020-4-9
最后登录
2022-5-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在做毕业设计的时候做的一个贝叶斯网络,下面是程序代码,有问题可以一起交流
library(bnlearn)
survey <- read.csv("C:\\Users\\Administrator.DESKTOP-DD2HFLO\\Desktop\\survey.csv")
str(survey)

#把整型变量转换为数值型变量
survey2=as.data.frame(matrix(as.numeric(as.matrix(survey)),nrow=33,ncol=10))
colnames(survey2)=c("SY", "SJ", "KF", "LT", "DD", "T", "W", "A",
                    "J", "N")
str(survey2)
#生成贝叶斯网络
dg <- empty.graph(nodes = c("X","N","SY","SJ","KF","LT","DD","T","W","A","J"))
dg <- set.arc(dg, from = "X", to ="T")
dg <- set.arc(dg, from = "X", to ="W")
dg <- set.arc(dg, from = "X", to ="A")
dg <- set.arc(dg, from = "X", to ="J")
dg <- set.arc(dg, from = "N", to ="T")
dg <- set.arc(dg, from = "N", to ="W")
dg <- set.arc(dg, from = "N", to ="A")
dg <- set.arc(dg, from = "N", to ="J")
dg <- set.arc(dg, from = "SY", to ="T")
dg <- set.arc(dg, from = "SY", to ="W")
dg <- set.arc(dg, from = "SY", to ="A")
dg <- set.arc(dg, from = "SY", to ="J")
dg <- set.arc(dg, from = "SJ", to ="T")
dg <- set.arc(dg, from = "SJ", to ="W")
dg <- set.arc(dg, from = "SJ", to ="A")
dg <- set.arc(dg, from = "SJ", to ="J")
dg <- set.arc(dg, from = "KF", to ="T")
dg <- set.arc(dg, from = "KF", to ="W")
dg <- set.arc(dg, from = "KF", to ="A")
dg <- set.arc(dg, from = "KF", to ="J")
dg <- set.arc(dg, from = "LT", to ="T")
dg <- set.arc(dg, from = "LT", to ="W")
dg <- set.arc(dg, from = "LT", to ="A")
dg <- set.arc(dg, from = "LT", to ="J")
dg <- set.arc(dg, from = "DD", to ="T")
dg <- set.arc(dg, from = "DD", to ="W")
dg <- set.arc(dg, from = "DD", to ="A")
dg <- set.arc(dg, from = "DD", to ="J")
dg <- set.arc(dg, from = "T", to ="J")
dg <- set.arc(dg, from = "W", to ="J")
dg <- set.arc(dg, from = "A", to ="J")
dg
#绘制网络
library(Rgraphviz)
graphviz.plot(dg, layout = "fdp")
plot(dg, radius = 250, arrow = 30)
#结构学习
survey2.bn <- gs(survey2,undirected = FALSE)
survey2.bn
#结构学习调试过程
survey2.bn <- gs(survey2,debug = TRUE)
#结构学习得到网络的无向图
graphviz.plot(survey2.bn, layout = "fdp")
#对网络进行评分和修正
survey2.bn <- hc(survey2)
survey2.bn
graphviz.plot(survey2.bn, layout = "fdp")#调试后得到有向网络

#得分
score(survey2.bn, data = survey2, type = "bic-g") ####出错

#参数学习
survey2.bn <- gs(survey2, undirected = FALSE)
survey2.bn2 <- hc(survey2)
survey2.fit <- bn.fit(survey2.bn2, data = survey2)
survey2.fit <- bn.fit(survey2.bn, data = survey2)
#Error in bn.fit(survey2.bn, data = survey2) : the graph is only partially directed.
survey2.fit$A
#离散化
survey2.d <- discretize(survey2, method = "interval", breaks = 3)
survey2.dgs <- gs(survey2.d)
plot(survey2.dgs, radius = 200, arrow = 30)##无向图
survey2.dhc <- hc(survey2.d)
plot(survey2.dhc, radius = 160, arrow = 40)##gs算法与hc算法结果出现差异
all.equal(cpdag(survey2.dgs), cpdag(survey2.dhc))
#参数学习结果
survey2.fit2 <- bn.fit(survey2.dhc, data = survey2.d)
survey2.fit2$A

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言与贝叶斯网络

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
llb_321 在职认证  发表于 2020-4-9 13:41:11 |只看作者 |坛友微信交流群
赞&#128077;

使用道具

藤椅
304002 发表于 2020-6-12 19:10:42 |只看作者 |坛友微信交流群
生成贝叶斯网络这块有点疑惑,可以具体讲一下吗?谢谢

使用道具

板凳
淡化回忆 发表于 2021-7-30 15:40:12 |只看作者 |坛友微信交流群
这个数据能分享下嘛

使用道具

报纸
2633560657 发表于 2021-10-15 15:41:05 |只看作者 |坛友微信交流群
您好,可以分享一下数据嘛,我想看一下我的哪里有问题

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-15 01:50