From 736fc449d3cf1b6f3b4ef0b9a15edfc603625f14 Mon Sep 17 00:00:00 2001
From: aduvermy <arnaud.duvermy@ens-lyon.fr>
Date: Wed, 13 Mar 2024 13:52:28 +0100
Subject: [PATCH] ability to calculate performance_ratio

---
 R/precision_recall.R  |  8 +++-----
 R/rocr_functions.R    |  8 +++-----
 R/simulation_report.R |  3 ++-
 dev/flat_full.Rmd     | 11 +++++------
 4 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/R/precision_recall.R b/R/precision_recall.R
index b61bccd..920b403 100644
--- a/R/precision_recall.R
+++ b/R/precision_recall.R
@@ -71,17 +71,15 @@ get_pr_object <- function(evaldata_params, col_param = "description", col_truth
   pr_auc_params <- join_dtf(pr_auc_params, random_classifier_auc_params , 
                             k1 = col_param, k2 = col_param)
   names(pr_auc_params)[ names(pr_auc_params) == "random_classifier_auc_params" ] <- "pr_randm_AUC"
-
-
-
+  pr_auc_params$pr_performance_ratio <- pr_auc_params$pr_AUC/pr_auc_params$pr_randm_AUC
 
   ## -- aggregate
   pr_curve_agg <- dt_evaldata_params[, compute_pr_curve(.SD), by = "from", .SDcols=c(col_truth, col_score)]
   pr_auc_agg <- pr_curve_agg[, compute_pr_auc(.SD), by = "from", .SDcols=c("recall", "precision")]
   names(pr_auc_agg)[ names(pr_auc_agg) == "V1" ] <- "pr_AUC"
   pr_auc_agg$pr_randm_AUC <- random_classifier_auc_agg
-  
-  
+  pr_auc_agg$pr_performance_ratio <- pr_auc_agg$pr_AUC/pr_auc_agg$pr_randm_AUC
+
   return(list(byparams = list(pr_curve = as.data.frame(pr_curve_params),
                               pr_auc = as.data.frame(pr_auc_params)),
               aggregate = list(pr_curve = as.data.frame(pr_curve_agg),
diff --git a/R/rocr_functions.R b/R/rocr_functions.R
index b61bccd..920b403 100644
--- a/R/rocr_functions.R
+++ b/R/rocr_functions.R
@@ -71,17 +71,15 @@ get_pr_object <- function(evaldata_params, col_param = "description", col_truth
   pr_auc_params <- join_dtf(pr_auc_params, random_classifier_auc_params , 
                             k1 = col_param, k2 = col_param)
   names(pr_auc_params)[ names(pr_auc_params) == "random_classifier_auc_params" ] <- "pr_randm_AUC"
-
-
-
+  pr_auc_params$pr_performance_ratio <- pr_auc_params$pr_AUC/pr_auc_params$pr_randm_AUC
 
   ## -- aggregate
   pr_curve_agg <- dt_evaldata_params[, compute_pr_curve(.SD), by = "from", .SDcols=c(col_truth, col_score)]
   pr_auc_agg <- pr_curve_agg[, compute_pr_auc(.SD), by = "from", .SDcols=c("recall", "precision")]
   names(pr_auc_agg)[ names(pr_auc_agg) == "V1" ] <- "pr_AUC"
   pr_auc_agg$pr_randm_AUC <- random_classifier_auc_agg
-  
-  
+  pr_auc_agg$pr_performance_ratio <- pr_auc_agg$pr_AUC/pr_auc_agg$pr_randm_AUC
+
   return(list(byparams = list(pr_curve = as.data.frame(pr_curve_params),
                               pr_auc = as.data.frame(pr_auc_params)),
               aggregate = list(pr_curve = as.data.frame(pr_curve_agg),
diff --git a/R/simulation_report.R b/R/simulation_report.R
index 6955f61..6717854 100644
--- a/R/simulation_report.R
+++ b/R/simulation_report.R
@@ -142,7 +142,8 @@ evaluation_report <- function(list_tmb, dds, mock_obj, coeff_threshold, alt_hypo
   ## -- acc, recall, sensib, speci, ...
   metrics_obj <- get_ml_metrics_obj(eval_data2metrics, alpha_risk )
   ## -- merge all metrics in one obj
-  model_perf_obj <- get_performances_metrics_obj( r2_params = params_identity_eval$R2,                                dispersion_identity_eval$R2,
+  model_perf_obj <- get_performances_metrics_obj( r2_params = params_identity_eval$R2,                        
+                                                  dispersion_identity_eval$R2, 
                                                   pr_curve_obj,
                                                   roc_curve_obj,
                                                   metrics_obj )
diff --git a/dev/flat_full.Rmd b/dev/flat_full.Rmd
index 1a95b4d..32fbba8 100644
--- a/dev/flat_full.Rmd
+++ b/dev/flat_full.Rmd
@@ -6833,17 +6833,15 @@ get_pr_object <- function(evaldata_params, col_param = "description", col_truth
   pr_auc_params <- join_dtf(pr_auc_params, random_classifier_auc_params , 
                             k1 = col_param, k2 = col_param)
   names(pr_auc_params)[ names(pr_auc_params) == "random_classifier_auc_params" ] <- "pr_randm_AUC"
-
-
-
+  pr_auc_params$pr_performance_ratio <- pr_auc_params$pr_AUC/pr_auc_params$pr_randm_AUC
 
   ## -- aggregate
   pr_curve_agg <- dt_evaldata_params[, compute_pr_curve(.SD), by = "from", .SDcols=c(col_truth, col_score)]
   pr_auc_agg <- pr_curve_agg[, compute_pr_auc(.SD), by = "from", .SDcols=c("recall", "precision")]
   names(pr_auc_agg)[ names(pr_auc_agg) == "V1" ] <- "pr_AUC"
   pr_auc_agg$pr_randm_AUC <- random_classifier_auc_agg
-  
-  
+  pr_auc_agg$pr_performance_ratio <- pr_auc_agg$pr_AUC/pr_auc_agg$pr_randm_AUC
+
   return(list(byparams = list(pr_curve = as.data.frame(pr_curve_params),
                               pr_auc = as.data.frame(pr_auc_params)),
               aggregate = list(pr_curve = as.data.frame(pr_curve_agg),
@@ -8125,7 +8123,8 @@ evaluation_report <- function(list_tmb, dds, mock_obj, coeff_threshold, alt_hypo
   ## -- acc, recall, sensib, speci, ...
   metrics_obj <- get_ml_metrics_obj(eval_data2metrics, alpha_risk )
   ## -- merge all metrics in one obj
-  model_perf_obj <- get_performances_metrics_obj( r2_params = params_identity_eval$R2,                                dispersion_identity_eval$R2,
+  model_perf_obj <- get_performances_metrics_obj( r2_params = params_identity_eval$R2,                        
+                                                  dispersion_identity_eval$R2, 
                                                   pr_curve_obj,
                                                   roc_curve_obj,
                                                   metrics_obj )
-- 
GitLab