library(frbs) ## Start input data load("wine.5f.RData") tra.wine.1 <- wine.5.1.tra tra.wine.2 <- wine.5.2.tra tra.wine.3 <- wine.5.3.tra tra.wine.4 <- wine.5.4.tra tra.wine.5 <- wine.5.5.tra tst.wine.1 <- wine.5.1.tst[, 1 : 13] tst.wine.2 <- wine.5.2.tst[, 1 : 13] tst.wine.3 <- wine.5.3.tst[, 1 : 13] tst.wine.4 <- wine.5.4.tst[, 1 : 13] tst.wine.5 <- wine.5.5.tst[, 1 : 13] real.wine.1 <- matrix(wine.5.1.tst[, 14], ncol = 1) real.wine.2 <- matrix(wine.5.2.tst[, 14], ncol = 1) real.wine.3 <- matrix(wine.5.3.tst[, 14], ncol = 1) real.wine.4 <- matrix(wine.5.4.tst[, 14], ncol = 1) real.wine.5 <- matrix(wine.5.5.tst[, 14], ncol = 1) range.data <- matrix(c(11.0, 14.9, 0.7, 5.8, 1.3, 3.3, 10.6, 30.0, 70.0, 162.0, 0.9, 3.9, 0.3, 5.1, 0.1, 0.7, 0.4, 3.6, 1.2, 13.0, 0.4, 1.8, 1.2, 4.0, 278.0, 1680.0), nrow=2) method.type <- "GFS.GCCL" control <- list(popu.size = 10, num.class = 3, num.labels = 3, persen_cross = 0.9, max.gen = 30, persen_mutant = 0.3, name="sim-0") ########################## ### 2. Training Process ### The main result on this process is rule database which is used on testing process. object.1 <- frbs.learn(tra.wine.1, range.data, method.type, control) object.2 <- frbs.learn(tra.wine.2, range.data, method.type, control) object.3 <- frbs.learn(tra.wine.3, range.data, method.type, control) object.4 <- frbs.learn(tra.wine.4, range.data, method.type, control) object.5 <- frbs.learn(tra.wine.5, range.data, method.type, control) ########################## ### 3b. Testing process res.test.1 <- predict(object.1, tst.wine.1) res.test.2 <- predict(object.2, tst.wine.2) res.test.3 <- predict(object.3, tst.wine.3) res.test.4 <- predict(object.4, tst.wine.4) res.test.5 <- predict(object.5, tst.wine.5) ######################### ### Error Measurement ########################## y.pred.1 <- res.test.1 y.real.1 <- real.wine.1 y.pred.2 <- res.test.2 y.real.2 <- real.wine.2 y.pred.3 <- res.test.3 y.real.3 <- real.wine.3 y.pred.4 <- res.test.4 y.real.4 <- real.wine.4 y.pred.5 <- res.test.5 y.real.5 <- real.wine.5 err.1 = 100*sum(y.real.1!=y.pred.1)/nrow(y.pred.1) err.2 = 100*sum(y.real.2!=y.pred.2)/nrow(y.pred.2) err.3 = 100*sum(y.real.3!=y.pred.3)/nrow(y.pred.3) err.4 = 100*sum(y.real.4!=y.pred.4)/nrow(y.pred.4) err.5 = 100*sum(y.real.5!=y.pred.5)/nrow(y.pred.5) print("GFS.GCCL: percentage Error on each wine") print(err.1) print(err.2) print(err.3) print(err.4) print(err.5) err.aver <- 1/5 * (err.1 + err.2 + err.3 + err.4 + err.5) print("average error percentage") print(err.aver)