diff options
Diffstat (limited to 'images/rsms_1.R')
-rw-r--r-- | images/rsms_1.R | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/images/rsms_1.R b/images/rsms_1.R new file mode 100644 index 0000000..df07a1d --- /dev/null +++ b/images/rsms_1.R @@ -0,0 +1,69 @@ +load (sprintf ("%s/data/rsms_test.Rdata", Sys.getenv ("ABS_TOP_SRCDIR"))) + +Sys.setlocale ("LC_ALL", "fr_FR.UTF-8") + +#' Print the graphs for the features. +#' @return the graph. +#' @export +features_graph <- function () { + library ("magrittr") + data <- (test + %>% dplyr::filter (frac_labeled == 0.3, + frac_labels == 1, + algorithm %in% c ("formulas", "mifs", "rfs", "sfus"), + dataset %in% c ("atp1d", "atp7d", "edm", "enb", "oes10", "oes97", "osales", "scpf", "sf1", "sf2", "wq"), + !is.na (error)) + %>% dplyr::mutate (algorithm = ifelse (algorithm == "formulas", "\\textbf{RSMS}", algorithm)) + %>% dplyr::mutate (algorithm = ifelse (algorithm == "mifs", "MIFS", algorithm)) + %>% dplyr::mutate (algorithm = ifelse (algorithm == "rfs", "RFS", algorithm)) + %>% dplyr::mutate (algorithm = ifelse (algorithm == "sfus", "SFUS", algorithm)) + %>% dplyr::select (dataset, algorithm, frac_features, error) + %>% dplyr::group_by (dataset, algorithm, frac_features) + %>% dplyr::summarize (n = dplyr::n (), + mean = mean (error), + sd = sd (error), + min = min (error), + max = max (error), + median = median (error), + q1 = quantile (error, 0.25), + q3 = quantile (error, 0.75)) + %>% dplyr::ungroup ()) + arrange <- function (...) { + gridExtra::grid.arrange (..., layout_matrix = rbind ( + c (1, 2, 3), + c (4, 5, 6), + c (7, 8, 9), + c (10, 11, 11) + )) + } + do.call (arrange, lapply ((data + %>% dplyr::select (dataset) + %>% dplyr::distinct ())$dataset, function (dataset_name) { + with_legend <- (data + %>% dplyr::filter (dataset == dataset_name) + %>% dplyr::mutate (ymin = mean - sd, ymax = max + sd) + %>% dplyr::select (Algorithme = algorithm, + `Variables` = frac_features, + `aRMSE moyenne` = mean, ymin, ymax) + %>% ggplot2::ggplot (ggplot2::aes (x = `Variables`, + y = `aRMSE moyenne`, + color = Algorithme, + linetype = Algorithme)) + + ggplot2::geom_line () + + ggplot2::ggtitle (dataset_name) + + ggplot2::scale_x_continuous (labels = scales::percent) + + ggplot2::scale_color_manual (limits = c ("\\textbf{RSMS}", "MIFS", "SFUS", "RFS"), + values = c ("black", "#e69f00", "#56b4e9", "#009e73")) + + ggplot2::scale_linetype_manual (limits = c ("\\textbf{RSMS}", "MIFS", "SFUS", "RFS"), + values = c ("solid", "dashed", "longdash", "dotdash"))) + if (dataset_name == "wq") { + with_legend + } else { + with_legend + ggplot2::theme (legend.position = "none") + } + })) +} + +plot <- features_graph () +filename <- Sys.getenv ("OUTPUT") +ggplot2::ggsave (filename, plot, device = "svg", width = 6, height = 8) |