knitr::opts_chunk$set(echo = TRUE)
library(data.table)
library(caret)
library(FiDEL)
library(devtools)
load_all()

Train data

train <- as.data.table(readr::read_csv('data/data-westnile.csv.bz2'))
train$y <- as.factor(train$y)
train <- train[, -c('X41', 'X48', 'X82', 'X84', 'X12', 'X24', 'X36', 'X60', 'X72', 'X83')]

head(train)
table(train$y)
set.seed(200)
folds <- createFolds(train$y, k=22, list = TRUE)
traininglist <- lapply(folds, function(x) train[x, ])
testing  <- traininglist[[22]]
testingY <- to_label(testing$y, class1='Yes')
model_list <- c('rda', 'svmLinear', 'svmRadial', 'pls', 'knn', 'earth', 'avNNet', 'mlp', 'nb', 'rf', 'rpart', 'ctree', 'gbm', 'bayesglm', 'glm', 'glmnet', 'simpls', 'nnet', 'dwdRadial', 'xgbTree', 'xgbLinear')
# C5.0 - error on prediction
#t1 <- mtrainer(c('rpart', 'knn', 'simpls', 'pls'), dataInfo = 'WestNile')
t1 <- mtrainer(model_list, dataInfo = 'WestNile')
t1 <- train.mtrainer(t1, y~., traininglist, update=FALSE)
t1 <- addmodel.mtrainer(t1, c('simpls', 'gbm'))
t1 <- predict.mtrainer(t1, newdata=testing)
auclist <- apply(t1$predictions, 2, auc_rank, testingY)
fde1 <- fde(t1$predictions)
fde1 <- predict_performance(fde1, auclist, attr(testingY, 'rho'))
fde2 <- calculate_performance(fde1, testingY)
plot_cor(fde1, legend_flag = T, filename='results/WNV_cor_fde1.pdf')
plot_cor(fde2, legend_flag=T, filename='results/WNV_cor_fde2.pdf')
g1 <- plot_performance(fde2, nmethod_list=c(3, 5, 7), nsample=200, filename='results/WNV_perf_fde2.pdf')
g1
g2 <- plot_performance_nmethods(fde2, nmethod_list=3:10, nsample=200, method='STD', filename='results/WNV_perf_nmethod_fde2_STD.pdf')
g2
library(ggpubr)
g <- ggarrange(g1, g2, labels=c('A', 'B'), ncol=2, nrow=1, widths = c(2.7,1))
ggsave("results/Figure4a_SE.pdf", width=15, height=3.8)
g
plot_single(fde2, 'roc')
plot_ensemble(fde2, filename='results/WNV_ensemble_fde2.pdf')
plot_FDstatistics(fde2)
#plot_single(fde1, 'score')
store.mtrainer(t1, 'westnile_pre.RData')
saveRDS(testingY, 'westnile_y.RData')


sungcheolkim78/FiDEL documentation built on Nov. 13, 2024, 7:58 a.m.