贝叶斯信念网络推断仅返回0和1作为值

问题描述

我创建了一个贝叶斯信念网络,每次我运行一个cpquery()函数时,即使我应该获得值[0; 1],结果还是0或1。我尝试将n中的cpquery()增加到相同。任何帮助或见解将不胜感激。

以下是我的程序

dag <- empty.graph(nodes = c("NS","A","S","DM","P","CM","GC","NL","D"))
arc.set <- matrix(c("NS","D","D"),byrow = TRUE,ncol = 2,dimnames = list(NULL,c("from","to")))
arcs(dag) <- arc.set
nodes(dag)
arcs(dag)
plot(dag)
#dag<-model2network("[NS][A][S][DM][P][CM|P][GC|P][NL|NS:A:S][D|DM:CM:GC:NL]")
graphviz.plot(dag,layout = "dot")
graphviz.plot(dag,layout = "circo")
#### CPT
A.lv <- c("[0;5]","]5;10]","]10;15]")
S.lv <- c("Motionless","Moving")
NS.lv <- c("Cat_A","Cat_B","Cat_C","Cat_D","Cat_E","Cat_F","Empty")
P.lv <- c("EXPERT","NOVICE","NONE","EMPTY")
DM.lv <- c('samsung','LGE','HUAWEI','motorola','ZTE','TCL','Sony','Xiaomi',"Others")
GC.lv <- c("]-20;0]","{0}","]0;20]")
CM.lv <-c("Done","None")
NL.lv <-c("[25;55[","[55;85[","[85;115]")
D.lv <- c("Accept","Refuse")

A.prob <- array(c(0.41,0.41,0.18),dim = 3,dimnames = list(A = A.lv))
S.prob <- array(c(0.51,0.49),dim = 2,dimnames = list(S = S.lv))
NS.prob <-array(c(0.1,0.11,0.08,0.06,0.05,0.1,0.5),dim = 7,dimnames = list(NS = NS.lv))
P.prob <- array(c(0.09,0.33,0.53,0.05),dim = 4,dimnames = list(P = P.lv))
DM.prob <-array(c(0.38,0.16,0.02,0.16),dim = 9,dimnames = list(DM = DM.lv))
CM.prob <-array(c(0.02,0.98,0.0002,0.9998,0.0006,0.9994,0.01,0.99),dim=c(2,4),dimnames = list(CM=CM.lv,P=P.lv))
GC.prob <-array(c(0.15,0.73,0.12,0.27,0.63,0.85,0.2,0.78,0.02),dim=c(3,dimnames = list(GC=GC.lv,P=P.lv))
NL.prob <- array(c(0.4,0.57,0.03,0.42,0.55,0.38,0.58,0.04,0.56,0.37,0.59,0.32,0.64,0.36,0.6,0.75,0.18,0.77,0.14,0.8,0.09,0.07,0.82,0.74,0.54,0.43,0.39,0.62,0.69,0.24,0.72,0.23,0.25,0.66,0.7,0.13,0.83,0.71,0.34,0.35,0.61,0.29,0.31,0.21,0.06),dim = c(3,7,2,3),dimnames = list(NL = NL.lv,NS=NS.lv,S = S.lv,A = A.lv))
D.prob <-array(c(0.84,0.99,0.15,##D=A;DM;CM=Y;GC=NV1;NL=NV1
                 0.77,0.86,0.95,0.87,0.91,0.9,0.44,0.79,##D=A;DM;CM=N;GC=NV1;NL=NV1
                 0.99,0.67,##D=A;DM;CM=Y;GC=NV2;NL=NV1
                 0.63,0.4,0.65,0.68,##D=A;DM;CM=N;GC=NV2;NL=NV1
                 0.99,##D=A;DM;CM=Y;GC=NV3;NL=NV1
                 0.61,0.28,0.48,0.52,##D=A;DM;CM=N;GC=NV3;NL=NV1
                 0.58,0.5,##D=A;DM;CM=Y;GC=NV1;NL=NV2
                 0.76,0.97,0.17,0.76,##D=A;DM;CM=N;GC=NV1;NL=NV2
                 0.99,##D=A;DM;CM=Y;GC=NV2;NL=NV2
                 0.69,0.3,##D=A;DM;CM=N;GC=NV2;NL=NV2
                 0.78,0.22,##D=A;DM;CM=Y;GC=NV3;NL=NV2
                 0.73,##D=A;DM;CM=N;GC=NV3;NL=NV2
                 0.99,##D=A;DM;CM=Y;GC=NV1;NL=NV3
                 0.8,0.89,##D=A;DM;CM=N;GC=NV1;NL=NV3
                 0.01,##D=A;DM;CM=Y;GC=NV2;NL=NV3
                 0.75,0.51,0.49,0.26,##D=A;DM;CM=N;GC=NV2;NL=NV3
                 0.33,##D=A;DM;CM=Y;GC=NV3;NL=NV3
                 0.71,0.84,0.34    ##D=A;DM;CM=N;GC=NV3;NL=NV3
               ),dim = c(2,9,3,dimnames = list(D=D.lv,DM=DM.lv,CM=CM.lv,GC=GC.lv,NL=NL.lv))


cpt <- list(A = A.prob,S = S.prob,NS = NS.prob,P = P.prob,DM = DM.prob,CM = CM.prob,GC=GC.prob,NL=NL.prob,D=D.prob)

cpt

bn.global<-custom.fit(dag,cpt)

有人可以帮助我,告诉我哪里出问题了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...