Skip to content

Commit 99ca67d

Browse files
authored
bug fixes (#33)
* fixed (#32) * changed ver number * removed on-load message
1 parent 5cd0c55 commit 99ca67d

File tree

9 files changed

+37
-24
lines changed

9 files changed

+37
-24
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: fairmodels
22
Type: Package
33
Title: Flexible Tool for Bias Detection, Visualization, and Mitigation
4-
Version: 0.2.3
4+
Version: 0.2.4
55
Authors@R:
66
c(person("Jakub", "Wiśniewski", role = c("aut", "cre"),
77
email = "[email protected]"),

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# fairmodels 0.2.4
2+
* Deleted on-load information message about four-fifths rule.
3+
* Fixed bug with `NA` warning in metrics that are not chosen. (#32)
4+
15
# fairmodels 0.2.3
26
* Fixed the way the `parity_loss` is calculated in `all_cutoffs` and `ceteris_paribus_cutoff`. (#24)
37
* Updated vignettes

R/expand_fairness_object.R

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
#'
55
#' @param x object of class \code{fairness_object}
66
#' @param drop_metrics_with_na logical, if \code{TRUE} metrics with NA will be omitted
7-
#' @param scale logical, if \code{TRUE} standarised.
7+
#' @param scale logical, if \code{TRUE} standardized.
8+
#' @param fairness_metrics character, vector of fairness metrics names indicating from which expand.
89
#'
910
#' @export
1011
#' @rdname expand_fairness_object
@@ -36,15 +37,20 @@
3637
#' expand_fairness_object(fobject, drop_metrics_with_na = TRUE)
3738
#'
3839

39-
expand_fairness_object <- function(x, scale = FALSE, drop_metrics_with_na = FALSE){
40+
expand_fairness_object <- function(x, scale = FALSE, drop_metrics_with_na = FALSE, fairness_metrics = NULL){
41+
4042

4143
stopifnot(is.logical(scale))
4244
stopifnot(is.logical(drop_metrics_with_na))
4345
stopifnot(class(x) == "fairness_object")
4446

45-
n_exp <- length(x$explainers)
47+
n_exp <- length(x$explainers)
4648
parity_loss_metric_data <- x$parity_loss_metric_data
47-
labels <- x$label
49+
labels <- x$label
50+
51+
if (! is.null(fairness_metrics)){
52+
parity_loss_metric_data <- parity_loss_metric_data[fairness_metrics]
53+
}
4854

4955
if (drop_metrics_with_na) {
5056
parity_loss_metric_data <- drop_metrics_with_na(parity_loss_metric_data)

R/fairness_radar.R

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,15 @@ fairness_radar <- function(x, fairness_metrics = c('ACC', 'TPR', 'PPV', 'FPR', '
6262
if (any(is.na(data))){
6363
na_col_index <- apply(data, 2, function(x) any(is.na(x)))
6464
cols_with_missing <- names(data)[na_col_index]
65-
warning("Found metric with NA: ", paste(cols_with_missing, collapse = ", "), ", ommiting it")
6665

67-
68-
fairness_metrics <- fairness_metrics[! fairness_metrics %in% cols_with_missing]
66+
cols_with_missing <- cols_with_missing[cols_with_missing %in% fairness_metrics]
67+
if (length(cols_with_missing) > 0){
68+
warning("Found metric with NA: ", paste(cols_with_missing, collapse = ", "), ", ommiting it")
69+
fairness_metrics <- fairness_metrics[! fairness_metrics %in% cols_with_missing]
70+
}
6971
}
7072

71-
expanded_data <- expand_fairness_object(x)
72-
73-
# taking only some metrics
74-
expanded_data <- expanded_data[expanded_data$metric %in% fairness_metrics,]
73+
expanded_data <- expand_fairness_object(x, fairness_metrics = fairness_metrics)
7574

7675

7776
if (length(unique(expanded_data$metric)) <= 2) stop("metric data must have at least 3 columns without NA")

R/metric_scores.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ metric_scores <- function(x, fairness_metrics = c('ACC', 'TPR', 'PPV', 'FPR', 'S
5252
data <- data.frame()
5353
for (model in names(x$groups_data)){
5454
model_data_frame <- data.frame()
55-
model_data <- lapply(x$groups_data[[model]], function(x) data.frame(score = x, subgroup = names(x)))
55+
model_data <- lapply(x$groups_data[[model]],
56+
function(x) data.frame(score = x,
57+
subgroup = names(x)))
5658
for (i in seq_along(model_data)){
5759
model_data[[i]]$metric <- names(model_data)[i]
5860
model_data_frame <- rbind(model_data_frame, model_data[[i]])

R/stack_metrics.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ stack_metrics <- function(x, fairness_metrics = c('ACC', 'TPR', 'PPV', 'FPR', 'S
4949
if (! is.character(fairness_metrics) ) stop("metric argument must be character metric")
5050
sapply(fairness_metrics,assert_parity_metrics)
5151

52-
expanded_data <- expand_fairness_object(x, drop_metrics_with_na = TRUE)
52+
expanded_data <- expand_fairness_object(x,
53+
drop_metrics_with_na = TRUE,
54+
fairness_metrics = fairness_metrics)
5355

5456
expanded_data <- as.data.frame(expanded_data)
5557
colnames(expanded_data) <- c("metric","model","score")

R/zzz.R

Lines changed: 0 additions & 7 deletions
This file was deleted.

man/expand_fairness_object.Rd

Lines changed: 9 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/testthat/test_fairness_radar_and_plot.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ test_that("Test_fairness_radar_and_plot", {
1515

1616
expect_error(fairness_radar(fobject, fairness_metrics = 1))
1717
fo <- fobject
18-
fo$parity_loss_metric_data[2,2] <- NA
18+
fo$parity_loss_metric_data[2,1] <- NA
1919

2020
expect_warning(fairness_radar(fo))
2121

0 commit comments

Comments
 (0)