best_set_linear = grid_results %>%
extract_workflow_set_result("Reg_log") %>%
select_best(metric = "accuracy")
best_set_knn = grid_results %>%
extract_workflow_set_result("KNN") %>%
select_best(metric = "accuracy")
best_set_nbayes = grid_results %>%
extract_workflow_set_result("Naive_Bayes") %>%
select_best(metric = "accuracy")
best_set_lda = grid_results %>%
extract_workflow_set_result("LDA") %>%
select_best(metric = "accuracy")
best_set_qda = grid_results %>%
extract_workflow_set_result("QDA") %>%
select_best(metric = "accuracy")
best_set_rand_fore = grid_results %>%
extract_workflow_set_result("random_forest") %>%
select_best(metric = "accuracy")
best_set_decision = grid_results %>%
extract_workflow_set_result("decision") %>%
select_best(metric = "accuracy")
best_set_bag = grid_results %>%
extract_workflow_set_result("bag_tree") %>%
select_best(metric = "accuracy")
resultado_teste <- function(rc_rslts, fit_obj, par_set, split_obj) {
res <- rc_rslts %>%
extract_workflow(fit_obj) %>%
finalize_workflow(par_set) %>%
last_fit(split = split_obj,
metrics = metric_set(
accuracy,roc_auc,
f_meas,precision,
recall,spec,kap))
res
}
resultado_teste_reg_log <- resultado_teste(grid_results, "Reg_log", best_set_linear, split)
resultado_teste_knn <- resultado_teste(grid_results, "KNN", best_set_knn, split)
resultado_teste_lda <- resultado_teste(grid_results, "LDA", best_set_lda, split)
resultado_teste_qda <- resultado_teste(grid_results, "QDA", best_set_qda, split)
resultado_teste_naive <- resultado_teste(grid_results, "Naive_Bayes", best_set_nbayes, split)
resultado_teste_decision <- resultado_teste(grid_results, "decision", best_set_decision, split)
resultado_teste_bag <- resultado_teste(grid_results, "bag_tree", best_set_bag, split)
resultado_teste_random_forest <- resultado_teste(grid_results, "random_forest", best_set_rand_fore, split)
metrics_table <- rbind(collect_metrics(resultado_teste_reg_log)$.estimate,
collect_metrics(resultado_teste_knn)$.estimate,
collect_metrics(resultado_teste_lda)$.estimate,
collect_metrics(resultado_teste_qda)$.estimate,
collect_metrics(resultado_teste_naive)$.estimate,
collect_metrics(resultado_teste_decision)$.estimate,
collect_metrics(resultado_teste_bag)$.estimate,
collect_metrics(resultado_teste_random_forest)$.estimate)
metrics_table <- round(metrics_table, 4)
row_names <- c("Regressão Logística", "KNN", "Discriminante Linear", "Discriminante Quadrático", "Naive Bayes", "Árvore de Decisão", "Bagged Tree", "Floresta Aleatória")
metrics_table <- cbind(row_names, metrics_table)
metrics_table <- metrics_table %>%
as_tibble()
colnames(metrics_table) <- c("Método", "Acurácia", "Curva Roc", "f_means", "Precisão", "Recall", "Especificidade", "Kappa")
metrics_table <- metrics_table %>%
mutate(Acurácia = as.numeric(Acurácia),
`Curva Roc` = as.numeric(`Curva Roc`),
f_means = as.numeric(f_means),
Precisão = as.numeric(Precisão),
Recall = as.numeric(Recall),
Especificidade = as.numeric(Especificidade),
Kappa = as.numeric(Kappa)) %>%
arrange(desc(Acurácia), desc(`Curva Roc`), desc(f_means), desc(Kappa)) %>%
select(Método,Acurácia,`Curva Roc`,Especificidade)
metrics_table %>%
gt::gt() %>%
gt::tab_header(
title = gt::html("<b> Resultado dos modelos nos dados de teste</b>"),
subtitle = glue::glue("De acordo com algumas métricas")) %>%
gt::data_color(
columns = Acurácia,
colors = scales::col_numeric(
palette = colorspace::sequential_hcl(n = 10, palette = "Green"),
domain = c(min(metrics_table$Acurácia), max(metrics_table$Acurácia)),
reverse = TRUE
)
) %>%
gt::data_color(
columns = `Curva Roc`,
colors = scales::col_numeric(
palette = colorspace::sequential_hcl(n = 10, palette = "Green"),
domain = c(min(metrics_table$`Curva Roc`), max(metrics_table$`Curva Roc`)),
reverse = TRUE
)
) %>%
gt::data_color(
columns = Especificidade,
colors = scales::col_numeric(
palette = colorspace::sequential_hcl(n = 8, palette = "Red"),
domain = c(max(metrics_table$Especificidade),min(metrics_table$Especificidade)),
reverse = TRUE
)
) %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(
cell_text(weight = "bold")
),
locations = cells_body(columns = c(Acurácia, `Curva Roc`))
)