rm(list=ls()) ## Load the package frbs library(frbs) set.seed(1) ## Read the data germanCreditData <- read.table("german.data-numeric") ## Shuffle the data germanCDShuffled <- germanCreditData[sample(nrow(germanCreditData)),] ## Split the data into two datasets: training and testing tra.credit <- as.matrix(germanCDShuffled[1:(0.8*nrow(germanCDShuffled)), ]) tstComplete.credit <- as.matrix(germanCDShuffled[(nrow(tra.credit)+1):nrow(germanCDShuffled), ]) tst.credit <- tstComplete.credit[, -ncol(tstComplete.credit)] write(tst.credit, file="newdataClass") ## Save the real values real.credit <- tstComplete.credit[, ncol(tstComplete.credit), drop=FALSE] ## Define range data range.data <- apply(germanCDShuffled, 2, range) ## Manipulate range to get degrees of membership functions properly range.data[1, ] <- range.data[1, ] - 0.5 range.data[2, ] <- range.data[2, ] + 0.5 range.data.input <- range.data[, -ncol(range.data)] ## Set the method method.type <- "GFS.GCCL" ## Set other parameters control <- list(popu.size = 50, num.class = 2, num.labels = 3, persen_cross = 0.9, max.gen = 200, persen_mutant = 0.3, name="sim-GermanCreditCard") ## Construct a model mod.class <- frbs.learn(tra.credit, range.data.input, method.type, control) ## Predict new data res.test <- predict(mod.class, tst.credit) ## Calculate missclassification rate err = 100*sum(real.credit!=res.test)/nrow(real.credit) print(err) ## Convert the model into frbsPMML write.frbsPMML(frbsPMML(mod.class), "modClass") ## Import the model in frbsPMML to the R object objClass <- read.frbsPMML("modClass.frbsPMML") ## Predict again to check and calculate missclassification rate res.test.1 <- predict(objClass, tst.credit) err = 100*sum(real.credit!=res.test.1)/nrow(real.credit)