楼主: wqp694712729
2037 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 论坛币
我写完程序了,也能成功运行,但是写文章时该报告哪些数据呢?哪位大神指教一下下
二维码

扫码加我 拉你入群

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

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

关键词:R语言编程 贝叶斯网络 语言编程 贝叶斯网 R语言 报告数据

本帖被以下文库推荐

沙发
wqp694712729 学生认证  发表于 2020-4-15 11:18:41 |只看作者 |坛友微信交流群
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.fitA
#离散化
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.fit2A



这是代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

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

使用道具

藤椅
MeiLingMagic 在职认证  发表于 2021-5-7 20:45:19 |只看作者 |坛友微信交流群
wqp694712729 发表于 2020-4-15 11:18
library(bnlearn)
survey
老哥,你的代码太好了,太全面了,感谢老哥分享代码

使用道具

板凳
lonestone 在职认证  发表于 2021-5-8 05:41:29 来自手机 |只看作者 |坛友微信交流群
wqp694712729 发表于 2020-4-15 09:22
我写完程序了,也能成功运行,但是写文章时该报告哪些数据呢?哪位大神指教一下下
谢谢楼主分享

使用道具

报纸
wxm2008111 发表于 2023-2-14 23:03:16 |只看作者 |坛友微信交流群
写得很好!

使用道具

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

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

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

GMT+8, 2024-5-1 03:08