Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add help() method for most objects #377

Merged
merged 1 commit into from
Oct 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions R/BenchmarkResult.R
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,10 @@
#' Fuses a second [BenchmarkResult] into itself, mutating the [BenchmarkResult] in-place.
#' If `bmr` is `NULL`, simply returns `self`.
#'
#' * `help()`\cr
#' () -> `NULL`\cr
#' Opens the help page for this object.
#'
#' @section S3 Methods:
#' * `as.data.table(bmr)`\cr
#' [BenchmarkResult] -> [data.table::data.table()]\cr
Expand Down Expand Up @@ -158,6 +162,10 @@ BenchmarkResult = R6Class("BenchmarkResult",
self$rr_data = data[, list(uhash = unique(uhash))]
},

help = function() {
open_help("mlr3::BenchmarkResult")
},

format = function() {
sprintf("<%s>", class(self)[1L])
},
Expand Down
19 changes: 16 additions & 3 deletions R/Learner.R
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@
#' Set of required packages.
#' Note that these packages will be loaded via [requireNamespace()], and are not attached.
#'
#' * `man` :: `character(1)`\cr
#' String in the format `[pkg]::[topic]` pointing to a manual page for this object.
#'
#' @section Fields:
#' * `id` :: `character(1)`\cr
#' Identifier of the learner.
Expand Down Expand Up @@ -147,6 +150,10 @@
#' Uses the data stored during `$train()` in `$state` to create a new [Prediction] based on the new data in `newdata`.
#' Object `task` is the task used during `$train()` and required for conversions of `newdata`.
#'
#' * `help()`\cr
#' () -> `NULL`\cr
#' Opens the corresponding help page referenced by `$man`.
#'
#' @section Optional Extractors:
#'
#' Specific learner implementations are free to implement additional getters to ease the access of certain parts
Expand Down Expand Up @@ -202,9 +209,10 @@ Learner = R6Class("Learner",
packages = NULL,
predict_sets = "test",
fallback = NULL,
man = NULL,

initialize = function(id, task_type, param_set = ParamSet$new(), predict_types = character(),
feature_types = character(), properties = character(), data_formats = "data.table", packages = character()) {
initialize = function(id, task_type, param_set = ParamSet$new(), predict_types = character(), feature_types = character(),
properties = character(), data_formats = "data.table", packages = character(), man = NA_character_) {

self$id = assert_string(id, min.chars = 1L)
self$task_type = assert_choice(task_type, mlr_reflections$task_types$type)
Expand All @@ -213,9 +221,14 @@ Learner = R6Class("Learner",
self$feature_types = assert_subset(feature_types, mlr_reflections$task_feature_types)
self$predict_types = assert_subset(predict_types, names(mlr_reflections$learner_predict_types[[task_type]]), empty.ok = FALSE)
private$.predict_type = predict_types[1L]
self$packages = assert_set(packages)
self$properties = sort(assert_subset(properties, mlr_reflections$learner_properties[[task_type]]))
self$data_formats = assert_subset(data_formats, mlr_reflections$data_formats)
self$packages = assert_set(packages)
self$man = assert_string(man, na.ok = TRUE)
},

help = function() {
open_help(self$man)
},

format = function() {
Expand Down
6 changes: 3 additions & 3 deletions R/LearnerClassif.R
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#' @section Construction:
#' ```
#' l = LearnerClassif$new(id, param_set = ParamSet$new(), predict_types = character(), feature_types = character(),
#' properties = character(), data_formats = "data.table", packages = character())
#' properties = character(), data_formats = "data.table", packages = character(), man = NA_character_)
#' ```
#' For a description of the arguments, see [Learner].
#' `task_type` is set to `"classif"`.
Expand Down Expand Up @@ -53,9 +53,9 @@
#' lrn$predict(task, 121:150)$confusion
LearnerClassif = R6Class("LearnerClassif", inherit = Learner,
public = list(
initialize = function(id, param_set = ParamSet$new(), predict_types = "response", feature_types = character(), properties = character(), data_formats = "data.table", packages = character()) {
initialize = function(id, param_set = ParamSet$new(), predict_types = "response", feature_types = character(), properties = character(), data_formats = "data.table", packages = character(), man = NA_character_) {
super$initialize(id = id, task_type = "classif", param_set = param_set, predict_types = predict_types,
feature_types = feature_types, properties = properties, data_formats = data_formats, packages = packages)
feature_types = feature_types, properties = properties, data_formats = data_formats, packages = packages, man = man)
}
)
)
3 changes: 2 additions & 1 deletion R/LearnerClassifDebug.R
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ LearnerClassifDebug = R6Class("LearnerClassifDebug", inherit = LearnerClassif,
ParamDbl$new("x", lower = 0, upper = 1, tags = "train")
)
),
properties = c("twoclass", "multiclass", "missings")
properties = c("twoclass", "multiclass", "missings"),
man = "mlr3::mlr_learners_classif.debug"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/LearnerClassifFeatureless.R
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ LearnerClassifFeatureless = R6Class("LearnerClassifFeatureless", inherit = Learn
feature_types = c("logical", "integer", "numeric", "character", "factor", "ordered"),
predict_types = c("response", "prob"),
param_set = ps,
properties = c("twoclass", "multiclass", "missings", "importance", "selected_features")
properties = c("twoclass", "multiclass", "missings", "importance", "selected_features"),
man = "mlr3::mlr_learners_classif.featureless"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/LearnerClassifRpart.R
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ LearnerClassifRpart = R6Class("LearnerClassifRpart", inherit = LearnerClassif,
feature_types = c("logical", "integer", "numeric", "character", "factor", "ordered"),
predict_types = c("response", "prob"),
param_set = ps,
properties = c("twoclass", "multiclass", "weights", "missings", "importance", "selected_features")
properties = c("twoclass", "multiclass", "weights", "missings", "importance", "selected_features"),
man = "mlr3::mlr_learners_classif.rpart"
)
},

Expand Down
6 changes: 3 additions & 3 deletions R/LearnerRegr.R
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#' @section Construction:
#' ```
#' l = LearnerRegr$new(id, param_set = ParamSet$new(), predict_types = character(), feature_types = character(),
#' properties = character(), data_formats = "data.table", packages = character())
#' properties = character(), data_formats = "data.table", packages = character(), man = NA_character_)
#' ```
#' For a description of the arguments, see [Learner].
#' `task_type` is set to `"regr"`.
Expand Down Expand Up @@ -41,9 +41,9 @@
#' lrn("classif.featureless")
LearnerRegr = R6Class("LearnerRegr", inherit = Learner,
public = list(
initialize = function(id, param_set = ParamSet$new(), predict_types = "response", feature_types = character(), properties = character(), data_formats = "data.table", packages = character()) {
initialize = function(id, param_set = ParamSet$new(), predict_types = "response", feature_types = character(), properties = character(), data_formats = "data.table", packages = character(), man = NA_character_) {
super$initialize(id = id, task_type = "regr", param_set = param_set, feature_types = feature_types,
predict_types = predict_types, properties = properties, data_formats = data_formats, packages = packages)
predict_types = predict_types, properties = properties, data_formats = data_formats, packages = packages, man = man)
}
)
)
3 changes: 2 additions & 1 deletion R/LearnerRegrFeatureless.R
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ LearnerRegrFeatureless = R6Class("LearnerRegrFeatureless", inherit = LearnerRegr
predict_types = c("response", "se"),
param_set = ps,
properties = c("missings", "importance", "selected_features"),
packages = "stats"
packages = "stats",
man = "mlr3::mlr_learners_regr.featureless"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/LearnerRegrRpart.R
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ LearnerRegrRpart = R6Class("LearnerRegrRpart", inherit = LearnerRegr,
predict_types = "response",
packages = "rpart",
param_set = ps,
properties = c("weights", "missings", "importance", "selected_features")
properties = c("weights", "missings", "importance", "selected_features"),
man = "mlr3::mlr_learners_regr.rpart"
)
},

Expand Down
20 changes: 17 additions & 3 deletions R/Measure.R
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
#' Note: This object is typically constructed via a derived classes, e.g. [MeasureClassif] or [MeasureRegr].
#'
#' ```
#' m = Measure$new(id, task_type = NA, range = c(-Inf, Inf), minimize = NA, aggregator = NULL, properties = character(), predict_type = "response", predict_sets = "test",
#' task_properties = character(), packages = character())
#' m = Measure$new(id, task_type = NA, range = c(-Inf, Inf), minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
#' predict_sets = "test", task_properties = character(), packages = character(), man = NA_character_)
#' ```
#'
#' * `id` :: `character(1)`\cr
Expand Down Expand Up @@ -73,6 +73,9 @@
#' Set of required packages.
#' Note that these packages will be loaded via [requireNamespace()], and are not attached.
#'
#' * `man` :: `character(1)`\cr
#' String in the format `[pkg]::[topic]` pointing to a manual page for this object.
#'
#' @section Fields:
#' All variables passed to the constructor.
#'
Expand All @@ -90,6 +93,10 @@
#' pass the respective [Task], the trained [Learner] or the training set indices.
#' This is handled internally during [resample()]/[benchmark()].
#'
#' * `help()`\cr
#' () -> `NULL`\cr
#' Opens the corresponding help page referenced by `$man`.
#'
#' @family Measure
#' @export
Measure = R6Class("Measure",
Expand All @@ -105,8 +112,10 @@ Measure = R6Class("Measure",
properties = NULL,
minimize = NULL,
packages = NULL,
man = NULL,

initialize = function(id, task_type = NA, range = c(-Inf, Inf), minimize = NA, aggregator = NULL, properties = character(), predict_type = "response", predict_sets = "test", task_properties = character(), packages = character()) {
initialize = function(id, task_type = NA, range = c(-Inf, Inf), minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
predict_sets = "test", task_properties = character(), packages = character(), man = NA_character_) {

self$id = assert_string(id, min.chars = 1L)
self$task_type = task_type
Expand All @@ -126,6 +135,11 @@ Measure = R6Class("Measure",
self$predict_sets = assert_subset(predict_sets, mlr_reflections$predict_sets, empty.ok = FALSE)
self$task_properties = assert_subset(task_properties, mlr_reflections$task_properties[[task_type]])
self$packages = assert_set(packages)
self$man = assert_string(man, na.ok = TRUE)
},

help = function() {
open_help(self$man)
},

format = function() {
Expand Down
10 changes: 6 additions & 4 deletions R/MeasureClassif.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
#'
#' @section Construction:
#' ```
#' m = MeasureClassif$new(id, range, minimize = NA, aggregator = NULL, properties = character(),
#' predict_type = "response", task_properties = character(), packages = character())
#' m = MeasureClassif$new(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
#' predict_sets = "test", task_properties = character(), packages = character(), man = NA_character_)
#' ```
#' For a description of the arguments, see [Measure].
#' The `task_type` is set to `"classif"`.
Expand All @@ -29,9 +29,11 @@
#' @export
MeasureClassif = R6Class("MeasureClassif", inherit = Measure, cloneable = FALSE,
public = list(
initialize = function(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response", task_properties = character(), packages = character()) {
initialize = function(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
predict_sets = "test", task_properties = character(), packages = character(), man = NA_character_) {
super$initialize(id, task_type = "classif", range = range, minimize = minimize, aggregator = aggregator,
properties = properties, predict_type = predict_type, task_properties = task_properties, packages = packages)
properties = properties, predict_type = predict_type, predict_sets = predict_sets,
task_properties = task_properties, packages = packages, man = man)
}
)
)
3 changes: 2 additions & 1 deletion R/MeasureClassifACC.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ MeasureClassifACC = R6Class("MeasureClassifACC",
id = "classif.acc",
range = 0:1,
minimize = FALSE,
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_classif.acc"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureClassifAUC.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ MeasureClassifAUC = R6Class("MeasureClassifAUC",
minimize = FALSE,
predict_type = "prob",
task_properties = "twoclass",
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_classif.auc"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureClassifCE.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ MeasureClassifCE = R6Class("MeasureClassifCE",
id = "classif.ce",
range = 0:1,
minimize = TRUE,
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_classif.auc"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureClassifConfusion.R
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ MeasureClassifConfusion = R6Class("MeasureClassifConfusion",
properties = if (row$na_score) "na_score" else character(),
minimize = row$minimize,
predict_type = "response",
task_properties = "twoclass"
task_properties = "twoclass",
man = "mlr3::mlr_measures_classif.confusion"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureClassifCosts.R
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ MeasureClassifCosts = R6Class("MeasureClassifCosts",
id = "classif.costs",
properties = "requires_task",
range = c(-Inf, Inf),
minimize = TRUE
minimize = TRUE,
man = "mlr3::mlr_measures_classif.costs"
)

if (!is.null(costs)) {
Expand Down
3 changes: 2 additions & 1 deletion R/MeasureClassifFScore.R
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ MeasureClassifFScore = R6Class("MeasureClassifFScore",
minimize = FALSE,
predict_type = "response",
task_properties = "twoclass",
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_classif.f_score"
)

self$beta = assert_number(beta, lower = 0)
Expand Down
3 changes: 2 additions & 1 deletion R/MeasureDebug.R
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ MeasureDebug = R6Class("MeasureDebug",
id = "debug",
predict_type = "response",
range = c(0, Inf),
properties = "na_score"
properties = "na_score",
man = "mlr3::mlr_measures_debug"
)
self$na_ratio = assert_number(na_ratio, lower = 0, upper = 1)
},
Expand Down
6 changes: 4 additions & 2 deletions R/MeasureElapsedTime.R
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#' @title Elapsed Time Measure
#'
#' @usage NULL
#' @aliases mlr_measures_time_train
#' @aliases mlr_measures_elapsed_time
#' mlr_measures_time_train
#' mlr_measures_time_predict
#' mlr_measures_time_both
#' @format [R6::R6Class()] inheriting from [Measure].
Expand Down Expand Up @@ -42,7 +43,8 @@ MeasureElapsedTime = R6Class("MeasureElapsedTime",
task_type = NA_character_,
predict_type = "response",
range = c(0, Inf),
minimize = TRUE
minimize = TRUE,
man = "mlr3::mlr_measures_elapsed_time"
)
self$stages = assert_subset(stages, c("train", "predict"), empty.ok = FALSE)
},
Expand Down
3 changes: 2 additions & 1 deletion R/MeasureOOBError.R
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ MeasureOOBError = R6Class("MeasureOOBError",
properties = c("na_score", "requires_learner"),
predict_type = "response",
range = c(-Inf, Inf),
minimize = NA
minimize = NA,
man = "mlr3::mlr_measures_oob_error"
)
},

Expand Down
10 changes: 6 additions & 4 deletions R/MeasureRegr.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
#'
#' @section Construction:
#' ```
#' m = MeasureRegr$new(id, range, minimize = NA, aggregator = NULL, properties = character(),
#' predict_type = "response", task_properties = character(), packages = character())
#' m = MeasureRegr$new(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
#' predict_sets = "test", task_properties = character(), packages = character())
#' ```
#' For a description of the arguments, see [Measure].
#' The `task_type` is set to `"regr"`.
Expand All @@ -29,9 +29,11 @@
#' @export
MeasureRegr = R6Class("MeasureRegr", inherit = Measure, cloneable = FALSE,
public = list(
initialize = function(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response", task_properties = character(), packages = character()) {
initialize = function(id, range, minimize = NA, aggregator = NULL, properties = character(), predict_type = "response",
predict_sets = "test", task_properties = character(), packages = character(), man = NA_character_) {
super$initialize(id, task_type = "regr", range = range, minimize = minimize, aggregator = aggregator,
properties = properties, predict_type = predict_type, task_properties = task_properties, packages = packages)
properties = properties, predict_type = predict_type, predict_sets = predict_sets,
task_properties = task_properties, packages = packages)
}
)
)
3 changes: 2 additions & 1 deletion R/MeasureRegrMAE.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ MeasureRegrMAE = R6Class("MeasureRegrMAE",
id = "regr.mae",
range = c(0, Inf),
minimize = TRUE,
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_regr.mae"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureRegrMSE.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ MeasureRegrMSE = R6Class("MeasureRegrMSE",
id = "regr.mse",
range = c(0, Inf),
minimize = TRUE,
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_regr.mse"
)
},

Expand Down
3 changes: 2 additions & 1 deletion R/MeasureRegrRMSE.R
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ MeasureRegrRMSE = R6Class("MeasureRegrRMSE",
id = "regr.rmse",
range = c(0, Inf),
minimize = TRUE,
packages = "Metrics"
packages = "Metrics",
man = "mlr3::mlr_measures_regr.rmse"
)
},

Expand Down