-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdlt.BNab.R
96 lines (87 loc) · 2.93 KB
/
dlt.BNab.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
dlt.BNab <- function(data,count) {
library(bnlearn)
library(Rgraphviz)
#Build data
tests<-tail(data,1)
trains <-tail(data,count)[1:(count-1),]
results<-tail(data,(count-1))
trn<-trains$n
a1<-trains$a1
a2<-trains$a2
a3<-trains$a3
a4<-trains$a4
a5<-trains$a5
b1<-trains$b1
b2<-trains$b2
resa1<-results$a1
resa2<-results$a2
resa3<-results$a3
resa4<-results$a4
resa5<-results$a5
resb1<-results$b1
resb2<-results$b2
trains.a1<-data.frame(a1,a2,a3,a4,a5,b1,b2,resa1)
trains.a2<-data.frame(a1,a2,a3,a4,a5,b1,b2,resa2)
trains.a3<-data.frame(a1,a2,a3,a4,a5,b1,b2,resa3)
trains.a4<-data.frame(a1,a2,a3,a4,a5,b1,b2,resa4)
trains.a5<-data.frame(a1,a2,a3,a4,a5,b1,b2,resa5)
trains.b1<-data.frame(a1,a2,a3,a4,a5,b1,b2,resb1)
trains.b2<-data.frame(a1,a2,a3,a4,a5,b1,b2,resb2)
#A1:
bn.a1<-bnlearn::hc(trains.a1)
bn.a1<-drop.arc(bn.a1,"resa1","a4")
bn.a1<-set.arc(bn.a1,"a5","resa1")
bn.a1<-set.arc(bn.a1,"b2","resa1")
graphviz.plot(bn.a1, layout = "fdp")
fit_bn.a1 <- bn.fit(bn.a1, data = trains.a1)
p.a1 <-predict(fit_bn.a1,tests[4:10],node = "resa1")
#A2:
bn.a2<-bnlearn::hc(trains.a2)
bn.a2<-set.arc(bn.a2,"a5","resa2")
bn.a2<-set.arc(bn.a2,"b2","resa2")
graphviz.plot(bn.a2, layout = "fdp")
fit_bn.a2 <- bn.fit(bn.a2, data = trains.a2)
p.a2 <-predict(fit_bn.a2,tests[4:10],node = "resa2")
#A3:
bn.a3<-bnlearn::hc(trains.a3)
bn.a3<-set.arc(bn.a3,"a5","resa3")
bn.a3<-set.arc(bn.a3,"b2","resa3")
graphviz.plot(bn.a3, layout = "fdp")
fit_bn.a3 <- bn.fit(bn.a3, data = trains.a3)
p.a3 <-predict(fit_bn.a3,tests[4:10],node = "resa3")
#A4:
bn.a4<-bnlearn::hc(trains.a4)
bn.a4<-set.arc(bn.a4,"a5","resa4")
bn.a4<-set.arc(bn.a4,"b2","resa4")
graphviz.plot(bn.a4, layout = "fdp")
fit_bn.a4 <- bn.fit(bn.a4, data = trains.a4)
p.a4 <-predict(fit_bn.a4,tests[4:10],node = "resa4")
#A5:
bn.a5<-bnlearn::hc(trains.a5)
bn.a5<-drop.arc(bn.a5,"resa5","a1")
bn.a5<-drop.arc(bn.a5,"resa5","a2")
bn.a5<-drop.arc(bn.a5,"resa5","a3")
bn.a5<-drop.arc(bn.a5,"resa5","a4")
bn.a5<-set.arc(bn.a5,"a5","resa5")
bn.a5<-set.arc(bn.a5,"b2","resa5")
graphviz.plot(bn.a5, layout = "fdp")
fit_bn.a5 <- bn.fit(bn.a5, data = trains.a5)
p.a5 <-predict(fit_bn.a5,tests[4:10],node = "resa5")
#B1:
bn.b1<-bnlearn::hc(trains.b1)
bn.b1<-set.arc(bn.b1,"a5","resb1")
bn.b1<-set.arc(bn.b1,"b2","resb1")
graphviz.plot(bn.b1, layout = "fdp")
fit_bn.b1 <- bn.fit(bn.b1, data = trains.b1)
p.b1 <-predict(fit_bn.b1,tests[4:10],node = "resb1")
#B2:
bn.b2<-bnlearn::hc(trains.b2)
bn.b2<-set.arc(bn.b2,"a5","resb2")
bn.b2<-set.arc(bn.b2,"b2","resb2")
graphviz.plot(bn.b2, layout = "fdp")
fit_bn.b2 <- bn.fit(bn.b2, data = trains.b2)
p.b2 <-predict(fit_bn.b2,tests[4:10],node = "resb2")
result<-c(p.a1,p.a2,p.a3,p.a4,p.a5,p.b1,p.b2)
barplot(result,main = "BNab")
return(result)
}