From bea5e399a24390b666aaa84fa4620dcb559ff255 Mon Sep 17 00:00:00 2001 From: john Date: Thu, 17 Oct 2024 18:25:38 +0200 Subject: [PATCH] add n_resamples field + nicer obj print --- R/EnsembleFSResult.R | 10 +++++++++- tests/testthat/test_ensemble_fselect.R | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/R/EnsembleFSResult.R b/R/EnsembleFSResult.R index c9765106..cbbfdbe5 100644 --- a/R/EnsembleFSResult.R +++ b/R/EnsembleFSResult.R @@ -103,7 +103,8 @@ EnsembleFSResult = R6Class("EnsembleFSResult", #' #' @param ... (ignored). print = function(...) { - catf(format(self)) + catf("%s with %s learners and %s initial resamplings", + format(self), self$n_learners, self$n_resamples) print(private$.result[, c("resampling_iteration", "learner_id", "n_features"), with = FALSE]) }, @@ -403,6 +404,13 @@ EnsembleFSResult = R6Class("EnsembleFSResult", measure = function(rhs) { assert_ro_binding(rhs) private$.measure_id + }, + + #' @field n_resamples (`character(1)`)\cr + #' Returns the number of times the task was initially resampled in the ensemble feature selection. + n_resamples = function(rhs) { + assert_ro_binding(rhs) + uniqueN(self$result$resampling_iteration) } ), diff --git a/tests/testthat/test_ensemble_fselect.R b/tests/testthat/test_ensemble_fselect.R index 44fd18cd..d2806e7f 100644 --- a/tests/testthat/test_ensemble_fselect.R +++ b/tests/testthat/test_ensemble_fselect.R @@ -20,6 +20,7 @@ test_that("ensemble feature selection works", { expect_benchmark_result(efsr$benchmark_result) expect_equal(efsr$measure, "classif.ce") expect_equal(efsr$n_learners, 2) + expect_equal(efsr$n_resamples, 2) # stability expect_number(efsr$stability(stability_measure = "jaccard")) @@ -77,6 +78,7 @@ test_that("ensemble feature selection works without benchmark result", { expect_null(efsr$benchmark_result) expect_equal(efsr$measure, "classif.ce") expect_equal(efsr$n_learners, 2) + expect_equal(efsr$n_resamples, 2) # stability expect_number(efsr$stability(stability_measure = "jaccard")) @@ -127,6 +129,7 @@ test_that("ensemble feature selection works with rfe", { expect_benchmark_result(efsr$benchmark_result) expect_equal(efsr$measure, "classif.ce") expect_equal(efsr$n_learners, 2) + expect_equal(efsr$n_resamples, 2) # stability expect_number(efsr$stability(stability_measure = "jaccard")) @@ -185,6 +188,7 @@ test_that("EnsembleFSResult initialization", { efsr = EnsembleFSResult$new(result = result, features = paste0("V", 1:20), measure_id = "classif.ce") expect_class(efsr, "EnsembleFSResult") expect_equal(efsr$n_learners, 3) + expect_equal(efsr$n_resamples, 3) tab = as.data.table(efsr) expect_data_table(tab) expect_equal(names(tab), c("resampling_iteration", "learner_id", "n_features",